/* Generated automatically by the program `genrecog' from the target
   machine description file.  */

#define IN_TARGET_CODE 1

#include "config.h"
#include "system.h"
#include "coretypes.h"
#include "backend.h"
#include "predict.h"
#include "rtl.h"
#include "memmodel.h"
#include "tm_p.h"
#include "emit-rtl.h"
#include "insn-config.h"
#include "recog.h"
#include "output.h"
#include "flags.h"
#include "df.h"
#include "resource.h"
#include "diagnostic-core.h"
#include "reload.h"
#include "regs.h"
#include "tm-constrs.h"



/* `recog' contains a decision tree that recognizes whether the rtx
   X0 is a valid instruction.

   recog returns -1 if the rtx is not valid.  If the rtx is valid, recog
   returns a nonnegative number which is the insn code number for the
   pattern that matched.  This is the same as the order in the machine
   description of the entry that matched.  This number can be used as an
   index into `insn_data' and other tables.

   The third parameter to recog is an optional pointer to an int.  If
   present, recog will accept a pattern if it matches except for missing
   CLOBBER expressions at the end.  In that case, the value pointed to by
   the optional pointer will be set to the number of CLOBBERs that need
   to be added (it should be initialized to zero by the caller).  If it
   is set nonzero, the caller should allocate a PARALLEL of the
   appropriate size, copy the initial entries, and call add_clobbers
   (found in insn-emit.cc) to fill in the CLOBBERs.


   The function split_insns returns 0 if the rtl could not
   be split or the split rtl as an INSN list if it can be.

   The function peephole2_insns returns 0 if the rtl could not
   be matched. If there was a match, the new rtl is returned in an INSN list,
   and LAST_INSN will point to the last recognized insn in the old sequence.
*/


extern rtx_insn *gen_peephole2_1 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_1 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_2 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_3 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_4 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_2 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_3 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_5 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_4 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_5 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_6 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_7 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_8 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_9 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_10 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_11 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_12 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_13 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_14 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_6 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_15 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_16 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_17 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_18 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_19 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_20 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_21 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_22 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_23 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_24 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_25 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_26 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_27 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_28 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_29 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_30 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_31 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_32 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_33 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_34 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_35 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_36 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_37 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_38 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_39 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_40 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_41 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_42 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_43 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_44 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_45 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_46 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_47 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_48 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_49 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_50 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_51 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_52 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_53 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_54 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_55 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_56 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_57 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_58 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_59 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_60 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_61 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_62 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_63 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_64 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_65 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_66 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_67 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_7 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_68 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_69 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_70 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_71 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_72 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_73 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_74 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_75 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_76 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_77 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_78 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_79 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_80 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_81 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_82 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_83 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_84 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_85 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_86 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_8 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_9 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_10 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_11 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_87 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_88 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_89 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_90 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_91 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_92 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_93 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_94 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_95 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_96 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_97 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_12 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_98 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_99 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_100 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_101 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_102 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_103 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_104 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_105 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_13 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_14 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_15 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_16 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_17 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_18 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_19 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_20 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_21 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_22 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_23 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_24 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_25 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_26 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_27 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_28 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_29 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_30 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_31 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_32 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_33 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_34 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_106 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_107 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_108 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_109 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_110 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_111 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_112 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_113 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_35 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_114 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_115 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_116 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_117 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_118 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_36 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_119 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_120 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_121 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_122 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_123 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_124 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_125 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_126 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_127 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_128 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_129 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_130 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_131 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_132 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_133 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_134 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_135 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_136 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_137 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_138 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_139 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_140 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_141 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_142 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_143 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_144 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_145 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_146 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_147 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_148 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_149 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_37 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_38 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_39 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_40 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_150 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_151 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_152 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_153 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_154 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_155 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_156 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_157 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_158 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_159 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_160 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_161 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_162 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_163 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_164 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_165 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_166 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_167 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_168 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_169 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_170 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_171 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_172 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_173 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_174 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_175 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_176 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_177 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_178 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_179 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_180 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_181 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_182 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_183 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_184 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_185 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_186 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_187 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_188 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_189 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_190 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_191 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_192 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_193 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_194 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_195 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_196 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_197 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_198 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_199 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_200 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_201 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_202 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_203 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_204 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_205 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_206 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_207 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_208 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_209 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_210 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_211 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_212 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_213 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_214 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_215 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_216 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_217 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_218 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_219 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_220 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_221 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_222 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_223 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_224 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_225 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_226 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_227 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_228 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_229 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_230 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_231 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_232 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_233 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_234 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_235 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_236 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_237 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_238 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_239 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_240 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_241 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_242 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_243 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_244 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_245 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_246 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_247 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_248 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_249 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_250 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_251 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_252 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_253 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_254 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_255 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_256 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_257 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_258 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_259 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_260 (rtx_insn *, rtx *);




static int
pattern0 (rtx x1, int i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  if (GET_CODE (x2) != SET)
    return -1;
  x3 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x3) != SET)
    return -1;
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) != UNSPEC_VOLATILE
      || XVECLEN (x4, 0) != 2
      || XINT (x4, 1) != i1
      || GET_MODE (x4) != E_SImode)
    return -1;
  return 0;
}

static int
pattern1 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1
      || !s_register_operand (operands[1], i1)
      || !s_register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern2 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XEXP (x3, 0);
  operands[1] = x4;
  x5 = XEXP (x3, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_SImode:
      return pattern1 (x3, E_SImode); /* [-1, 0] */

    case E_V8QImode:
      if (GET_MODE (x3) != E_V8QImode)
        return -1;
      return 1;

    case E_V4HImode:
      if (GET_MODE (x3) != E_V4HImode)
        return -1;
      return 2;

    case E_V2SImode:
      if (GET_MODE (x3) != E_V2SImode)
        return -1;
      return 3;

    case E_V2SFmode:
      if (pattern1 (x3, E_V2SFmode) != 0)
        return -1;
      return 4;

    case E_V4QQmode:
      if (pattern1 (x3, E_V4QQmode) != 0)
        return -1;
      return 5;

    case E_V2HQmode:
      if (pattern1 (x3, E_V2HQmode) != 0)
        return -1;
      return 6;

    case E_QQmode:
      if (pattern1 (x3, E_QQmode) != 0)
        return -1;
      return 7;

    case E_HQmode:
      if (pattern1 (x3, E_HQmode) != 0)
        return -1;
      return 8;

    case E_V2HAmode:
      if (pattern1 (x3, E_V2HAmode) != 0)
        return -1;
      return 9;

    case E_HAmode:
      if (pattern1 (x3, E_HAmode) != 0)
        return -1;
      return 10;

    case E_SQmode:
      if (pattern1 (x3, E_SQmode) != 0)
        return -1;
      return 11;

    case E_SAmode:
      if (pattern1 (x3, E_SAmode) != 0)
        return -1;
      return 12;

    default:
      return -1;
    }
}

static int
pattern3 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x4 = XEXP (x2, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x5 = XEXP (x2, 1);
  operands[2] = x5;
  if (!const_int_operand (operands[2], E_SImode))
    return -1;
  x6 = XEXP (x2, 2);
  operands[3] = x6;
  if (!const_int_operand (operands[3], E_SImode))
    return -1;
  return 0;
}

static int
pattern4 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], i1))
    return -1;
  x4 = XEXP (x2, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], i1))
    return -1;
  x5 = XEXP (x2, 1);
  operands[2] = x5;
  if (!s_register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern5 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XEXP (x3, 0);
  operands[1] = x4;
  x5 = XEXP (x3, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V8QImode:
      if (GET_MODE (x3) != E_V8QImode)
        return -1;
      return 0;

    case E_V4HImode:
      if (GET_MODE (x3) != E_V4HImode)
        return -1;
      return 1;

    case E_V2SImode:
      if (GET_MODE (x3) != E_V2SImode)
        return -1;
      return 2;

    case E_V2SFmode:
      if (pattern1 (x3, E_V2SFmode) != 0)
        return -1;
      return 3;

    case E_V4UQQmode:
      if (pattern1 (x3, E_V4UQQmode) != 0)
        return -1;
      return 4;

    case E_V2UHQmode:
      if (pattern1 (x3, E_V2UHQmode) != 0)
        return -1;
      return 5;

    case E_UQQmode:
      if (pattern1 (x3, E_UQQmode) != 0)
        return -1;
      return 6;

    case E_UHQmode:
      if (pattern1 (x3, E_UHQmode) != 0)
        return -1;
      return 7;

    case E_V2UHAmode:
      if (pattern1 (x3, E_V2UHAmode) != 0)
        return -1;
      return 8;

    case E_UHAmode:
      if (pattern1 (x3, E_UHAmode) != 0)
        return -1;
      return 9;

    default:
      return -1;
    }
}

static int
pattern6 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XEXP (x3, 0);
  operands[1] = x4;
  switch (GET_MODE (operands[0]))
    {
    case E_SFmode:
      if (!s_register_operand (operands[0], E_SFmode)
          || GET_MODE (x3) != E_SFmode
          || !s_register_operand (operands[1], E_SImode))
        return -1;
      return 0;

    case E_DFmode:
      if (!s_register_operand (operands[0], E_DFmode)
          || GET_MODE (x3) != E_DFmode
          || !s_register_operand (operands[1], E_SImode))
        return -1;
      return 1;

    case E_V2SFmode:
      if (!s_register_operand (operands[0], E_V2SFmode)
          || GET_MODE (x3) != E_V2SFmode
          || !s_register_operand (operands[1], E_V2SImode))
        return -1;
      return 2;

    case E_V4SFmode:
      if (!s_register_operand (operands[0], E_V4SFmode)
          || GET_MODE (x3) != E_V4SFmode
          || !s_register_operand (operands[1], E_V4SImode))
        return -1;
      return 3;

    default:
      return -1;
    }
}

static int
pattern7 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (GET_MODE (x1) != E_SImode)
    return -1;
  switch (GET_CODE (x1))
    {
    case MEM:
      x2 = XEXP (x1, 0);
      operands[0] = x2;
      return 0;

    case UNSPEC:
      if (XVECLEN (x1, 0) != 1
          || XINT (x1, 1) != 39)
        return -1;
      x3 = XVECEXP (x1, 0, 0);
      if (GET_CODE (x3) != MEM
          || GET_MODE (x3) != E_SImode)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern8 (rtx x1, int *pnum_clobbers, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  if (pnum_clobbers == NULL)
    return -1;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != E_DImode)
    return -1;
  x4 = XEXP (x1, 0);
  if (GET_CODE (x4) != REG
      || REGNO (x4) != 100
      || GET_MODE (x4) != i1
      || GET_MODE (x2) != i1)
    return -1;
  x5 = XEXP (x3, 0);
  operands[1] = x5;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x6 = XEXP (x2, 1);
  switch (GET_CODE (x6))
    {
    case PLUS:
      if (GET_MODE (x6) != E_DImode)
        return -1;
      x7 = XEXP (x6, 0);
      operands[3] = x7;
      if (!arm_borrow_operation (operands[3], E_DImode))
        return -1;
      return 0;

    case GEU:
    case LTU:
      operands[2] = x6;
      if (!arm_borrow_operation (operands[2], E_DImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern9 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x2, 1);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x5 = XEXP (x1, 0);
  if (GET_CODE (x5) != REG
      || REGNO (x5) != 100
      || GET_MODE (x5) != E_CC_NZmode
      || GET_MODE (x2) != E_CC_NZmode)
    return -1;
  x6 = XEXP (x3, 0);
  operands[0] = x6;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  return 0;
}

static int
pattern10 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  if (!s_register_operand (operands[0], i1))
    return -1;
  x3 = XEXP (x1, 1);
  if (GET_MODE (x3) != i1)
    return -1;
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  if (!immediate_operand (operands[1], E_SImode))
    return -1;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  if (!immediate_operand (operands[2], E_SImode))
    return -1;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  if (!immediate_operand (operands[3], E_SImode))
    return -1;
  return 0;
}

static int
pattern11 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i2)
      || GET_MODE (x1) != i2
      || !s_register_operand (operands[1], i1)
      || !s_register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern12 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[1] = x2;
  x3 = XEXP (x1, 1);
  operands[2] = x3;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      return pattern11 (x1, E_V8QImode, E_V16QImode); /* [-1, 0] */

    case E_V8HImode:
      if (pattern11 (x1, E_V4HImode, E_V8HImode) != 0)
        return -1;
      return 1;

    case E_V8HFmode:
      if (pattern11 (x1, E_V4HFmode, E_V8HFmode) != 0)
        return -1;
      return 2;

    case E_V8BFmode:
      if (pattern11 (x1, E_V4BFmode, E_V8BFmode) != 0)
        return -1;
      return 3;

    case E_V4SImode:
      if (pattern11 (x1, E_V2SImode, E_V4SImode) != 0)
        return -1;
      return 4;

    case E_V4SFmode:
      if (pattern11 (x1, E_V2SFmode, E_V4SFmode) != 0)
        return -1;
      return 5;

    case E_V2DImode:
      if (pattern11 (x1, E_DImode, E_V2DImode) != 0)
        return -1;
      return 6;

    default:
      return -1;
    }
}

static int
pattern13 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x2) != SET)
    return -1;
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != UNSPEC_VOLATILE
      || XVECLEN (x3, 0) != 2
      || XINT (x3, 1) != 19)
    return -1;
  x4 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x4) != CLOBBER)
    return -1;
  x5 = XEXP (x4, 0);
  if (GET_CODE (x5) != REG
      || REGNO (x5) != 100
      || GET_MODE (x5) != E_CCmode)
    return -1;
  x6 = XVECEXP (x1, 0, 3);
  if (GET_CODE (x6) != CLOBBER)
    return -1;
  x7 = XVECEXP (x1, 0, 4);
  if (GET_CODE (x7) != CLOBBER)
    return -1;
  x8 = XVECEXP (x1, 0, 0);
  x9 = XEXP (x8, 0);
  operands[0] = x9;
  return 0;
}

static int
pattern14 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x4) != SET)
    return -1;
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != UNSPEC
      || XVECLEN (x5, 0) != 1
      || XINT (x5, 1) != 28
      || GET_MODE (x5) != E_CCmode)
    return -1;
  x6 = XVECEXP (x5, 0, 0);
  if (GET_CODE (x6) != REG
      || REGNO (x6) != 104
      || GET_MODE (x6) != E_CCmode)
    return -1;
  x7 = XEXP (x4, 0);
  if (GET_CODE (x7) != REG
      || REGNO (x7) != 104
      || GET_MODE (x7) != E_CCmode)
    return -1;
  x8 = XEXP (x2, 0);
  operands[0] = x8;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x9 = XEXP (x3, 0);
  operands[1] = x9;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x10 = XEXP (x3, 1);
  operands[2] = x10;
  if (!s_register_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern15 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x4) != CLOBBER)
    return -1;
  x5 = XEXP (x2, 0);
  operands[0] = x5;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x6 = XEXP (x3, 0);
  operands[1] = x6;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  return 0;
}

static int
pattern16 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  operands[1] = x3;
  x4 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x4) != CLOBBER)
    return -1;
  x5 = XEXP (x2, 0);
  operands[0] = x5;
  x6 = XEXP (x4, 0);
  operands[2] = x6;
  switch (GET_MODE (operands[0]))
    {
    case E_DFmode:
      if (!s_register_operand (operands[0], E_DFmode)
          || !const_double_operand (operands[1], E_DFmode)
          || !s_register_operand (operands[2], E_DImode))
        return -1;
      return 0;

    case E_SFmode:
      if (!s_register_operand (operands[0], E_SFmode)
          || !const_double_operand (operands[1], E_SFmode)
          || !s_register_operand (operands[2], E_SFmode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern17 (rtx x1, rtx_code i1, rtx_code i2, machine_mode i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != i2
      || GET_MODE (x1) != E_SImode)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != i1
      || GET_MODE (x2) != i3)
    return -1;
  return 0;
}

static int
pattern18 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x2) != USE)
    return -1;
  x3 = XVECEXP (x1, 0, 0);
  x4 = XVECEXP (x3, 0, 0);
  operands[0] = x4;
  if (!immediate_operand (operands[0], E_SImode))
    return -1;
  x5 = XVECEXP (x3, 0, 1);
  operands[1] = x5;
  if (!immediate_operand (operands[1], E_SImode))
    return -1;
  x6 = XVECEXP (x3, 0, 2);
  operands[2] = x6;
  if (!s_register_operand (operands[2], i1))
    return -1;
  x7 = XVECEXP (x3, 0, 3);
  operands[3] = x7;
  if (!immediate_operand (operands[3], E_SImode))
    return -1;
  return 0;
}

static int
pattern19 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) != E_SImode)
    return -1;
  switch (GET_CODE (x4))
    {
    case MEM:
      x5 = XEXP (x4, 0);
      operands[1] = x5;
      return 0;

    case UNSPEC:
      if (XVECLEN (x4, 0) != 1
          || XINT (x4, 1) != 39)
        return -1;
      x6 = XVECEXP (x4, 0, 0);
      if (GET_CODE (x6) != MEM
          || GET_MODE (x6) != E_SImode)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern20 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1))
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != i1
      || !mem_noofs_operand (operands[1], i1)
      || !reg_or_int_operand (operands[2], i1))
    return -1;
  x4 = XVECEXP (x1, 0, 1);
  x5 = XEXP (x4, 1);
  if (GET_MODE (x5) != i1)
    return -1;
  return 0;
}

static int
pattern21 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 1);
  x4 = XVECEXP (x3, 0, 0);
  if (!rtx_equal_p (x4, operands[1]))
    return -1;
  x5 = XVECEXP (x3, 0, 1);
  if (!rtx_equal_p (x5, operands[2]))
    return -1;
  x6 = XEXP (x2, 0);
  if (!rtx_equal_p (x6, operands[1]))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_QImode:
      return pattern20 (x1, E_QImode); /* [-1, 0] */

    case E_HImode:
      if (pattern20 (x1, E_HImode) != 0)
        return -1;
      return 1;

    case E_SImode:
      if (pattern20 (x1, E_SImode) != 0)
        return -1;
      return 2;

    case E_DImode:
      if (!s_register_operand (operands[0], E_DImode))
        return -1;
      x7 = XVECEXP (x1, 0, 0);
      x8 = XEXP (x7, 1);
      if (GET_MODE (x8) != E_DImode
          || !mem_noofs_operand (operands[1], E_DImode)
          || !s_register_operand (operands[2], E_DImode)
          || GET_MODE (x3) != E_DImode)
        return -1;
      return 3;

    default:
      return -1;
    }
}

static int
pattern22 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 0);
  operands[0] = x3;
  x4 = XEXP (x2, 1);
  x5 = XEXP (x4, 0);
  operands[1] = x5;
  x6 = XEXP (x4, 1);
  operands[2] = x6;
  x7 = XVECEXP (x1, 0, 1);
  x8 = XEXP (x7, 1);
  x9 = XVECEXP (x8, 0, 2);
  operands[3] = x9;
  if (!const_int_operand (operands[3], E_SImode))
    return -1;
  x10 = XVECEXP (x1, 0, 3);
  x11 = XEXP (x10, 0);
  operands[4] = x11;
  if (!scratch_operand (operands[4], E_SImode))
    return -1;
  return pattern21 (x1); /* [-1, 3] */
}

static int
pattern23 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x2) != SET)
    return -1;
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != UNSPEC_VOLATILE
      || XVECLEN (x3, 0) != 3
      || XINT (x3, 1) != 19)
    return -1;
  x4 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x4) != CLOBBER)
    return -1;
  x5 = XEXP (x4, 0);
  if (GET_CODE (x5) != REG
      || REGNO (x5) != 100
      || GET_MODE (x5) != E_CCmode)
    return -1;
  x6 = XVECEXP (x1, 0, 3);
  if (GET_CODE (x6) != CLOBBER)
    return -1;
  return pattern22 (x1); /* [-1, 3] */
}

static int
pattern24 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != i1)
    return -1;
  x4 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x4) != CLOBBER)
    return -1;
  x5 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x5) != CLOBBER)
    return -1;
  x6 = XVECEXP (x1, 0, 3);
  if (GET_CODE (x6) != CLOBBER)
    return -1;
  x7 = XEXP (x6, 0);
  if (GET_CODE (x7) != REG
      || REGNO (x7) != 100
      || GET_MODE (x7) != E_CCmode)
    return -1;
  x8 = XEXP (x2, 0);
  operands[0] = x8;
  if (!s_register_operand (operands[0], i1))
    return -1;
  x9 = XEXP (x3, 0);
  operands[1] = x9;
  if (!s_register_operand (operands[1], i1))
    return -1;
  x10 = XEXP (x3, 1);
  operands[2] = x10;
  if (!s_register_operand (operands[2], i1))
    return -1;
  x11 = XEXP (x4, 0);
  operands[3] = x11;
  if (!scratch_operand (operands[3], E_DImode))
    return -1;
  x12 = XEXP (x5, 0);
  operands[4] = x12;
  if (!scratch_operand (operands[4], E_SImode))
    return -1;
  return 0;
}

static int
pattern25 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x2, 0);
  if (GET_CODE (x4) != MEM
      || GET_MODE (x4) != E_SImode)
    return -1;
  x5 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x5) != SET)
    return -1;
  x6 = XEXP (x5, 1);
  if (GET_CODE (x6) != MEM
      || GET_MODE (x6) != E_SImode)
    return -1;
  x7 = XEXP (x6, 0);
  if (GET_CODE (x7) != PLUS
      || GET_MODE (x7) != E_SImode)
    return -1;
  x8 = XEXP (x7, 1);
  if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
    return -1;
  x9 = XEXP (x5, 0);
  if (GET_CODE (x9) != MEM
      || GET_MODE (x9) != E_SImode)
    return -1;
  x10 = XEXP (x9, 0);
  if (GET_CODE (x10) != PLUS
      || GET_MODE (x10) != E_SImode)
    return -1;
  x11 = XEXP (x10, 1);
  if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
    return -1;
  x12 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x12) != SET)
    return -1;
  x13 = XEXP (x12, 1);
  if (GET_CODE (x13) != MEM
      || GET_MODE (x13) != E_SImode)
    return -1;
  x14 = XEXP (x13, 0);
  if (GET_CODE (x14) != PLUS
      || GET_MODE (x14) != E_SImode)
    return -1;
  x15 = XEXP (x14, 1);
  if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x16 = XEXP (x12, 0);
  if (GET_CODE (x16) != MEM
      || GET_MODE (x16) != E_SImode)
    return -1;
  x17 = XEXP (x16, 0);
  if (GET_CODE (x17) != PLUS
      || GET_MODE (x17) != E_SImode)
    return -1;
  x18 = XEXP (x17, 1);
  if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x19 = XVECEXP (x1, 0, 3);
  if (GET_CODE (x19) != SET)
    return -1;
  x20 = XEXP (x19, 1);
  if (GET_CODE (x20) != PLUS
      || GET_MODE (x20) != E_SImode)
    return -1;
  x21 = XEXP (x20, 1);
  if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
    return -1;
  x22 = XVECEXP (x1, 0, 4);
  if (GET_CODE (x22) != SET)
    return -1;
  x23 = XEXP (x22, 1);
  if (GET_CODE (x23) != PLUS
      || GET_MODE (x23) != E_SImode)
    return -1;
  x24 = XEXP (x23, 1);
  if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
    return -1;
  return 0;
}

static int
pattern26 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x2, 0);
  if (GET_CODE (x4) != MEM
      || GET_MODE (x4) != E_SImode)
    return -1;
  x5 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x5) != SET)
    return -1;
  x6 = XEXP (x5, 1);
  if (GET_CODE (x6) != MEM
      || GET_MODE (x6) != E_SImode)
    return -1;
  x7 = XEXP (x6, 0);
  if (GET_CODE (x7) != PLUS
      || GET_MODE (x7) != E_SImode)
    return -1;
  x8 = XEXP (x7, 1);
  if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
    return -1;
  x9 = XEXP (x5, 0);
  if (GET_CODE (x9) != MEM
      || GET_MODE (x9) != E_SImode)
    return -1;
  x10 = XEXP (x9, 0);
  if (GET_CODE (x10) != PLUS
      || GET_MODE (x10) != E_SImode)
    return -1;
  x11 = XEXP (x10, 1);
  if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
    return -1;
  x12 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x12) != SET)
    return -1;
  x13 = XEXP (x12, 1);
  if (GET_CODE (x13) != PLUS
      || GET_MODE (x13) != E_SImode)
    return -1;
  x14 = XEXP (x13, 1);
  if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x15 = XVECEXP (x1, 0, 3);
  if (GET_CODE (x15) != SET)
    return -1;
  x16 = XEXP (x15, 1);
  if (GET_CODE (x16) != PLUS
      || GET_MODE (x16) != E_SImode)
    return -1;
  x17 = XEXP (x16, 1);
  if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  return 0;
}

static int
pattern27 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != REG
      || REGNO (x2) != 100
      || GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x1, 1);
  if (GET_MODE (x3) != i1)
    return -1;
  return 0;
}

static int
pattern28 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  operands[1] = x2;
  if (!s_register_operand (operands[1], i1))
    return -1;
  x3 = XEXP (x1, 1);
  operands[2] = x3;
  if (!imm_for_neon_rshift_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern29 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  switch (GET_MODE (operands[0]))
    {
    case E_V4HImode:
      if (GET_MODE (x1) != E_V4HImode)
        return -1;
      x2 = XEXP (x1, 0);
      operands[1] = x2;
      return 0;

    case E_V2SImode:
      if (GET_MODE (x1) != E_V2SImode)
        return -1;
      x2 = XEXP (x1, 0);
      operands[1] = x2;
      return 1;

    case E_DImode:
      if (GET_MODE (x1) != E_DImode)
        return -1;
      return 2;

    case E_V8QImode:
      if (pattern28 (x1, E_V8QImode) != 0)
        return -1;
      return 3;

    case E_V16QImode:
      if (pattern28 (x1, E_V16QImode) != 0)
        return -1;
      return 4;

    case E_V8HImode:
      if (pattern28 (x1, E_V8HImode) != 0)
        return -1;
      return 5;

    case E_V4SImode:
      if (pattern28 (x1, E_V4SImode) != 0)
        return -1;
      return 6;

    default:
      return -1;
    }
}

static int
pattern30 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!s_register_operand (operands[2], E_SImode))
    return -1;
  x6 = XVECEXP (x2, 0, 2);
  operands[3] = x6;
  if (!s_register_operand (operands[3], E_SImode))
    return -1;
  return 0;
}

static int
pattern31 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_DImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], E_DImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!s_register_operand (operands[2], E_SImode))
    return -1;
  x6 = XVECEXP (x2, 0, 2);
  operands[3] = x6;
  if (!s_register_operand (operands[3], E_DImode))
    return -1;
  return 0;
}

static int
pattern32 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_DImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!register_operand (operands[0], E_DImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!register_operand (operands[1], E_DImode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!register_operand (operands[2], E_V4HImode))
    return -1;
  x6 = XVECEXP (x2, 0, 2);
  operands[3] = x6;
  if (!register_operand (operands[3], E_V4HImode))
    return -1;
  return 0;
}

static int
pattern33 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1
      || !s_register_operand (operands[1], i1)
      || !s_register_operand (operands[2], i1)
      || !s_register_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern34 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  switch (GET_MODE (operands[0]))
    {
    case E_V8QImode:
      return pattern33 (x3, E_V8QImode); /* [-1, 0] */

    case E_V16QImode:
      if (pattern33 (x3, E_V16QImode) != 0)
        return -1;
      return 1;

    case E_V4HImode:
      if (pattern33 (x3, E_V4HImode) != 0)
        return -1;
      return 2;

    case E_V8HImode:
      if (pattern33 (x3, E_V8HImode) != 0)
        return -1;
      return 3;

    case E_V2SImode:
      if (pattern33 (x3, E_V2SImode) != 0)
        return -1;
      return 4;

    case E_V4SImode:
      if (pattern33 (x3, E_V4SImode) != 0)
        return -1;
      return 5;

    case E_V2SFmode:
      if (pattern33 (x3, E_V2SFmode) != 0)
        return -1;
      return 6;

    case E_V4SFmode:
      if (pattern33 (x3, E_V4SFmode) != 0)
        return -1;
      return 7;

    default:
      return -1;
    }
}

static int
pattern35 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i2)
      || GET_MODE (x1) != i2
      || !s_register_operand (operands[1], i2)
      || !s_register_operand (operands[2], i1)
      || !s_register_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern36 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HImode:
      return pattern35 (x3, E_V8QImode, E_V8HImode); /* [-1, 0] */

    case E_V4SImode:
      if (pattern35 (x3, E_V4HImode, E_V4SImode) != 0)
        return -1;
      return 1;

    case E_V2DImode:
      if (pattern35 (x3, E_V2SImode, E_V2DImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern37 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  switch (GET_MODE (operands[0]))
    {
    case E_V4HImode:
      return pattern33 (x3, E_V4HImode); /* [-1, 0] */

    case E_V2SImode:
      if (pattern33 (x3, E_V2SImode) != 0)
        return -1;
      return 1;

    case E_V8HImode:
      if (pattern33 (x3, E_V8HImode) != 0)
        return -1;
      return 2;

    case E_V4SImode:
      if (pattern33 (x3, E_V4SImode) != 0)
        return -1;
      return 3;

    default:
      return -1;
    }
}

static int
pattern38 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  switch (GET_MODE (operands[0]))
    {
    case E_V4SImode:
      return pattern35 (x3, E_V4HImode, E_V4SImode); /* [-1, 0] */

    case E_V2DImode:
      if (pattern35 (x3, E_V2SImode, E_V2DImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern39 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i2)
      || GET_MODE (x1) != i2
      || !s_register_operand (operands[1], i1)
      || !s_register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern40 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  if (!immediate_operand (operands[3], E_SImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_V4SImode:
      return pattern39 (x3, E_V4HImode, E_V4SImode); /* [-1, 0] */

    case E_V2DImode:
      if (pattern39 (x3, E_V2SImode, E_V2DImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern41 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i2)
      || GET_MODE (x1) != i2
      || !s_register_operand (operands[1], i2)
      || !s_register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern42 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1
      || !s_register_operand (operands[1], i1)
      || !s_register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern43 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  if (!immediate_operand (operands[3], E_SImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HImode:
      return pattern41 (x3, E_V4HImode, E_V8HImode); /* [-1, 0] */

    case E_V4SImode:
      if (pattern41 (x3, E_V2SImode, E_V4SImode) != 0)
        return -1;
      return 1;

    case E_V4HImode:
      if (pattern42 (x3, E_V4HImode) != 0)
        return -1;
      return 2;

    case E_V2SImode:
      if (pattern42 (x3, E_V2SImode) != 0)
        return -1;
      return 3;

    default:
      return -1;
    }
}

static int
pattern44 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  if (!immediate_operand (operands[3], E_SImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_V8QImode:
      return pattern42 (x3, E_V8QImode); /* [-1, 0] */

    case E_V16QImode:
      if (pattern42 (x3, E_V16QImode) != 0)
        return -1;
      return 1;

    case E_V4HImode:
      if (pattern42 (x3, E_V4HImode) != 0)
        return -1;
      return 2;

    case E_V8HImode:
      if (pattern42 (x3, E_V8HImode) != 0)
        return -1;
      return 3;

    case E_V2SImode:
      if (pattern42 (x3, E_V2SImode) != 0)
        return -1;
      return 4;

    case E_V4SImode:
      if (pattern42 (x3, E_V4SImode) != 0)
        return -1;
      return 5;

    case E_DImode:
      if (pattern42 (x3, E_DImode) != 0)
        return -1;
      return 6;

    case E_V2DImode:
      if (pattern42 (x3, E_V2DImode) != 0)
        return -1;
      return 7;

    default:
      return -1;
    }
}

static int
pattern45 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XVECEXP (x2, 0, 2);
  if (GET_CODE (x3) != UNSPEC
      || XVECLEN (x3, 0) != 1
      || XINT (x3, 1) != 327)
    return -1;
  x4 = XVECEXP (x3, 0, 0);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x5 = XEXP (x1, 0);
  operands[0] = x5;
  x6 = XVECEXP (x2, 0, 0);
  operands[1] = x6;
  x7 = XVECEXP (x2, 0, 1);
  operands[2] = x7;
  if (!immediate_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern46 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XVECEXP (x2, 0, 2);
  if (GET_CODE (x3) != UNSPEC
      || XVECLEN (x3, 0) != 1
      || XINT (x3, 1) != 327)
    return -1;
  x4 = XVECEXP (x3, 0, 0);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x5 = XEXP (x1, 0);
  operands[0] = x5;
  if (!s_register_operand (operands[0], i1))
    return -1;
  x6 = XVECEXP (x2, 0, 0);
  operands[1] = x6;
  if (!neon_struct_operand (operands[1], i2))
    return -1;
  x7 = XVECEXP (x2, 0, 1);
  operands[2] = x7;
  if (!s_register_operand (operands[2], i1))
    return -1;
  switch (GET_MODE (x3))
    {
    case E_V16QImode:
      return 0;

    case E_V8HImode:
      return 1;

    case E_V8HFmode:
      return 2;

    case E_V8BFmode:
      return 3;

    case E_V4SImode:
      return 4;

    case E_V4SFmode:
      return 5;

    default:
      return -1;
    }
}

static int
pattern47 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_V4SImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!register_operand (operands[0], E_V4SImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!register_operand (operands[1], E_V4SImode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!register_operand (operands[2], E_V4SImode))
    return -1;
  x6 = XVECEXP (x2, 0, 2);
  operands[3] = x6;
  if (!register_operand (operands[3], E_V4SImode))
    return -1;
  return 0;
}

static int
pattern48 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_V4SImode)
    return -1;
  x3 = XVECEXP (x2, 0, 1);
  if (GET_CODE (x3) != VEC_SELECT
      || GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) != PARALLEL
      || XVECLEN (x4, 0) != 1)
    return -1;
  x5 = XEXP (x1, 0);
  operands[0] = x5;
  if (!register_operand (operands[0], E_V4SImode))
    return -1;
  x6 = XVECEXP (x2, 0, 0);
  operands[1] = x6;
  if (!register_operand (operands[1], E_V4SImode))
    return -1;
  x7 = XEXP (x3, 0);
  operands[2] = x7;
  if (!register_operand (operands[2], E_V4SImode))
    return -1;
  x8 = XVECEXP (x4, 0, 0);
  operands[4] = x8;
  if (!immediate_operand (operands[4], E_SImode))
    return -1;
  x9 = XVECEXP (x2, 0, 2);
  operands[3] = x9;
  if (!register_operand (operands[3], E_V4SImode))
    return -1;
  return 0;
}

static int
pattern49 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i2)
      || GET_MODE (x1) != i2
      || !s_register_operand (operands[1], i2)
      || !s_register_operand (operands[2], i2)
      || !vpr_register_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern50 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HFmode:
      return pattern49 (x3, E_V8BImode, E_V8HFmode); /* [-1, 0] */

    case E_V4SFmode:
      if (pattern49 (x3, E_V4BImode, E_V4SFmode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern51 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i2)
      || GET_MODE (x1) != i2
      || !s_register_operand (operands[1], i2)
      || !vpr_register_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern52 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  if (!immediate_operand (operands[2], E_SImode))
    return -1;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HImode:
      return pattern51 (x3, E_V8BImode, E_V8HImode); /* [-1, 0] */

    case E_V4SImode:
      if (pattern51 (x3, E_V4BImode, E_V4SImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern53 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vpr_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1
      || !s_register_operand (operands[1], i2)
      || !s_register_operand (operands[2], i2)
      || !vpr_register_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern54 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  switch (GET_MODE (operands[0]))
    {
    case E_V8BImode:
      return pattern53 (x3, E_V8BImode, E_V8HFmode); /* [-1, 0] */

    case E_V4BImode:
      if (pattern53 (x3, E_V4BImode, E_V4SFmode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern55 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i3)
      || GET_MODE (x1) != i3
      || !s_register_operand (operands[1], i3)
      || !s_register_operand (operands[2], i2)
      || !vpr_register_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern56 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3, machine_mode i4)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HImode:
      return pattern55 (x3, i1, i2, E_V8HImode); /* [-1, 0] */

    case E_V4SImode:
      if (pattern55 (x3, i3, i4, E_V4SImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern57 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HFmode:
      return pattern55 (x3, E_V8BImode, i1, E_V8HFmode); /* [-1, 0] */

    case E_V4SFmode:
      if (pattern55 (x3, E_V4BImode, i2, E_V4SFmode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern58 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], E_V16QImode)
      || GET_MODE (x1) != E_V16QImode
      || !s_register_operand (operands[1], E_V16QImode)
      || !s_register_operand (operands[2], i1)
      || !mve_imm_8 (operands[3], E_SImode))
    return -1;
  return 0;
}

static int
pattern59 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], E_V8HImode)
      || GET_MODE (x1) != E_V8HImode
      || !s_register_operand (operands[1], E_V8HImode)
      || !s_register_operand (operands[2], i1)
      || !mve_imm_16 (operands[3], E_SImode))
    return -1;
  return 0;
}

static int
pattern60 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      return pattern58 (x3, E_V8HImode); /* [-1, 0] */

    case E_V8HImode:
      if (pattern59 (x3, E_V4SImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern61 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_DImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], E_DImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], E_DImode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!s_register_operand (operands[2], E_V4SImode))
    return -1;
  x6 = XVECEXP (x2, 0, 2);
  operands[3] = x6;
  if (!s_register_operand (operands[3], E_V4SImode))
    return -1;
  return 0;
}

static int
pattern62 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x2, 0, 2);
  operands[3] = x6;
  switch (GET_MODE (operands[2]))
    {
    case E_V16QImode:
      if (!s_register_operand (operands[2], E_V16QImode)
          || !s_register_operand (operands[3], E_V16QImode))
        return -1;
      return 0;

    case E_V8HImode:
      if (!s_register_operand (operands[2], E_V8HImode)
          || !s_register_operand (operands[3], E_V8HImode))
        return -1;
      return 1;

    case E_V4SImode:
      if (!s_register_operand (operands[2], E_V4SImode)
          || !s_register_operand (operands[3], E_V4SImode))
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern63 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      return pattern49 (x3, E_V16BImode, E_V16QImode); /* [-1, 0] */

    case E_V8HImode:
      if (pattern49 (x3, E_V8BImode, E_V8HImode) != 0)
        return -1;
      return 1;

    case E_V4SImode:
      if (pattern49 (x3, E_V4BImode, E_V4SImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern64 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x2, 0, 2);
  operands[3] = x6;
  switch (GET_MODE (operands[2]))
    {
    case E_V16QImode:
      if (!s_register_operand (operands[2], E_V16QImode)
          || !vpr_register_operand (operands[3], E_V16BImode))
        return -1;
      return 0;

    case E_V8HImode:
      if (!s_register_operand (operands[2], E_V8HImode)
          || !vpr_register_operand (operands[3], E_V8BImode))
        return -1;
      return 1;

    case E_V4SImode:
      if (!s_register_operand (operands[2], E_V4SImode)
          || !vpr_register_operand (operands[3], E_V4BImode))
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern65 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vpr_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1
      || !s_register_operand (operands[1], i3)
      || !s_register_operand (operands[2], i2)
      || !vpr_register_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern66 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  switch (GET_MODE (operands[0]))
    {
    case E_V16BImode:
      return pattern65 (x3, E_V16BImode, E_QImode, E_V16QImode); /* [-1, 0] */

    case E_V8BImode:
      if (pattern65 (x3, E_V8BImode, E_HImode, E_V8HImode) != 0)
        return -1;
      return 1;

    case E_V4BImode:
      if (pattern65 (x3, E_V4BImode, E_SImode, E_V4SImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern67 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  switch (GET_MODE (operands[0]))
    {
    case E_V16BImode:
      return pattern53 (x3, E_V16BImode, E_V16QImode); /* [-1, 0] */

    case E_V8BImode:
      if (pattern53 (x3, E_V8BImode, E_V8HImode) != 0)
        return -1;
      return 1;

    case E_V4BImode:
      if (pattern53 (x3, E_V4BImode, E_V4SImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern68 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      return pattern55 (x3, E_V16BImode, E_QImode, E_V16QImode); /* [-1, 0] */

    case E_V8HImode:
      if (pattern55 (x3, E_V8BImode, E_HImode, E_V8HImode) != 0)
        return -1;
      return 1;

    case E_V4SImode:
      if (pattern55 (x3, E_V4BImode, E_SImode, E_V4SImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern69 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  switch (GET_MODE (operands[0]))
    {
    case E_QImode:
      return pattern55 (x3, E_V16BImode, E_V16QImode, E_QImode); /* [-1, 0] */

    case E_HImode:
      if (pattern55 (x3, E_V8BImode, E_V8HImode, E_HImode) != 0)
        return -1;
      return 1;

    case E_SImode:
      if (pattern55 (x3, E_V4BImode, E_V4SImode, E_SImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern70 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x2, 0, 2);
  operands[3] = x6;
  switch (GET_MODE (operands[1]))
    {
    case E_V16QImode:
      if (!s_register_operand (operands[1], E_V16QImode)
          || !s_register_operand (operands[2], E_V16QImode)
          || !vpr_register_operand (operands[3], E_V16BImode))
        return -1;
      return 0;

    case E_V8HImode:
      if (!s_register_operand (operands[1], E_V8HImode)
          || !s_register_operand (operands[2], E_V8HImode)
          || !vpr_register_operand (operands[3], E_V8BImode))
        return -1;
      return 1;

    case E_V4SImode:
      if (!s_register_operand (operands[1], E_V4SImode)
          || !s_register_operand (operands[2], E_V4SImode)
          || !vpr_register_operand (operands[3], E_V4BImode))
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern71 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i2)
      || GET_MODE (x1) != i2
      || !s_register_operand (operands[1], i2)
      || !s_register_operand (operands[2], i2)
      || !s_register_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern72 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      return pattern71 (x3, E_QImode, E_V16QImode); /* [-1, 0] */

    case E_V8HImode:
      if (pattern71 (x3, E_HImode, E_V8HImode) != 0)
        return -1;
      return 1;

    case E_V4SImode:
      if (pattern71 (x3, E_SImode, E_V4SImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern73 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      return pattern49 (x3, E_V16BImode, E_V16QImode); /* [-1, 0] */

    case E_V8HImode:
      if (pattern49 (x3, E_V8BImode, E_V8HImode) != 0)
        return -1;
      return 1;

    case E_V4SImode:
      if (pattern49 (x3, E_V4BImode, E_V4SImode) != 0)
        return -1;
      return 2;

    case E_V2DImode:
      if (pattern49 (x3, E_V2QImode, E_V2DImode) != 0)
        return -1;
      return 3;

    default:
      return -1;
    }
}

static int
pattern74 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      return pattern33 (x3, E_V16QImode); /* [-1, 0] */

    case E_V8HImode:
      if (pattern33 (x3, E_V8HImode) != 0)
        return -1;
      return 1;

    case E_V4SImode:
      if (pattern33 (x3, E_V4SImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern75 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  if (!s_register_operand (operands[2], E_SImode))
    return -1;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      return pattern51 (x3, E_V16BImode, E_V16QImode); /* [-1, 0] */

    case E_V8HImode:
      if (pattern51 (x3, E_V8BImode, E_V8HImode) != 0)
        return -1;
      return 1;

    case E_V4SImode:
      if (pattern51 (x3, E_V4BImode, E_V4SImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern76 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      if (!s_register_operand (operands[0], E_V16QImode)
          || GET_MODE (x3) != E_V16QImode
          || !s_register_operand (operands[1], E_V16QImode)
          || !s_register_operand (operands[2], E_V16QImode)
          || !mve_imm_7 (operands[3], E_SImode))
        return -1;
      return 0;

    case E_V8HImode:
      if (!s_register_operand (operands[0], E_V8HImode)
          || GET_MODE (x3) != E_V8HImode
          || !s_register_operand (operands[1], E_V8HImode)
          || !s_register_operand (operands[2], E_V8HImode)
          || !mve_imm_15 (operands[3], E_SImode))
        return -1;
      return 1;

    case E_V4SImode:
      if (!s_register_operand (operands[0], E_V4SImode)
          || GET_MODE (x3) != E_V4SImode
          || !s_register_operand (operands[1], E_V4SImode)
          || !s_register_operand (operands[2], E_V4SImode)
          || !mve_imm_31 (operands[3], E_SImode))
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern77 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      return pattern58 (x3, E_V16QImode); /* [-1, 0] */

    case E_V8HImode:
      if (pattern59 (x3, E_V8HImode) != 0)
        return -1;
      return 1;

    case E_V4SImode:
      if (!s_register_operand (operands[0], E_V4SImode)
          || GET_MODE (x3) != E_V4SImode
          || !s_register_operand (operands[1], E_V4SImode)
          || !s_register_operand (operands[2], E_V4SImode)
          || !mve_imm_32 (operands[3], E_SImode))
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern78 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != i2)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], i2))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], i2))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!s_register_operand (operands[2], i1))
    return -1;
  x6 = XVECEXP (x2, 0, 2);
  operands[3] = x6;
  if (!vpr_register_operand (operands[3], i3))
    return -1;
  return 0;
}

static int
pattern79 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  switch (GET_MODE (operands[0]))
    {
    case E_V8BImode:
      return pattern65 (x3, E_V8BImode, E_HFmode, E_V8HFmode); /* [-1, 0] */

    case E_V4BImode:
      if (pattern65 (x3, E_V4BImode, E_SFmode, E_V4SFmode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern80 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HFmode:
      return pattern33 (x3, E_V8HFmode); /* [-1, 0] */

    case E_V4SFmode:
      if (pattern33 (x3, E_V4SFmode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern81 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HFmode:
      return pattern71 (x3, E_HFmode, E_V8HFmode); /* [-1, 0] */

    case E_V4SFmode:
      if (pattern71 (x3, E_SFmode, E_V4SFmode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern82 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  switch (GET_MODE (operands[0]))
    {
    case E_HFmode:
      return pattern55 (x3, E_V8BImode, E_V8HFmode, E_HFmode); /* [-1, 0] */

    case E_SFmode:
      if (pattern55 (x3, E_V4BImode, E_V4SFmode, E_SFmode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern83 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_DImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], E_DImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], E_DImode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x2, 0, 2);
  operands[3] = x6;
  switch (GET_MODE (operands[2]))
    {
    case E_V8HImode:
      if (!s_register_operand (operands[2], E_V8HImode)
          || !s_register_operand (operands[3], E_V8HImode))
        return -1;
      return 0;

    case E_V4SImode:
      if (!s_register_operand (operands[2], E_V4SImode)
          || !s_register_operand (operands[3], E_V4SImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern84 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_DImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], E_DImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x2, 0, 2);
  operands[3] = x6;
  switch (GET_MODE (operands[1]))
    {
    case E_V8HImode:
      if (!s_register_operand (operands[1], E_V8HImode)
          || !s_register_operand (operands[2], E_V8HImode)
          || !vpr_register_operand (operands[3], E_V8BImode))
        return -1;
      return 0;

    case E_V4SImode:
      if (!s_register_operand (operands[1], E_V4SImode)
          || !s_register_operand (operands[2], E_V4SImode)
          || !vpr_register_operand (operands[3], E_V4BImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern85 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      return pattern55 (x3, E_V8BImode, E_V8HImode, E_V16QImode); /* [-1, 0] */

    case E_V8HImode:
      if (pattern55 (x3, E_V4BImode, E_V4SImode, E_V8HImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern86 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != i2)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], i2))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], i2))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!s_register_operand (operands[2], i2))
    return -1;
  x6 = XVECEXP (x2, 0, 2);
  operands[3] = x6;
  if (!vpr_register_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern87 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      return pattern49 (x3, E_V16BImode, E_V16QImode); /* [-1, 0] */

    case E_V8HImode:
      if (pattern49 (x3, E_V8BImode, E_V8HImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern88 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_DImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], E_DImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], E_V4SImode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!s_register_operand (operands[2], E_V4SImode))
    return -1;
  x6 = XVECEXP (x2, 0, 2);
  operands[3] = x6;
  if (!vpr_register_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern89 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_BLKmode)
    return -1;
  x3 = XEXP (x1, 0);
  if (GET_CODE (x3) != MEM
      || GET_MODE (x3) != E_BLKmode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != SCRATCH)
    return -1;
  x5 = XVECEXP (x2, 0, 0);
  operands[0] = x5;
  if (!register_operand (operands[0], E_SImode))
    return -1;
  x6 = XVECEXP (x2, 0, 1);
  operands[1] = x6;
  x7 = XVECEXP (x2, 0, 2);
  operands[2] = x7;
  switch (GET_MODE (operands[1]))
    {
    case E_V16QImode:
      if (!s_register_operand (operands[1], E_V16QImode)
          || !s_register_operand (operands[2], E_V16QImode))
        return -1;
      return 0;

    case E_V8HImode:
      if (!s_register_operand (operands[1], E_V8HImode)
          || !s_register_operand (operands[2], E_V8HImode))
        return -1;
      return 1;

    case E_V4SImode:
      if (!s_register_operand (operands[1], E_V4SImode)
          || !s_register_operand (operands[2], E_V4SImode))
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern90 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_BLKmode)
    return -1;
  x3 = XEXP (x1, 0);
  if (GET_CODE (x3) != MEM
      || GET_MODE (x3) != E_BLKmode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != SCRATCH)
    return -1;
  x5 = XVECEXP (x2, 0, 0);
  operands[0] = x5;
  if (!s_register_operand (operands[0], E_V4SImode))
    return -1;
  x6 = XVECEXP (x2, 0, 1);
  operands[1] = x6;
  if (!immediate_operand (operands[1], E_SImode))
    return -1;
  x7 = XVECEXP (x2, 0, 2);
  operands[2] = x7;
  if (!s_register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern91 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!mve_memory_operand (operands[0], i2)
      || GET_MODE (x1) != i2
      || !s_register_operand (operands[1], i2)
      || !vpr_register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern92 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!mve_memory_operand (operands[0], i1)
      || GET_MODE (x1) != i1
      || !s_register_operand (operands[1], i3)
      || !vpr_register_operand (operands[2], i2))
    return -1;
  return 0;
}

static int
pattern93 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  if (!rtx_equal_p (x6, operands[0]))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      return pattern91 (x3, E_V16BImode, E_V16QImode); /* [-1, 0] */

    case E_V8QImode:
      if (pattern92 (x3, E_V8QImode, E_V8BImode, E_V8HImode) != 0)
        return -1;
      return 1;

    case E_V4QImode:
      if (pattern92 (x3, E_V4QImode, E_V4BImode, E_V4SImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern94 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i2)
      || GET_MODE (x1) != i2
      || !memory_operand (operands[1], i2)
      || !s_register_operand (operands[2], i2)
      || !vpr_register_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern95 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i3)
      || GET_MODE (x1) != i3
      || !memory_operand (operands[1], i1)
      || !s_register_operand (operands[2], i3)
      || !vpr_register_operand (operands[3], i2))
    return -1;
  return 0;
}

static int
pattern96 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      return pattern94 (x3, E_V16BImode, E_V16QImode); /* [-1, 0] */

    case E_V8HImode:
      if (pattern95 (x3, E_V8QImode, E_V8BImode, E_V8HImode) != 0)
        return -1;
      return 1;

    case E_V4SImode:
      if (pattern95 (x3, E_V4QImode, E_V4BImode, E_V4SImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern97 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], i1))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], E_V4SImode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!immediate_operand (operands[2], E_SImode))
    return -1;
  x6 = XVECEXP (x2, 0, 2);
  operands[3] = x6;
  if (!vpr_register_operand (operands[3], E_V4BImode))
    return -1;
  return 0;
}

static int
pattern98 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HImode:
      return pattern94 (x3, E_V8BImode, E_V8HImode); /* [-1, 0] */

    case E_V4SImode:
      if (pattern95 (x3, E_V4HImode, E_V4BImode, E_V4SImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern99 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_V2DImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], E_V2DImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], E_V2DImode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!immediate_operand (operands[2], E_SImode))
    return -1;
  x6 = XVECEXP (x2, 0, 2);
  operands[3] = x6;
  if (!vpr_register_operand (operands[3], E_V2QImode))
    return -1;
  return 0;
}

static int
pattern100 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_V2DImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], E_V2DImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!memory_operand (operands[1], E_V2DImode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!s_register_operand (operands[2], E_V2DImode))
    return -1;
  x6 = XVECEXP (x2, 0, 2);
  operands[3] = x6;
  if (!vpr_register_operand (operands[3], E_V2QImode))
    return -1;
  return 0;
}

static int
pattern101 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_V8HFmode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], E_V8HFmode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!memory_operand (operands[1], E_V8HImode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!s_register_operand (operands[2], E_V8HImode))
    return -1;
  x6 = XVECEXP (x2, 0, 2);
  operands[3] = x6;
  if (!vpr_register_operand (operands[3], E_V8BImode))
    return -1;
  return 0;
}

static int
pattern102 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], i1))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!memory_operand (operands[1], E_V4SImode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!s_register_operand (operands[2], E_V4SImode))
    return -1;
  x6 = XVECEXP (x2, 0, 2);
  operands[3] = x6;
  if (!vpr_register_operand (operands[3], E_V4BImode))
    return -1;
  return 0;
}

static int
pattern103 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  if (!rtx_equal_p (x6, operands[0]))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HImode:
      return pattern91 (x3, E_V8BImode, E_V8HImode); /* [-1, 0] */

    case E_V4HImode:
      if (pattern92 (x3, E_V4HImode, E_V4BImode, E_V4SImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern104 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_BLKmode)
    return -1;
  x3 = XEXP (x1, 0);
  if (GET_CODE (x3) != MEM
      || GET_MODE (x3) != E_BLKmode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != SCRATCH)
    return -1;
  x5 = XVECEXP (x2, 0, 0);
  operands[0] = x5;
  if (!register_operand (operands[0], E_SImode))
    return -1;
  x6 = XVECEXP (x2, 0, 1);
  operands[1] = x6;
  x7 = XVECEXP (x2, 0, 2);
  operands[2] = x7;
  switch (GET_MODE (operands[1]))
    {
    case E_V8HImode:
      if (!s_register_operand (operands[1], E_V8HImode)
          || !s_register_operand (operands[2], E_V8HImode))
        return -1;
      return 0;

    case E_V4SImode:
      if (!s_register_operand (operands[1], E_V4SImode)
          || !s_register_operand (operands[2], E_V4SImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern105 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_V4SImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!mve_memory_operand (operands[0], E_V4SImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], i2))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!vpr_register_operand (operands[2], i1))
    return -1;
  x6 = XVECEXP (x2, 0, 2);
  if (!rtx_equal_p (x6, operands[0]))
    return -1;
  return 0;
}

static int
pattern106 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_BLKmode)
    return -1;
  x3 = XEXP (x1, 0);
  if (GET_CODE (x3) != MEM
      || GET_MODE (x3) != E_BLKmode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != SCRATCH)
    return -1;
  x5 = XVECEXP (x2, 0, 0);
  operands[0] = x5;
  if (!s_register_operand (operands[0], E_V2DImode))
    return -1;
  x6 = XVECEXP (x2, 0, 1);
  operands[1] = x6;
  if (!mve_vldrd_immediate (operands[1], E_SImode))
    return -1;
  x7 = XVECEXP (x2, 0, 2);
  operands[2] = x7;
  if (!s_register_operand (operands[2], E_V2DImode))
    return -1;
  return 0;
}

static int
pattern107 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_BLKmode)
    return -1;
  x3 = XEXP (x1, 0);
  if (GET_CODE (x3) != MEM
      || GET_MODE (x3) != E_BLKmode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != SCRATCH)
    return -1;
  x5 = XVECEXP (x2, 0, 0);
  operands[0] = x5;
  if (!register_operand (operands[0], E_SImode))
    return -1;
  x6 = XVECEXP (x2, 0, 1);
  operands[1] = x6;
  if (!s_register_operand (operands[1], E_V2DImode))
    return -1;
  x7 = XVECEXP (x2, 0, 2);
  operands[2] = x7;
  if (!s_register_operand (operands[2], E_V2DImode))
    return -1;
  return 0;
}

static int
pattern108 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_BLKmode)
    return -1;
  x3 = XEXP (x1, 0);
  if (GET_CODE (x3) != MEM
      || GET_MODE (x3) != E_BLKmode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != SCRATCH)
    return -1;
  x5 = XVECEXP (x2, 0, 0);
  operands[0] = x5;
  if (!register_operand (operands[0], E_SImode))
    return -1;
  x6 = XVECEXP (x2, 0, 1);
  operands[1] = x6;
  if (!s_register_operand (operands[1], E_V8HImode))
    return -1;
  x7 = XVECEXP (x2, 0, 2);
  operands[2] = x7;
  if (!s_register_operand (operands[2], E_V8HFmode))
    return -1;
  return 0;
}

static int
pattern109 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_BLKmode)
    return -1;
  x3 = XEXP (x1, 0);
  if (GET_CODE (x3) != MEM
      || GET_MODE (x3) != E_BLKmode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != SCRATCH)
    return -1;
  x5 = XVECEXP (x2, 0, 0);
  operands[0] = x5;
  if (!register_operand (operands[0], E_SImode))
    return -1;
  x6 = XVECEXP (x2, 0, 1);
  operands[1] = x6;
  if (!s_register_operand (operands[1], E_V4SImode))
    return -1;
  x7 = XVECEXP (x2, 0, 2);
  operands[2] = x7;
  if (!s_register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern110 (rtx x1, unsigned int i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (GET_MODE (x1) != E_SImode)
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  if (GET_CODE (x2) != REG
      || REGNO (x2) != i1
      || GET_MODE (x2) != i2)
    return -1;
  return 0;
}

static int
pattern111 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!register_operand (operands[0], i1))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  switch (GET_MODE (operands[1]))
    {
    case E_V8QImode:
      if (!register_operand (operands[1], E_V8QImode))
        return -1;
      return 0;

    case E_V4HImode:
      if (!register_operand (operands[1], E_V4HImode))
        return -1;
      return 1;

    case E_V2SImode:
      if (!register_operand (operands[1], E_V2SImode))
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern112 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  switch (GET_MODE (operands[0]))
    {
    case E_HFmode:
      if (!s_register_operand (operands[0], E_HFmode)
          || GET_MODE (x3) != E_HFmode
          || !s_register_operand (operands[1], E_HFmode))
        return -1;
      return 0;

    case E_V8HFmode:
      if (!s_register_operand (operands[0], E_V8HFmode)
          || GET_MODE (x3) != E_V8HFmode
          || !s_register_operand (operands[1], E_V8HFmode))
        return -1;
      return 1;

    case E_V4HFmode:
      if (!s_register_operand (operands[0], E_V4HFmode)
          || GET_MODE (x3) != E_V4HFmode
          || !s_register_operand (operands[1], E_V4HFmode))
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern113 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  switch (GET_MODE (operands[0]))
    {
    case E_HFmode:
      if (!s_register_operand (operands[0], E_HFmode)
          || GET_MODE (x3) != E_HFmode
          || !s_register_operand (operands[1], E_SImode))
        return -1;
      return 0;

    case E_SImode:
      if (!s_register_operand (operands[0], E_SImode)
          || GET_MODE (x3) != E_SImode
          || !s_register_operand (operands[1], E_HFmode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern114 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  switch (GET_MODE (operands[0]))
    {
    case E_SImode:
      if (!s_register_operand (operands[0], E_SImode)
          || GET_MODE (x3) != E_SImode
          || !s_register_operand (operands[1], E_HFmode))
        return -1;
      return 0;

    case E_V8HImode:
      if (!s_register_operand (operands[0], E_V8HImode)
          || GET_MODE (x3) != E_V8HImode
          || !s_register_operand (operands[1], E_V8HFmode))
        return -1;
      return 1;

    case E_V4HImode:
      if (!s_register_operand (operands[0], E_V4HImode)
          || GET_MODE (x3) != E_V4HImode
          || !s_register_operand (operands[1], E_V4HFmode))
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern115 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  switch (GET_MODE (operands[0]))
    {
    case E_SFmode:
      if (!register_operand (operands[0], E_SFmode)
          || GET_MODE (x3) != E_SFmode
          || !register_operand (operands[1], E_SFmode))
        return -1;
      return 0;

    case E_DFmode:
      if (!register_operand (operands[0], E_DFmode)
          || GET_MODE (x3) != E_DFmode
          || !register_operand (operands[1], E_DFmode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern116 (rtx x1, machine_mode i1, unsigned int i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x1, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != i2
      || GET_MODE (x3) != i1)
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[0] = x4;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  return 0;
}

static int
pattern117 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  switch (GET_MODE (operands[0]))
    {
    case E_V2SFmode:
      if (!s_register_operand (operands[0], E_V2SFmode)
          || GET_MODE (x3) != E_V2SFmode
          || !s_register_operand (operands[1], E_V2SFmode))
        return -1;
      return 0;

    case E_V4SFmode:
      if (!s_register_operand (operands[0], E_V4SFmode)
          || GET_MODE (x3) != E_V4SFmode
          || !s_register_operand (operands[1], E_V4SFmode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern118 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HFmode:
      if (!s_register_operand (operands[0], E_V8HFmode)
          || GET_MODE (x3) != E_V8HFmode
          || !s_register_operand (operands[1], E_V8HFmode))
        return -1;
      return 0;

    case E_V4HFmode:
      if (!s_register_operand (operands[0], E_V4HFmode)
          || GET_MODE (x3) != E_V4HFmode
          || !s_register_operand (operands[1], E_V4HFmode))
        return -1;
      return 1;

    case E_V2SImode:
      if (!s_register_operand (operands[0], E_V2SImode)
          || GET_MODE (x3) != E_V2SImode
          || !s_register_operand (operands[1], E_V2SImode))
        return -1;
      return 2;

    case E_V2SFmode:
      if (!s_register_operand (operands[0], E_V2SFmode)
          || GET_MODE (x3) != E_V2SFmode
          || !s_register_operand (operands[1], E_V2SFmode))
        return -1;
      return 3;

    case E_V4SImode:
      if (!s_register_operand (operands[0], E_V4SImode)
          || GET_MODE (x3) != E_V4SImode
          || !s_register_operand (operands[1], E_V4SImode))
        return -1;
      return 4;

    case E_V4SFmode:
      if (!s_register_operand (operands[0], E_V4SFmode)
          || GET_MODE (x3) != E_V4SFmode
          || !s_register_operand (operands[1], E_V4SFmode))
        return -1;
      return 5;

    default:
      return -1;
    }
}

static int
pattern119 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  switch (GET_MODE (operands[0]))
    {
    case E_V4HImode:
      if (!s_register_operand (operands[0], E_V4HImode)
          || GET_MODE (x3) != E_V4HImode
          || !s_register_operand (operands[1], E_V8QImode))
        return -1;
      return 0;

    case E_V8HImode:
      if (!s_register_operand (operands[0], E_V8HImode)
          || GET_MODE (x3) != E_V8HImode
          || !s_register_operand (operands[1], E_V16QImode))
        return -1;
      return 1;

    case E_V2SImode:
      if (!s_register_operand (operands[0], E_V2SImode)
          || GET_MODE (x3) != E_V2SImode
          || !s_register_operand (operands[1], E_V4HImode))
        return -1;
      return 2;

    case E_V4SImode:
      if (!s_register_operand (operands[0], E_V4SImode)
          || GET_MODE (x3) != E_V4SImode
          || !s_register_operand (operands[1], E_V8HImode))
        return -1;
      return 3;

    case E_DImode:
      if (!s_register_operand (operands[0], E_DImode)
          || GET_MODE (x3) != E_DImode
          || !s_register_operand (operands[1], E_V2SImode))
        return -1;
      return 4;

    case E_V2DImode:
      if (!s_register_operand (operands[0], E_V2DImode)
          || GET_MODE (x3) != E_V2DImode
          || !s_register_operand (operands[1], E_V4SImode))
        return -1;
      return 5;

    default:
      return -1;
    }
}

static int
pattern120 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  switch (GET_MODE (operands[0]))
    {
    case E_V8QImode:
      if (!s_register_operand (operands[0], E_V8QImode)
          || GET_MODE (x3) != E_V8QImode
          || !s_register_operand (operands[1], E_V8QImode))
        return -1;
      return 0;

    case E_V16QImode:
      if (!s_register_operand (operands[0], E_V16QImode)
          || GET_MODE (x3) != E_V16QImode
          || !s_register_operand (operands[1], E_V16QImode))
        return -1;
      return 1;

    case E_V4HImode:
      if (!s_register_operand (operands[0], E_V4HImode)
          || GET_MODE (x3) != E_V4HImode
          || !s_register_operand (operands[1], E_V4HImode))
        return -1;
      return 2;

    case E_V8HImode:
      if (!s_register_operand (operands[0], E_V8HImode)
          || GET_MODE (x3) != E_V8HImode
          || !s_register_operand (operands[1], E_V8HImode))
        return -1;
      return 3;

    case E_V2SImode:
      if (!s_register_operand (operands[0], E_V2SImode)
          || GET_MODE (x3) != E_V2SImode
          || !s_register_operand (operands[1], E_V2SImode))
        return -1;
      return 4;

    case E_V4SImode:
      if (!s_register_operand (operands[0], E_V4SImode)
          || GET_MODE (x3) != E_V4SImode
          || !s_register_operand (operands[1], E_V4SImode))
        return -1;
      return 5;

    default:
      return -1;
    }
}

static int
pattern121 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  switch (GET_MODE (operands[0]))
    {
    case E_V2SImode:
      if (!s_register_operand (operands[0], E_V2SImode)
          || GET_MODE (x3) != E_V2SImode
          || !s_register_operand (operands[1], E_V2SFmode))
        return -1;
      return 0;

    case E_V4SImode:
      if (!s_register_operand (operands[0], E_V4SImode)
          || GET_MODE (x3) != E_V4SImode
          || !s_register_operand (operands[1], E_V4SFmode))
        return -1;
      return 1;

    case E_V2SFmode:
      if (!s_register_operand (operands[0], E_V2SFmode)
          || GET_MODE (x3) != E_V2SFmode
          || !s_register_operand (operands[1], E_V2SImode))
        return -1;
      return 2;

    case E_V4SFmode:
      if (!s_register_operand (operands[0], E_V4SFmode)
          || GET_MODE (x3) != E_V4SFmode
          || !s_register_operand (operands[1], E_V4SImode))
        return -1;
      return 3;

    case E_V4HFmode:
      if (!s_register_operand (operands[0], E_V4HFmode)
          || GET_MODE (x3) != E_V4HFmode
          || !s_register_operand (operands[1], E_V4HImode))
        return -1;
      return 4;

    case E_V8HFmode:
      if (!s_register_operand (operands[0], E_V8HFmode)
          || GET_MODE (x3) != E_V8HFmode
          || !s_register_operand (operands[1], E_V8HImode))
        return -1;
      return 5;

    case E_V8HImode:
      if (!s_register_operand (operands[0], E_V8HImode)
          || GET_MODE (x3) != E_V8HImode
          || !s_register_operand (operands[1], E_V8HFmode))
        return -1;
      return 6;

    case E_V4HImode:
      if (!s_register_operand (operands[0], E_V4HImode)
          || GET_MODE (x3) != E_V4HImode
          || !s_register_operand (operands[1], E_V4HFmode))
        return -1;
      return 7;

    default:
      return -1;
    }
}

static int
pattern122 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (GET_MODE (operands[0]))
    {
    case E_V8QImode:
      if (!s_register_operand (operands[0], E_V8QImode)
          || GET_MODE (x1) != E_V8QImode
          || !s_register_operand (operands[1], E_V8HImode))
        return -1;
      return 0;

    case E_V4HImode:
      if (!s_register_operand (operands[0], E_V4HImode)
          || GET_MODE (x1) != E_V4HImode
          || !s_register_operand (operands[1], E_V4SImode))
        return -1;
      return 1;

    case E_V2SImode:
      if (!s_register_operand (operands[0], E_V2SImode)
          || GET_MODE (x1) != E_V2SImode
          || !s_register_operand (operands[1], E_V2DImode))
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern123 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  return pattern122 (x3); /* [-1, 2] */
}

static int
pattern124 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HImode:
      if (!s_register_operand (operands[0], E_V8HImode)
          || GET_MODE (x1) != E_V8HImode
          || !s_register_operand (operands[1], E_V8QImode))
        return -1;
      return 0;

    case E_V4SImode:
      if (!s_register_operand (operands[0], E_V4SImode)
          || GET_MODE (x1) != E_V4SImode
          || !s_register_operand (operands[1], E_V4HImode))
        return -1;
      return 1;

    case E_V2DImode:
      if (!s_register_operand (operands[0], E_V2DImode)
          || GET_MODE (x1) != E_V2DImode
          || !s_register_operand (operands[1], E_V2SImode))
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern125 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  return pattern124 (x3); /* [-1, 2] */
}

static int
pattern126 (rtx x1, int i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_V16QImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!register_operand (operands[0], E_V16QImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  switch (GET_CODE (x4))
    {
    case REG:
    case SUBREG:
      operands[1] = x4;
      if (!register_operand (operands[1], E_V16QImode))
        return -1;
      return 0;

    case UNSPEC:
      if (XVECLEN (x4, 0) != 1
          || XINT (x4, 1) != i1
          || GET_MODE (x4) != E_V16QImode)
        return -1;
      x5 = XVECEXP (x4, 0, 0);
      if (GET_CODE (x5) != XOR
          || GET_MODE (x5) != E_V16QImode)
        return -1;
      x6 = XEXP (x5, 0);
      operands[1] = x6;
      if (!register_operand (operands[1], E_V16QImode))
        return -1;
      x7 = XEXP (x5, 1);
      operands[2] = x7;
      if (!register_operand (operands[2], E_V16QImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern127 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_V16QImode)
    return -1;
  x3 = XVECEXP (x2, 0, 0);
  if (GET_CODE (x3) != XOR
      || GET_MODE (x3) != E_V16QImode)
    return -1;
  x4 = XEXP (x1, 0);
  operands[0] = x4;
  if (!register_operand (operands[0], E_V16QImode))
    return -1;
  x5 = XEXP (x3, 0);
  operands[1] = x5;
  if (!register_operand (operands[1], E_V16QImode))
    return -1;
  x6 = XEXP (x3, 1);
  operands[2] = x6;
  if (!register_operand (operands[2], E_V16QImode))
    return -1;
  return 0;
}

static int
pattern128 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HFmode:
      if (!s_register_operand (operands[0], E_V8HFmode)
          || GET_MODE (x1) != E_V8HFmode
          || !s_register_operand (operands[1], E_V8HFmode))
        return -1;
      return 0;

    case E_V4SFmode:
      if (!s_register_operand (operands[0], E_V4SFmode)
          || GET_MODE (x1) != E_V4SFmode
          || !s_register_operand (operands[1], E_V4SFmode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern129 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  return pattern128 (x3); /* [-1, 1] */
}

static int
pattern130 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HFmode:
      if (!s_register_operand (operands[0], E_V8HFmode)
          || GET_MODE (x3) != E_V8HFmode
          || !s_register_operand (operands[1], i1))
        return -1;
      return 0;

    case E_V4SFmode:
      if (!s_register_operand (operands[0], E_V4SFmode)
          || GET_MODE (x3) != E_V4SFmode
          || !s_register_operand (operands[1], i2))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern131 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      if (!s_register_operand (operands[0], E_V16QImode)
          || GET_MODE (x1) != E_V16QImode
          || !s_register_operand (operands[1], E_V16QImode))
        return -1;
      return 0;

    case E_V8HImode:
      if (!s_register_operand (operands[0], E_V8HImode)
          || GET_MODE (x1) != E_V8HImode
          || !s_register_operand (operands[1], E_V8HImode))
        return -1;
      return 1;

    case E_V4SImode:
      if (!s_register_operand (operands[0], E_V4SImode)
          || GET_MODE (x1) != E_V4SImode
          || !s_register_operand (operands[1], E_V4SImode))
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern132 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  return pattern131 (x3); /* [-1, 2] */
}

static int
pattern133 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HImode:
      if (!s_register_operand (operands[0], E_V8HImode)
          || GET_MODE (x1) != E_V8HImode
          || !s_register_operand (operands[1], i1))
        return -1;
      return 0;

    case E_V4SImode:
      if (!s_register_operand (operands[0], E_V4SImode)
          || GET_MODE (x1) != E_V4SImode
          || !s_register_operand (operands[1], i2))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern134 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  return pattern133 (x3, i1, i2); /* [-1, 1] */
}

static int
pattern135 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      if (!s_register_operand (operands[0], E_V16QImode)
          || GET_MODE (x3) != E_V16QImode
          || !s_register_operand (operands[1], E_QImode))
        return -1;
      return 0;

    case E_V8HImode:
      if (!s_register_operand (operands[0], E_V8HImode)
          || GET_MODE (x3) != E_V8HImode
          || !s_register_operand (operands[1], E_HImode))
        return -1;
      return 1;

    case E_V4SImode:
      if (!s_register_operand (operands[0], E_V4SImode)
          || GET_MODE (x3) != E_V4SImode
          || !s_register_operand (operands[1], E_SImode))
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern136 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  switch (GET_MODE (operands[1]))
    {
    case E_V16QImode:
      if (!s_register_operand (operands[1], E_V16QImode))
        return -1;
      return 0;

    case E_V8HImode:
      if (!s_register_operand (operands[1], E_V8HImode))
        return -1;
      return 1;

    case E_V4SImode:
      if (!s_register_operand (operands[1], E_V4SImode))
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern137 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      if (!s_register_operand (operands[0], E_V16QImode)
          || GET_MODE (x3) != E_V16QImode
          || !s_register_operand (operands[1], E_V16QImode))
        return -1;
      return 0;

    case E_V8HImode:
      if (!s_register_operand (operands[0], E_V8HImode)
          || GET_MODE (x3) != E_V8HImode
          || !s_register_operand (operands[1], E_V8HImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern138 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HImode:
      if (!s_register_operand (operands[0], E_V8HImode)
          || GET_MODE (x3) != E_V8HImode
          || !immediate_operand (operands[1], E_HImode))
        return -1;
      return 0;

    case E_V4SImode:
      if (!s_register_operand (operands[0], E_V4SImode)
          || GET_MODE (x3) != E_V4SImode
          || !immediate_operand (operands[1], E_SImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern139 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      if (!mve_memory_operand (operands[0], E_V16QImode)
          || GET_MODE (x3) != E_V16QImode
          || !s_register_operand (operands[1], E_V16QImode))
        return -1;
      return 0;

    case E_V8QImode:
      if (!mve_memory_operand (operands[0], E_V8QImode)
          || GET_MODE (x3) != E_V8QImode
          || !s_register_operand (operands[1], E_V8HImode))
        return -1;
      return 1;

    case E_V4QImode:
      if (!mve_memory_operand (operands[0], E_V4QImode)
          || GET_MODE (x3) != E_V4QImode
          || !s_register_operand (operands[1], E_V4SImode))
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern140 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      if (!s_register_operand (operands[0], E_V16QImode)
          || GET_MODE (x3) != E_V16QImode
          || !mve_memory_operand (operands[1], E_V16QImode))
        return -1;
      return 0;

    case E_V8HImode:
      if (!s_register_operand (operands[0], E_V8HImode)
          || GET_MODE (x3) != E_V8HImode
          || !mve_memory_operand (operands[1], E_V8QImode))
        return -1;
      return 1;

    case E_V4SImode:
      if (!s_register_operand (operands[0], E_V4SImode)
          || GET_MODE (x3) != E_V4SImode
          || !mve_memory_operand (operands[1], E_V4QImode))
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern141 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HImode:
      if (!s_register_operand (operands[0], E_V8HImode)
          || GET_MODE (x3) != E_V8HImode
          || !mve_memory_operand (operands[1], E_V8HImode))
        return -1;
      return 0;

    case E_V4SImode:
      if (!s_register_operand (operands[0], E_V4SImode)
          || GET_MODE (x3) != E_V4SImode
          || !mve_memory_operand (operands[1], E_V4HImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern142 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HImode:
      if (!mve_memory_operand (operands[0], E_V8HImode)
          || GET_MODE (x3) != E_V8HImode
          || !s_register_operand (operands[1], E_V8HImode))
        return -1;
      return 0;

    case E_V4HImode:
      if (!mve_memory_operand (operands[0], E_V4HImode)
          || GET_MODE (x3) != E_V4HImode
          || !s_register_operand (operands[1], E_V4SImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern143 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!s_register_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern144 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != i2)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], i2))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], i2))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!s_register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern145 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XVECEXP (x2, 0, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != 13
      || GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XVECEXP (x2, 0, 1);
  if (GET_CODE (x4) != REG
      || REGNO (x4) != 14
      || GET_MODE (x4) != E_SImode)
    return -1;
  x5 = XEXP (x1, 0);
  if (GET_CODE (x5) != REG
      || REGNO (x5) != 12
      || GET_MODE (x5) != E_SImode)
    return -1;
  return 0;
}

static int
pattern146 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1
      || !s_register_operand (operands[1], i1)
      || !imm_lshift_or_reg_neon (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern147 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V8QImode:
      return pattern146 (x3, E_V8QImode); /* [-1, 0] */

    case E_V16QImode:
      if (pattern146 (x3, E_V16QImode) != 0)
        return -1;
      return 1;

    case E_V4HImode:
      if (pattern146 (x3, E_V4HImode) != 0)
        return -1;
      return 2;

    case E_V8HImode:
      if (pattern146 (x3, E_V8HImode) != 0)
        return -1;
      return 3;

    case E_V2SImode:
      if (pattern146 (x3, E_V2SImode) != 0)
        return -1;
      return 4;

    case E_V4SImode:
      if (pattern146 (x3, E_V4SImode) != 0)
        return -1;
      return 5;

    default:
      return -1;
    }
}

static int
pattern148 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != i2)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!register_operand (operands[0], i2))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!register_operand (operands[1], i1))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern149 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!register_operand (operands[0], i1))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!register_operand (operands[1], i1))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern150 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XVECEXP (x2, 0, 0);
  if (GET_CODE (x3) != FIX
      || GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != FIX
      || GET_MODE (x4) != E_SFmode)
    return -1;
  x5 = XEXP (x4, 0);
  if (GET_CODE (x5) != FLOAT_EXTEND
      || GET_MODE (x5) != E_SFmode)
    return -1;
  x6 = XEXP (x1, 0);
  operands[0] = x6;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x7 = XEXP (x5, 0);
  operands[1] = x7;
  if (!s_register_operand (operands[1], E_HFmode))
    return -1;
  x8 = XVECEXP (x2, 0, 1);
  operands[2] = x8;
  if (!immediate_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern151 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_HFmode:
      return pattern42 (x3, E_HFmode); /* [-1, 0] */

    case E_SFmode:
      if (pattern42 (x3, E_SFmode) != 0)
        return -1;
      return 1;

    case E_DFmode:
      if (pattern42 (x3, E_DFmode) != 0)
        return -1;
      return 2;

    case E_V8HFmode:
      if (pattern42 (x3, E_V8HFmode) != 0)
        return -1;
      return 3;

    case E_V4HFmode:
      if (pattern42 (x3, E_V4HFmode) != 0)
        return -1;
      return 4;

    case E_V2SFmode:
      if (pattern42 (x3, E_V2SFmode) != 0)
        return -1;
      return 5;

    case E_V4SFmode:
      if (pattern42 (x3, E_V4SFmode) != 0)
        return -1;
      return 6;

    default:
      return -1;
    }
}

static int
pattern152 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V8QImode:
      return pattern42 (x3, E_V8QImode); /* [-1, 0] */

    case E_V16QImode:
      if (pattern42 (x3, E_V16QImode) != 0)
        return -1;
      return 1;

    case E_V4HImode:
      if (pattern42 (x3, E_V4HImode) != 0)
        return -1;
      return 2;

    case E_V8HImode:
      if (pattern42 (x3, E_V8HImode) != 0)
        return -1;
      return 3;

    case E_V2SImode:
      if (pattern42 (x3, E_V2SImode) != 0)
        return -1;
      return 4;

    case E_V4SImode:
      if (pattern42 (x3, E_V4SImode) != 0)
        return -1;
      return 5;

    case E_V2DImode:
      if (pattern42 (x3, E_V2DImode) != 0)
        return -1;
      return 6;

    default:
      return -1;
    }
}

static int
pattern153 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V8QImode:
      return pattern42 (x3, E_V8QImode); /* [-1, 0] */

    case E_V4HImode:
      if (pattern42 (x3, E_V4HImode) != 0)
        return -1;
      return 1;

    case E_V2SImode:
      if (pattern42 (x3, E_V2SImode) != 0)
        return -1;
      return 2;

    case E_V2SFmode:
      if (pattern42 (x3, E_V2SFmode) != 0)
        return -1;
      return 3;

    default:
      return -1;
    }
}

static int
pattern154 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V8QImode:
      return pattern42 (x3, E_V8QImode); /* [-1, 0] */

    case E_V4HImode:
      if (pattern42 (x3, E_V4HImode) != 0)
        return -1;
      return 1;

    case E_V2SImode:
      if (pattern42 (x3, E_V2SImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern155 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V2SFmode:
      return pattern42 (x3, E_V2SFmode); /* [-1, 0] */

    case E_V4SFmode:
      if (pattern42 (x3, E_V4SFmode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern156 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HImode:
      return pattern39 (x3, i1, E_V8HImode); /* [-1, 0] */

    case E_V4SImode:
      if (pattern39 (x3, i2, E_V4SImode) != 0)
        return -1;
      return 1;

    case E_V2DImode:
      if (pattern39 (x3, i3, E_V2DImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern157 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HImode:
      return pattern41 (x3, E_V8QImode, E_V8HImode); /* [-1, 0] */

    case E_V4SImode:
      if (pattern41 (x3, E_V4HImode, E_V4SImode) != 0)
        return -1;
      return 1;

    case E_V2DImode:
      if (pattern41 (x3, E_V2SImode, E_V2DImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern158 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V8QImode:
      return pattern42 (x3, E_V8QImode); /* [-1, 0] */

    case E_V16QImode:
      if (pattern42 (x3, E_V16QImode) != 0)
        return -1;
      return 1;

    case E_V4HImode:
      if (pattern42 (x3, E_V4HImode) != 0)
        return -1;
      return 2;

    case E_V8HImode:
      if (pattern42 (x3, E_V8HImode) != 0)
        return -1;
      return 3;

    case E_V2SImode:
      if (pattern42 (x3, E_V2SImode) != 0)
        return -1;
      return 4;

    case E_V4SImode:
      if (pattern42 (x3, E_V4SImode) != 0)
        return -1;
      return 5;

    default:
      return -1;
    }
}

static int
pattern159 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V8QImode:
      return pattern42 (x3, E_V8QImode); /* [-1, 0] */

    case E_V16QImode:
      if (pattern42 (x3, E_V16QImode) != 0)
        return -1;
      return 1;

    case E_V4HImode:
      if (pattern42 (x3, E_V4HImode) != 0)
        return -1;
      return 2;

    case E_V8HImode:
      if (pattern42 (x3, E_V8HImode) != 0)
        return -1;
      return 3;

    case E_V2SImode:
      if (pattern42 (x3, E_V2SImode) != 0)
        return -1;
      return 4;

    case E_V4SImode:
      if (pattern42 (x3, E_V4SImode) != 0)
        return -1;
      return 5;

    case E_DImode:
      if (pattern42 (x3, E_DImode) != 0)
        return -1;
      return 6;

    case E_V2DImode:
      if (pattern42 (x3, E_V2DImode) != 0)
        return -1;
      return 7;

    default:
      return -1;
    }
}

static int
pattern160 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V8QImode:
      return pattern39 (x3, E_V8HImode, E_V8QImode); /* [-1, 0] */

    case E_V4HImode:
      if (pattern39 (x3, E_V4SImode, E_V4HImode) != 0)
        return -1;
      return 1;

    case E_V2SImode:
      if (pattern39 (x3, E_V2DImode, E_V2SImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern161 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V4HImode:
      return pattern42 (x3, E_V4HImode); /* [-1, 0] */

    case E_V2SImode:
      if (pattern42 (x3, E_V2SImode) != 0)
        return -1;
      return 1;

    case E_V8HImode:
      if (pattern42 (x3, E_V8HImode) != 0)
        return -1;
      return 2;

    case E_V4SImode:
      if (pattern42 (x3, E_V4SImode) != 0)
        return -1;
      return 3;

    default:
      return -1;
    }
}

static int
pattern162 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V4SImode:
      return pattern39 (x3, i1, E_V4SImode); /* [-1, 0] */

    case E_V2DImode:
      if (pattern39 (x3, i2, E_V2DImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern163 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i2)
      || GET_MODE (x1) != i2
      || !s_register_operand (operands[1], i1)
      || !reg_or_zero_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern164 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V2SImode:
      return pattern163 (x3, E_V2SFmode, E_V2SImode); /* [-1, 0] */

    case E_V4SImode:
      if (pattern163 (x3, E_V4SFmode, E_V4SImode) != 0)
        return -1;
      return 1;

    case E_V8HImode:
      if (pattern163 (x3, E_V8HFmode, E_V8HImode) != 0)
        return -1;
      return 2;

    case E_V4HImode:
      if (pattern163 (x3, E_V4HFmode, E_V4HImode) != 0)
        return -1;
      return 3;

    default:
      return -1;
    }
}

static int
pattern165 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V2SImode:
      return pattern39 (x3, E_V2SFmode, E_V2SImode); /* [-1, 0] */

    case E_V4SImode:
      if (pattern39 (x3, E_V4SFmode, E_V4SImode) != 0)
        return -1;
      return 1;

    case E_V8HImode:
      if (pattern39 (x3, E_V8HFmode, E_V8HImode) != 0)
        return -1;
      return 2;

    case E_V4HImode:
      if (pattern39 (x3, E_V4HFmode, E_V4HImode) != 0)
        return -1;
      return 3;

    default:
      return -1;
    }
}

static int
pattern166 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V8QImode:
      return pattern42 (x3, E_V8QImode); /* [-1, 0] */

    case E_V16QImode:
      if (pattern42 (x3, E_V16QImode) != 0)
        return -1;
      return 1;

    case E_V4HImode:
      if (pattern42 (x3, E_V4HImode) != 0)
        return -1;
      return 2;

    case E_V8HImode:
      if (pattern42 (x3, E_V8HImode) != 0)
        return -1;
      return 3;

    case E_V2SImode:
      if (pattern42 (x3, E_V2SImode) != 0)
        return -1;
      return 4;

    case E_V4SImode:
      if (pattern42 (x3, E_V4SImode) != 0)
        return -1;
      return 5;

    case E_V2SFmode:
      if (pattern42 (x3, E_V2SFmode) != 0)
        return -1;
      return 6;

    case E_V4SFmode:
      if (pattern42 (x3, E_V4SFmode) != 0)
        return -1;
      return 7;

    case E_V8HFmode:
      if (pattern42 (x3, E_V8HFmode) != 0)
        return -1;
      return 8;

    case E_V4HFmode:
      if (pattern42 (x3, E_V4HFmode) != 0)
        return -1;
      return 9;

    default:
      return -1;
    }
}

static int
pattern167 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V4HFmode:
      return pattern42 (x3, E_V4HFmode); /* [-1, 0] */

    case E_V8QImode:
      if (pattern42 (x3, E_V8QImode) != 0)
        return -1;
      return 1;

    case E_V4HImode:
      if (pattern42 (x3, E_V4HImode) != 0)
        return -1;
      return 2;

    case E_V2SImode:
      if (pattern42 (x3, E_V2SImode) != 0)
        return -1;
      return 3;

    case E_V2SFmode:
      if (pattern42 (x3, E_V2SFmode) != 0)
        return -1;
      return 4;

    case E_V4SFmode:
      if (pattern42 (x3, E_V4SFmode) != 0)
        return -1;
      return 5;

    default:
      return -1;
    }
}

static int
pattern168 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V4HImode:
      return pattern41 (x3, E_V8QImode, E_V4HImode); /* [-1, 0] */

    case E_V8HImode:
      if (pattern41 (x3, E_V16QImode, E_V8HImode) != 0)
        return -1;
      return 1;

    case E_V2SImode:
      if (pattern41 (x3, E_V4HImode, E_V2SImode) != 0)
        return -1;
      return 2;

    case E_V4SImode:
      if (pattern41 (x3, E_V8HImode, E_V4SImode) != 0)
        return -1;
      return 3;

    case E_DImode:
      if (pattern41 (x3, E_V2SImode, E_DImode) != 0)
        return -1;
      return 4;

    case E_V2DImode:
      if (pattern41 (x3, E_V4SImode, E_V2DImode) != 0)
        return -1;
      return 5;

    default:
      return -1;
    }
}

static int
pattern169 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1
      || !register_operand (operands[1], i1)
      || !register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern170 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V4HFmode:
      return pattern169 (x3, E_V4HFmode); /* [-1, 0] */

    case E_V8HFmode:
      if (GET_MODE (x3) != E_V8HFmode)
        return -1;
      return 1;

    case E_V2SFmode:
      if (pattern169 (x3, E_V2SFmode) != 0)
        return -1;
      return 2;

    case E_V4SFmode:
      if (GET_MODE (x3) != E_V4SFmode)
        return -1;
      return 3;

    case E_V16QImode:
      if (pattern42 (x3, E_V16QImode) != 0)
        return -1;
      return 4;

    case E_V8HImode:
      if (pattern42 (x3, E_V8HImode) != 0)
        return -1;
      return 5;

    case E_V4SImode:
      if (pattern42 (x3, E_V4SImode) != 0)
        return -1;
      return 6;

    default:
      return -1;
    }
}

static int
pattern171 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  if (!immediate_operand (operands[2], E_SImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_V2SImode:
      if (!s_register_operand (operands[0], E_V2SImode)
          || GET_MODE (x3) != E_V2SImode
          || !s_register_operand (operands[1], E_V2SFmode))
        return -1;
      return 0;

    case E_V4SImode:
      if (!s_register_operand (operands[0], E_V4SImode)
          || GET_MODE (x3) != E_V4SImode
          || !s_register_operand (operands[1], E_V4SFmode))
        return -1;
      return 1;

    case E_V8HImode:
      if (!s_register_operand (operands[0], E_V8HImode)
          || GET_MODE (x3) != E_V8HImode
          || !s_register_operand (operands[1], E_V8HFmode))
        return -1;
      return 2;

    case E_V4HImode:
      if (!s_register_operand (operands[0], E_V4HImode)
          || GET_MODE (x3) != E_V4HImode
          || !s_register_operand (operands[1], E_V4HFmode))
        return -1;
      return 3;

    case E_V2SFmode:
      if (!s_register_operand (operands[0], E_V2SFmode)
          || GET_MODE (x3) != E_V2SFmode
          || !s_register_operand (operands[1], E_V2SImode))
        return -1;
      return 4;

    case E_V4SFmode:
      if (!s_register_operand (operands[0], E_V4SFmode)
          || GET_MODE (x3) != E_V4SFmode
          || !s_register_operand (operands[1], E_V4SImode))
        return -1;
      return 5;

    case E_V4HFmode:
      if (!s_register_operand (operands[0], E_V4HFmode)
          || GET_MODE (x3) != E_V4HFmode
          || !s_register_operand (operands[1], E_V4HImode))
        return -1;
      return 6;

    case E_V8HFmode:
      if (!s_register_operand (operands[0], E_V8HFmode)
          || GET_MODE (x3) != E_V8HFmode
          || !s_register_operand (operands[1], E_V8HImode))
        return -1;
      return 7;

    default:
      return -1;
    }
}

static int
pattern172 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  if (!immediate_operand (operands[2], E_SImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_V8QImode:
      if (!s_register_operand (operands[0], E_V8QImode)
          || GET_MODE (x3) != E_V8QImode
          || !s_register_operand (operands[1], E_V8QImode))
        return -1;
      return 0;

    case E_V16QImode:
      if (!s_register_operand (operands[0], E_V16QImode)
          || GET_MODE (x3) != E_V16QImode
          || !s_register_operand (operands[1], E_V16QImode))
        return -1;
      return 1;

    case E_V4HImode:
      if (!s_register_operand (operands[0], E_V4HImode)
          || GET_MODE (x3) != E_V4HImode
          || !s_register_operand (operands[1], E_V4HImode))
        return -1;
      return 2;

    case E_V8HImode:
      if (!s_register_operand (operands[0], E_V8HImode)
          || GET_MODE (x3) != E_V8HImode
          || !s_register_operand (operands[1], E_V8HImode))
        return -1;
      return 3;

    case E_V2SImode:
      if (!s_register_operand (operands[0], E_V2SImode)
          || GET_MODE (x3) != E_V2SImode
          || !s_register_operand (operands[1], E_V2SImode))
        return -1;
      return 4;

    case E_V4SImode:
      if (!s_register_operand (operands[0], E_V4SImode)
          || GET_MODE (x3) != E_V4SImode
          || !s_register_operand (operands[1], E_V4SImode))
        return -1;
      return 5;

    case E_DImode:
      if (!s_register_operand (operands[0], E_DImode)
          || GET_MODE (x3) != E_DImode
          || !s_register_operand (operands[1], E_DImode))
        return -1;
      return 6;

    case E_V2DImode:
      if (!s_register_operand (operands[0], E_V2DImode)
          || GET_MODE (x3) != E_V2DImode
          || !s_register_operand (operands[1], E_V2DImode))
        return -1;
      return 7;

    default:
      return -1;
    }
}

static int
pattern173 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  if (!immediate_operand (operands[2], E_SImode))
    return -1;
  return pattern122 (x3); /* [-1, 2] */
}

static int
pattern174 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  if (!immediate_operand (operands[2], E_SImode))
    return -1;
  return pattern124 (x3); /* [-1, 2] */
}

static int
pattern175 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != i2)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], i2))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], i1))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!s_register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern176 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XVECEXP (x2, 0, 1);
  if (GET_CODE (x3) != UNSPEC
      || XVECLEN (x3, 0) != 1
      || XINT (x3, 1) != 327)
    return -1;
  x4 = XVECEXP (x3, 0, 0);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x5 = XEXP (x1, 0);
  operands[0] = x5;
  x6 = XVECEXP (x2, 0, 0);
  operands[1] = x6;
  switch (GET_MODE (operands[0]))
    {
    case E_TImode:
      return 0;

    case E_OImode:
      return 1;

    default:
      return -1;
    }
}

static int
pattern177 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XVECEXP (x2, 0, 1);
  if (GET_CODE (x3) != UNSPEC
      || XVECLEN (x3, 0) != 1
      || XINT (x3, 1) != 327)
    return -1;
  x4 = XVECEXP (x3, 0, 0);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x5 = XEXP (x1, 0);
  operands[0] = x5;
  if (!s_register_operand (operands[0], i1))
    return -1;
  x6 = XVECEXP (x2, 0, 0);
  operands[1] = x6;
  if (!neon_struct_operand (operands[1], i1))
    return -1;
  switch (GET_MODE (x3))
    {
    case E_V8QImode:
      return 0;

    case E_V4HImode:
      return 1;

    case E_V4HFmode:
      return 2;

    case E_V4BFmode:
      return 3;

    case E_V2SImode:
      return 4;

    case E_V2SFmode:
      return 5;

    case E_DImode:
      return 6;

    default:
      return -1;
    }
}

static int
pattern178 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != i2)
    return -1;
  x3 = XVECEXP (x2, 0, 1);
  if (GET_CODE (x3) != UNSPEC
      || XVECLEN (x3, 0) != 1
      || XINT (x3, 1) != 327)
    return -1;
  x4 = XVECEXP (x3, 0, 0);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x5 = XEXP (x1, 0);
  operands[0] = x5;
  if (!s_register_operand (operands[0], i2))
    return -1;
  x6 = XVECEXP (x2, 0, 0);
  operands[1] = x6;
  if (!neon_struct_operand (operands[1], i1))
    return -1;
  switch (GET_MODE (x3))
    {
    case E_V16QImode:
      return 0;

    case E_V8HImode:
      return 1;

    case E_V8HFmode:
      return 2;

    case E_V8BFmode:
      return 3;

    case E_V4SImode:
      return 4;

    case E_V4SFmode:
      return 5;

    default:
      return -1;
    }
}

static int
pattern179 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XVECEXP (x2, 0, 1);
  if (GET_CODE (x3) != UNSPEC
      || XVECLEN (x3, 0) != 1
      || XINT (x3, 1) != 327)
    return -1;
  x4 = XVECEXP (x3, 0, 0);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x5 = XEXP (x1, 0);
  operands[0] = x5;
  if (!s_register_operand (operands[0], i1))
    return -1;
  x6 = XVECEXP (x2, 0, 0);
  operands[1] = x6;
  return 0;
}

static int
pattern180 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XVECEXP (x2, 0, 1);
  if (GET_CODE (x3) != UNSPEC
      || XVECLEN (x3, 0) != 1
      || XINT (x3, 1) != 327)
    return -1;
  x4 = XVECEXP (x3, 0, 0);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x5 = XEXP (x1, 0);
  operands[0] = x5;
  if (!neon_struct_operand (operands[0], i1))
    return -1;
  x6 = XVECEXP (x2, 0, 0);
  operands[1] = x6;
  if (!s_register_operand (operands[1], i1))
    return -1;
  switch (GET_MODE (x3))
    {
    case E_V8QImode:
      return 0;

    case E_V4HImode:
      return 1;

    case E_V4HFmode:
      return 2;

    case E_V4BFmode:
      return 3;

    case E_V2SImode:
      return 4;

    case E_V2SFmode:
      return 5;

    case E_DImode:
      return 6;

    default:
      return -1;
    }
}

static int
pattern181 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != i2)
    return -1;
  x3 = XVECEXP (x2, 0, 1);
  if (GET_CODE (x3) != UNSPEC
      || XVECLEN (x3, 0) != 1
      || XINT (x3, 1) != 327)
    return -1;
  x4 = XVECEXP (x3, 0, 0);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x5 = XEXP (x1, 0);
  operands[0] = x5;
  if (!neon_struct_operand (operands[0], i2))
    return -1;
  x6 = XVECEXP (x2, 0, 0);
  operands[1] = x6;
  if (!s_register_operand (operands[1], i1))
    return -1;
  switch (GET_MODE (x3))
    {
    case E_V16QImode:
      return 0;

    case E_V8HImode:
      return 1;

    case E_V8HFmode:
      return 2;

    case E_V8BFmode:
      return 3;

    case E_V4SImode:
      return 4;

    case E_V4SFmode:
      return 5;

    default:
      return -1;
    }
}

static int
pattern182 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XVECEXP (x2, 0, 1);
  if (GET_CODE (x3) != UNSPEC
      || XVECLEN (x3, 0) != 1
      || XINT (x3, 1) != 327)
    return -1;
  x4 = XVECEXP (x3, 0, 0);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x5 = XEXP (x1, 0);
  operands[0] = x5;
  if (!mve_struct_operand (operands[0], i1))
    return -1;
  x6 = XVECEXP (x2, 0, 0);
  operands[1] = x6;
  if (!s_register_operand (operands[1], i1))
    return -1;
  switch (GET_MODE (x3))
    {
    case E_V16QImode:
      return 0;

    case E_V8HImode:
      return 1;

    case E_V4SImode:
      return 2;

    case E_V8HFmode:
      return 3;

    case E_V4SFmode:
      return 4;

    default:
      return -1;
    }
}

static int
pattern183 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HFmode:
      return pattern41 (x3, E_HFmode, E_V8HFmode); /* [-1, 0] */

    case E_V4SFmode:
      if (pattern41 (x3, E_SFmode, E_V4SFmode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern184 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HFmode:
      if (!s_register_operand (operands[0], E_V8HFmode)
          || GET_MODE (x3) != E_V8HFmode
          || !s_register_operand (operands[1], E_V8HImode)
          || !mve_imm_16 (operands[2], E_SImode))
        return -1;
      return 0;

    case E_V4SFmode:
      if (!s_register_operand (operands[0], E_V4SFmode)
          || GET_MODE (x3) != E_V4SFmode
          || !s_register_operand (operands[1], E_V4SImode)
          || !mve_imm_32 (operands[2], E_SImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern185 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], E_DImode))
    return -1;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  if (!s_register_operand (operands[2], E_DImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      if (!s_register_operand (operands[0], E_V16QImode)
          || GET_MODE (x3) != E_V16QImode)
        return -1;
      return 0;

    case E_V8HImode:
      if (!s_register_operand (operands[0], E_V8HImode)
          || GET_MODE (x3) != E_V8HImode)
        return -1;
      return 1;

    case E_V4SImode:
      if (!s_register_operand (operands[0], E_V4SImode)
          || GET_MODE (x3) != E_V4SImode)
        return -1;
      return 2;

    case E_V2DImode:
      if (!s_register_operand (operands[0], E_V2DImode)
          || GET_MODE (x3) != E_V2DImode)
        return -1;
      return 3;

    default:
      return -1;
    }
}

static int
pattern186 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], E_V8HImode)
      || GET_MODE (x1) != E_V8HImode
      || !s_register_operand (operands[1], i1)
      || !mve_imm_16 (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern187 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], E_V4SImode)
      || GET_MODE (x1) != E_V4SImode
      || !s_register_operand (operands[1], i1)
      || !mve_imm_32 (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern188 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      if (!s_register_operand (operands[0], E_V16QImode)
          || GET_MODE (x3) != E_V16QImode
          || !s_register_operand (operands[1], E_V16QImode)
          || !mve_imm_8 (operands[2], E_SImode))
        return -1;
      return 0;

    case E_V8HImode:
      if (pattern186 (x3, E_V8HImode) != 0)
        return -1;
      return 1;

    case E_V4SImode:
      if (pattern187 (x3, E_V4SImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern189 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HImode:
      return pattern186 (x3, E_V8HFmode); /* [-1, 0] */

    case E_V4SImode:
      if (pattern187 (x3, E_V4SFmode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern190 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_DImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], E_DImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], E_V4SImode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!vpr_register_operand (operands[2], E_V4BImode))
    return -1;
  return 0;
}

static int
pattern191 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      return pattern42 (x3, E_V16QImode); /* [-1, 0] */

    case E_V8HImode:
      if (pattern42 (x3, E_V8HImode) != 0)
        return -1;
      return 1;

    case E_V4SImode:
      if (pattern42 (x3, E_V4SImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern192 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      return pattern41 (x3, E_QImode, E_V16QImode); /* [-1, 0] */

    case E_V8HImode:
      if (pattern41 (x3, E_HImode, E_V8HImode) != 0)
        return -1;
      return 1;

    case E_V4SImode:
      if (pattern41 (x3, E_SImode, E_V4SImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern193 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[2]))
    {
    case E_V16QImode:
      if (!s_register_operand (operands[2], E_V16QImode))
        return -1;
      return 0;

    case E_V8HImode:
      if (!s_register_operand (operands[2], E_V8HImode))
        return -1;
      return 1;

    case E_V4SImode:
      if (!s_register_operand (operands[2], E_V4SImode))
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern194 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[1]))
    {
    case E_V16QImode:
      if (!s_register_operand (operands[1], E_V16QImode)
          || !vpr_register_operand (operands[2], E_V16BImode))
        return -1;
      return 0;

    case E_V8HImode:
      if (!s_register_operand (operands[1], E_V8HImode)
          || !vpr_register_operand (operands[2], E_V8BImode))
        return -1;
      return 1;

    case E_V4SImode:
      if (!s_register_operand (operands[1], E_V4SImode)
          || !vpr_register_operand (operands[2], E_V4BImode))
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern195 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  if (!s_register_operand (operands[2], E_SImode))
    return -1;
  return pattern131 (x3); /* [-1, 2] */
}

static int
pattern196 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_QImode:
      return pattern41 (x3, E_V16QImode, E_QImode); /* [-1, 0] */

    case E_HImode:
      if (pattern41 (x3, E_V8HImode, E_HImode) != 0)
        return -1;
      return 1;

    case E_SImode:
      if (pattern41 (x3, E_V4SImode, E_SImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern197 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[1]))
    {
    case E_V16QImode:
      if (!s_register_operand (operands[1], E_V16QImode)
          || !s_register_operand (operands[2], E_V16QImode))
        return -1;
      return 0;

    case E_V8HImode:
      if (!s_register_operand (operands[1], E_V8HImode)
          || !s_register_operand (operands[2], E_V8HImode))
        return -1;
      return 1;

    case E_V4SImode:
      if (!s_register_operand (operands[1], E_V4SImode)
          || !s_register_operand (operands[2], E_V4SImode))
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern198 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  if (!immediate_operand (operands[2], E_SImode))
    return -1;
  return pattern131 (x3); /* [-1, 2] */
}

static int
pattern199 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HFmode:
      return pattern42 (x3, E_V8HFmode); /* [-1, 0] */

    case E_V4SFmode:
      if (pattern42 (x3, E_V4SFmode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern200 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  if (!immediate_operand (operands[2], E_SImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HImode:
      if (!s_register_operand (operands[0], E_V8HImode)
          || GET_MODE (x3) != E_V8HImode
          || !s_register_operand (operands[1], E_V8HImode))
        return -1;
      return 0;

    case E_V4SImode:
      if (!s_register_operand (operands[0], E_V4SImode)
          || GET_MODE (x3) != E_V4SImode
          || !s_register_operand (operands[1], E_V4SImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern201 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_HFmode:
      return pattern41 (x3, E_V8HFmode, E_HFmode); /* [-1, 0] */

    case E_SFmode:
      if (pattern41 (x3, E_V4SFmode, E_SFmode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern202 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_DImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], E_DImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[1]))
    {
    case E_V8HImode:
      if (!s_register_operand (operands[1], E_V8HImode)
          || !s_register_operand (operands[2], E_V8HImode))
        return -1;
      return 0;

    case E_V4SImode:
      if (!s_register_operand (operands[1], E_V4SImode)
          || !s_register_operand (operands[2], E_V4SImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern203 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      return pattern41 (x3, E_V8HImode, E_V16QImode); /* [-1, 0] */

    case E_V8HImode:
      if (pattern41 (x3, E_V4SImode, E_V8HImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern204 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i3)
      || GET_MODE (x1) != i3
      || !s_register_operand (operands[1], i2)
      || !s_register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern205 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V4SImode:
      return pattern204 (x3, E_HImode, E_V8HImode, E_V4SImode); /* [-1, 0] */

    case E_V2DImode:
      if (pattern204 (x3, E_SImode, E_V4SImode, E_V2DImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern206 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  if (!immediate_operand (operands[2], E_SImode))
    return -1;
  return pattern133 (x3, E_V16QImode, E_V8HImode); /* [-1, 1] */
}

static int
pattern207 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HImode:
      return pattern39 (x3, E_V16QImode, E_V8HImode); /* [-1, 0] */

    case E_V4SImode:
      if (pattern39 (x3, E_V8HImode, E_V4SImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern208 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1
      || !memory_operand (operands[1], i1)
      || !s_register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern209 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i2)
      || GET_MODE (x1) != i2
      || !memory_operand (operands[1], i1)
      || !s_register_operand (operands[2], i2))
    return -1;
  return 0;
}

static int
pattern210 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      return pattern208 (x3, E_V16QImode); /* [-1, 0] */

    case E_V8HImode:
      if (pattern209 (x3, E_V8QImode, E_V8HImode) != 0)
        return -1;
      return 1;

    case E_V4SImode:
      if (pattern209 (x3, E_V4QImode, E_V4SImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern211 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], i1))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], E_V4SImode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!immediate_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern212 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i2)
      || GET_MODE (x1) != i2
      || !mve_memory_operand (operands[1], i2)
      || !vpr_register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern213 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i3)
      || GET_MODE (x1) != i3
      || !mve_memory_operand (operands[1], i1)
      || !vpr_register_operand (operands[2], i2))
    return -1;
  return 0;
}

static int
pattern214 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      return pattern212 (x3, E_V16BImode, E_V16QImode); /* [-1, 0] */

    case E_V8HImode:
      if (pattern213 (x3, E_V8QImode, E_V8BImode, E_V8HImode) != 0)
        return -1;
      return 1;

    case E_V4SImode:
      if (pattern213 (x3, E_V4QImode, E_V4BImode, E_V4SImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern215 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HImode:
      return pattern208 (x3, E_V8HImode); /* [-1, 0] */

    case E_V4SImode:
      if (pattern209 (x3, E_V4HImode, E_V4SImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern216 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HImode:
      return pattern212 (x3, E_V8BImode, E_V8HImode); /* [-1, 0] */

    case E_V4SImode:
      if (pattern213 (x3, E_V4HImode, E_V4BImode, E_V4SImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern217 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], i1))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!mve_memory_operand (operands[1], E_V4SImode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!vpr_register_operand (operands[2], E_V4BImode))
    return -1;
  return 0;
}

static int
pattern218 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_V2DImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], E_V2DImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], E_V2DImode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!immediate_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern219 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_V2DImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], E_V2DImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!memory_operand (operands[1], E_V2DImode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!s_register_operand (operands[2], E_V2DImode))
    return -1;
  return 0;
}

static int
pattern220 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_V8HFmode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], E_V8HFmode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!memory_operand (operands[1], E_V8HImode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!s_register_operand (operands[2], E_V8HImode))
    return -1;
  return 0;
}

static int
pattern221 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], i1))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!memory_operand (operands[1], E_V4SImode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!s_register_operand (operands[2], E_V4SImode))
    return -1;
  return 0;
}

static int
pattern222 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XVECEXP (x2, 0, 1);
  if (GET_CODE (x3) != UNSPEC
      || XVECLEN (x3, 0) != 1
      || XINT (x3, 1) != 327)
    return -1;
  x4 = XVECEXP (x3, 0, 0);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x5 = XEXP (x1, 0);
  operands[0] = x5;
  if (!s_register_operand (operands[0], i1))
    return -1;
  x6 = XVECEXP (x2, 0, 0);
  operands[1] = x6;
  if (!mve_struct_operand (operands[1], i1))
    return -1;
  switch (GET_MODE (x3))
    {
    case E_V16QImode:
      return 0;

    case E_V8HImode:
      return 1;

    case E_V4SImode:
      return 2;

    case E_V8HFmode:
      return 3;

    case E_V4SFmode:
      return 4;

    default:
      return -1;
    }
}

static int
pattern223 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_DImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!arm_low_register_operand (operands[0], E_DImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!arm_low_register_operand (operands[1], E_DImode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!register_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern224 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!arm_general_register_operand (operands[0], E_SImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!arm_general_register_operand (operands[1], E_SImode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!register_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern225 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_DImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!arm_low_register_operand (operands[0], E_DImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!arm_low_register_operand (operands[1], E_DImode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!immediate_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern226 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!arm_general_register_operand (operands[0], E_SImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!arm_general_register_operand (operands[1], i1))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!immediate_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern227 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  if (!const_int_coproc_operand (operands[1], E_SImode))
    return -1;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  x7 = XVECEXP (x3, 0, 3);
  operands[4] = x7;
  switch (GET_CODE (operands[3]))
    {
    case REG:
    case SUBREG:
      switch (GET_MODE (operands[0]))
        {
        case E_SImode:
          return 0;

        case E_DImode:
          return 1;

        case E_V16QImode:
          return 2;

        default:
          return -1;
        }

    case CONST_INT:
      if (!const_int_mve_cde1_operand (operands[3], E_SImode)
          || !register_operand (operands[0], E_V16QImode)
          || GET_MODE (x3) != E_V16QImode
          || !register_operand (operands[2], E_V16QImode)
          || !vpr_register_operand (operands[4], E_V16BImode))
        return -1;
      return 3;

    default:
      return -1;
    }
}

static int
pattern228 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  x7 = XVECEXP (x3, 0, 3);
  operands[4] = x7;
  if (!immediate_operand (operands[4], E_SImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HImode:
      return pattern71 (x3, E_V4HImode, E_V8HImode); /* [-1, 0] */

    case E_V4SImode:
      if (pattern71 (x3, E_V2SImode, E_V4SImode) != 0)
        return -1;
      return 1;

    case E_V4HImode:
      if (pattern33 (x3, E_V4HImode) != 0)
        return -1;
      return 2;

    case E_V2SImode:
      if (pattern33 (x3, E_V2SImode) != 0)
        return -1;
      return 3;

    default:
      return -1;
    }
}

static int
pattern229 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  x7 = XVECEXP (x3, 0, 3);
  operands[4] = x7;
  if (!immediate_operand (operands[4], E_SImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_V4HImode:
      return pattern33 (x3, E_V4HImode); /* [-1, 0] */

    case E_V2SImode:
      if (pattern33 (x3, E_V2SImode) != 0)
        return -1;
      return 1;

    case E_V2SFmode:
      if (pattern33 (x3, E_V2SFmode) != 0)
        return -1;
      return 2;

    case E_V8HImode:
      if (pattern71 (x3, E_V4HImode, E_V8HImode) != 0)
        return -1;
      return 3;

    case E_V4SImode:
      if (pattern71 (x3, E_V2SImode, E_V4SImode) != 0)
        return -1;
      return 4;

    case E_V4SFmode:
      if (pattern71 (x3, E_V2SFmode, E_V4SFmode) != 0)
        return -1;
      return 5;

    default:
      return -1;
    }
}

static int
pattern230 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  x7 = XVECEXP (x3, 0, 3);
  operands[4] = x7;
  if (!immediate_operand (operands[4], E_SImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_V4SImode:
      return pattern35 (x3, E_V4HImode, E_V4SImode); /* [-1, 0] */

    case E_V2DImode:
      if (pattern35 (x3, E_V2SImode, E_V2DImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern231 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XVECEXP (x2, 0, 3);
  if (GET_CODE (x3) != UNSPEC
      || XVECLEN (x3, 0) != 1
      || XINT (x3, 1) != 327)
    return -1;
  x4 = XVECEXP (x3, 0, 0);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x5 = XEXP (x1, 0);
  operands[0] = x5;
  x6 = XVECEXP (x2, 0, 0);
  operands[1] = x6;
  x7 = XVECEXP (x2, 0, 1);
  operands[2] = x7;
  x8 = XVECEXP (x2, 0, 2);
  operands[3] = x8;
  if (!immediate_operand (operands[3], E_SImode))
    return -1;
  return 0;
}

static int
pattern232 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i3)
      || GET_MODE (x1) != i3
      || !s_register_operand (operands[1], i3)
      || !s_register_operand (operands[2], i2)
      || !mve_imm_16 (operands[3], E_SImode)
      || !vpr_register_operand (operands[4], i1))
    return -1;
  return 0;
}

static int
pattern233 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  x7 = XVECEXP (x3, 0, 3);
  operands[4] = x7;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HImode:
      return pattern232 (x3, E_V8BImode, E_V8HFmode, E_V8HImode); /* [-1, 0] */

    case E_V4SImode:
      if (!s_register_operand (operands[0], E_V4SImode)
          || GET_MODE (x3) != E_V4SImode
          || !s_register_operand (operands[1], E_V4SImode)
          || !s_register_operand (operands[2], E_V4SFmode)
          || !mve_imm_32 (operands[3], E_SImode)
          || !vpr_register_operand (operands[4], E_V4BImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern234 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x2, 0, 2);
  operands[3] = x6;
  x7 = XVECEXP (x2, 0, 3);
  operands[4] = x7;
  switch (GET_MODE (operands[2]))
    {
    case E_V16QImode:
      if (!s_register_operand (operands[2], E_V16QImode)
          || !s_register_operand (operands[3], E_V16QImode)
          || !vpr_register_operand (operands[4], E_V16BImode))
        return -1;
      return 0;

    case E_V8HImode:
      if (!s_register_operand (operands[2], E_V8HImode)
          || !s_register_operand (operands[3], E_V8HImode)
          || !vpr_register_operand (operands[4], E_V8BImode))
        return -1;
      return 1;

    case E_V4SImode:
      if (!s_register_operand (operands[2], E_V4SImode)
          || !s_register_operand (operands[3], E_V4SImode)
          || !vpr_register_operand (operands[4], E_V4BImode))
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern235 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  x7 = XVECEXP (x3, 0, 3);
  operands[4] = x7;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      if (!s_register_operand (operands[0], E_V16QImode)
          || GET_MODE (x3) != E_V16QImode
          || !s_register_operand (operands[1], E_V16QImode)
          || !s_register_operand (operands[2], E_V16QImode)
          || !mve_imm_7 (operands[3], E_SImode)
          || !vpr_register_operand (operands[4], E_V16BImode))
        return -1;
      return 0;

    case E_V8HImode:
      if (!s_register_operand (operands[0], E_V8HImode)
          || GET_MODE (x3) != E_V8HImode
          || !s_register_operand (operands[1], E_V8HImode)
          || !s_register_operand (operands[2], E_V8HImode)
          || !mve_imm_15 (operands[3], E_SImode)
          || !vpr_register_operand (operands[4], E_V8BImode))
        return -1;
      return 1;

    case E_V4SImode:
      if (!s_register_operand (operands[0], E_V4SImode)
          || GET_MODE (x3) != E_V4SImode
          || !s_register_operand (operands[1], E_V4SImode)
          || !s_register_operand (operands[2], E_V4SImode)
          || !mve_imm_31 (operands[3], E_SImode)
          || !vpr_register_operand (operands[4], E_V4BImode))
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern236 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i2)
      || GET_MODE (x1) != i2
      || !s_register_operand (operands[1], i2)
      || !s_register_operand (operands[2], i2)
      || !s_register_operand (operands[3], i2)
      || !vpr_register_operand (operands[4], i1))
    return -1;
  return 0;
}

static int
pattern237 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  x7 = XVECEXP (x3, 0, 3);
  operands[4] = x7;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      return pattern236 (x3, E_V16BImode, E_V16QImode); /* [-1, 0] */

    case E_V8HImode:
      if (pattern236 (x3, E_V8BImode, E_V8HImode) != 0)
        return -1;
      return 1;

    case E_V4SImode:
      if (pattern236 (x3, E_V4BImode, E_V4SImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern238 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], E_V16QImode)
      || GET_MODE (x1) != E_V16QImode
      || !s_register_operand (operands[1], E_V16QImode)
      || !s_register_operand (operands[2], i2)
      || !mve_imm_8 (operands[3], E_SImode)
      || !vpr_register_operand (operands[4], i1))
    return -1;
  return 0;
}

static int
pattern239 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1
      || !s_register_operand (operands[1], i1)
      || !s_register_operand (operands[2], E_V4SImode)
      || !mve_imm_32 (operands[3], E_SImode)
      || !vpr_register_operand (operands[4], E_V4BImode))
    return -1;
  return 0;
}

static int
pattern240 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  x7 = XVECEXP (x3, 0, 3);
  operands[4] = x7;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      return pattern238 (x3, E_V16BImode, E_V16QImode); /* [-1, 0] */

    case E_V8HImode:
      if (!s_register_operand (operands[0], E_V8HImode)
          || GET_MODE (x3) != E_V8HImode
          || !s_register_operand (operands[1], E_V8HImode)
          || !s_register_operand (operands[2], E_V8HImode)
          || !mve_imm_16 (operands[3], E_SImode)
          || !vpr_register_operand (operands[4], E_V8BImode))
        return -1;
      return 1;

    case E_V4SImode:
      if (pattern239 (x3, E_V4SImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern241 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  x7 = XVECEXP (x3, 0, 3);
  operands[4] = x7;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HFmode:
      return pattern232 (x3, E_V8BImode, E_V8HImode, E_V8HFmode); /* [-1, 0] */

    case E_V4SFmode:
      if (pattern239 (x3, E_V4SFmode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern242 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i3)
      || GET_MODE (x1) != i3
      || !s_register_operand (operands[1], i3)
      || !s_register_operand (operands[2], i3)
      || !s_register_operand (operands[3], i2)
      || !vpr_register_operand (operands[4], i1))
    return -1;
  return 0;
}

static int
pattern243 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  x7 = XVECEXP (x3, 0, 3);
  operands[4] = x7;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      return pattern242 (x3, E_V16BImode, E_QImode, E_V16QImode); /* [-1, 0] */

    case E_V8HImode:
      if (pattern242 (x3, E_V8BImode, E_HImode, E_V8HImode) != 0)
        return -1;
      return 1;

    case E_V4SImode:
      if (pattern242 (x3, E_V4BImode, E_SImode, E_V4SImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern244 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i2)
      || GET_MODE (x1) != i2
      || !s_register_operand (operands[1], i2)
      || !s_register_operand (operands[2], i2)
      || !vpr_register_operand (operands[4], i1))
    return -1;
  return 0;
}

static int
pattern245 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 3);
  operands[4] = x2;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      return pattern244 (x1, E_V16BImode, E_V16QImode); /* [-1, 0] */

    case E_V8HImode:
      if (pattern244 (x1, E_V8BImode, E_V8HImode) != 0)
        return -1;
      return 1;

    case E_V4SImode:
      if (pattern244 (x1, E_V4BImode, E_V4SImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern246 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  if (!s_register_operand (operands[3], E_SImode))
    return -1;
  return pattern245 (x3); /* [-1, 2] */
}

static int
pattern247 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i3)
      || GET_MODE (x1) != i3
      || !s_register_operand (operands[1], i3)
      || !s_register_operand (operands[2], i2)
      || !s_register_operand (operands[3], i2)
      || !vpr_register_operand (operands[4], i1))
    return -1;
  return 0;
}

static int
pattern248 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  x7 = XVECEXP (x3, 0, 3);
  operands[4] = x7;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HImode:
      return pattern247 (x3, E_V16BImode, E_V16QImode, E_V8HImode); /* [-1, 0] */

    case E_V4SImode:
      if (pattern247 (x3, E_V8BImode, E_V8HImode, E_V4SImode) != 0)
        return -1;
      return 1;

    case E_V2DImode:
      if (pattern247 (x3, E_V4BImode, E_V4SImode, E_V2DImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern249 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  if (!immediate_operand (operands[3], E_SImode))
    return -1;
  return pattern245 (x3); /* [-1, 2] */
}

static int
pattern250 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  x7 = XVECEXP (x3, 0, 3);
  operands[4] = x7;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      return pattern238 (x3, E_V16BImode, E_V16QImode); /* [-1, 0] */

    case E_V8HImode:
      if (pattern232 (x3, E_V8BImode, E_V8HImode, E_V8HImode) != 0)
        return -1;
      return 1;

    case E_V4SImode:
      if (pattern239 (x3, E_V4SImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern251 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_DImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], E_DImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], E_DImode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x2, 0, 2);
  operands[3] = x6;
  x7 = XVECEXP (x2, 0, 3);
  operands[4] = x7;
  switch (GET_MODE (operands[2]))
    {
    case E_V8HImode:
      if (!s_register_operand (operands[2], E_V8HImode)
          || !s_register_operand (operands[3], E_V8HImode)
          || !vpr_register_operand (operands[4], E_V8BImode))
        return -1;
      return 0;

    case E_V4SImode:
      if (!s_register_operand (operands[2], E_V4SImode)
          || !s_register_operand (operands[3], E_V4SImode)
          || !vpr_register_operand (operands[4], E_V4BImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern252 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  x7 = XVECEXP (x3, 0, 3);
  operands[4] = x7;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      return pattern238 (x3, E_V8BImode, E_V8HImode); /* [-1, 0] */

    case E_V8HImode:
      if (pattern232 (x3, E_V4BImode, E_V4SImode, E_V8HImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern253 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_DImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], E_DImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], E_DImode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!s_register_operand (operands[2], E_V4SImode))
    return -1;
  x6 = XVECEXP (x2, 0, 2);
  operands[3] = x6;
  if (!s_register_operand (operands[3], E_V4SImode))
    return -1;
  x7 = XVECEXP (x2, 0, 3);
  operands[4] = x7;
  if (!vpr_register_operand (operands[4], E_V8BImode))
    return -1;
  return 0;
}

static int
pattern254 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i3)
      || GET_MODE (x1) != i3
      || !s_register_operand (operands[1], i3)
      || !s_register_operand (operands[2], i2)
      || !vpr_register_operand (operands[4], i1))
    return -1;
  return 0;
}

static int
pattern255 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  if (!immediate_operand (operands[3], E_SImode))
    return -1;
  x7 = XVECEXP (x3, 0, 3);
  operands[4] = x7;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HImode:
      return pattern254 (x3, E_V16BImode, E_V16QImode, E_V8HImode); /* [-1, 0] */

    case E_V4SImode:
      if (pattern254 (x3, E_V8BImode, E_V8HImode, E_V4SImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern256 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  x7 = XVECEXP (x3, 0, 3);
  operands[4] = x7;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HImode:
      return pattern247 (x3, E_V16BImode, E_V16QImode, E_V8HImode); /* [-1, 0] */

    case E_V4SImode:
      if (pattern247 (x3, E_V8BImode, E_V8HImode, E_V4SImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern257 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3, machine_mode i4)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i4)
      || GET_MODE (x1) != i4
      || !s_register_operand (operands[1], i4)
      || !s_register_operand (operands[2], i3)
      || !s_register_operand (operands[3], i2)
      || !vpr_register_operand (operands[4], i1))
    return -1;
  return 0;
}

static int
pattern258 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  x7 = XVECEXP (x3, 0, 3);
  operands[4] = x7;
  switch (GET_MODE (operands[0]))
    {
    case E_V4SImode:
      return pattern257 (x3, E_V8BImode, E_HImode, E_V8HImode, E_V4SImode); /* [-1, 0] */

    case E_V2DImode:
      if (pattern257 (x3, E_V4BImode, E_SImode, E_V4SImode, E_V2DImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern259 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  x7 = XVECEXP (x3, 0, 3);
  operands[4] = x7;
  switch (GET_MODE (operands[0]))
    {
    case E_V4SImode:
      return pattern247 (x3, E_V8BImode, E_V8HImode, E_V4SImode); /* [-1, 0] */

    case E_V2DImode:
      if (pattern247 (x3, E_V4BImode, E_V4SImode, E_V2DImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern260 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  x7 = XVECEXP (x3, 0, 3);
  operands[4] = x7;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HFmode:
      return pattern236 (x3, E_V8BImode, E_V8HFmode); /* [-1, 0] */

    case E_V4SFmode:
      if (pattern236 (x3, E_V4BImode, E_V4SFmode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern261 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  x7 = XVECEXP (x3, 0, 3);
  operands[4] = x7;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HFmode:
      return pattern242 (x3, E_V8BImode, E_HFmode, E_V8HFmode); /* [-1, 0] */

    case E_V4SFmode:
      if (pattern242 (x3, E_V4BImode, E_SFmode, E_V4SFmode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern262 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_BLKmode)
    return -1;
  x3 = XEXP (x1, 0);
  if (GET_CODE (x3) != MEM
      || GET_MODE (x3) != E_BLKmode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != SCRATCH)
    return -1;
  x5 = XVECEXP (x2, 0, 0);
  operands[0] = x5;
  if (!register_operand (operands[0], E_SImode))
    return -1;
  x6 = XVECEXP (x2, 0, 1);
  operands[1] = x6;
  x7 = XVECEXP (x2, 0, 2);
  operands[2] = x7;
  x8 = XVECEXP (x2, 0, 3);
  operands[3] = x8;
  switch (GET_MODE (operands[1]))
    {
    case E_V16QImode:
      if (!s_register_operand (operands[1], E_V16QImode)
          || !s_register_operand (operands[2], E_V16QImode)
          || !vpr_register_operand (operands[3], E_V16BImode))
        return -1;
      return 0;

    case E_V8HImode:
      if (!s_register_operand (operands[1], E_V8HImode)
          || !s_register_operand (operands[2], E_V8HImode)
          || !vpr_register_operand (operands[3], E_V8BImode))
        return -1;
      return 1;

    case E_V4SImode:
      if (!s_register_operand (operands[1], E_V4SImode)
          || !s_register_operand (operands[2], E_V4SImode)
          || !vpr_register_operand (operands[3], E_V4BImode))
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern263 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_BLKmode)
    return -1;
  x3 = XEXP (x1, 0);
  if (GET_CODE (x3) != MEM
      || GET_MODE (x3) != E_BLKmode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != SCRATCH)
    return -1;
  x5 = XVECEXP (x2, 0, 0);
  operands[0] = x5;
  if (!s_register_operand (operands[0], E_V4SImode))
    return -1;
  x6 = XVECEXP (x2, 0, 1);
  operands[1] = x6;
  if (!immediate_operand (operands[1], E_SImode))
    return -1;
  x7 = XVECEXP (x2, 0, 2);
  operands[2] = x7;
  if (!s_register_operand (operands[2], i1))
    return -1;
  x8 = XVECEXP (x2, 0, 3);
  operands[3] = x8;
  if (!vpr_register_operand (operands[3], E_V4BImode))
    return -1;
  return 0;
}

static int
pattern264 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_BLKmode)
    return -1;
  x3 = XEXP (x1, 0);
  if (GET_CODE (x3) != MEM
      || GET_MODE (x3) != E_BLKmode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != SCRATCH)
    return -1;
  x5 = XVECEXP (x2, 0, 0);
  operands[0] = x5;
  if (!register_operand (operands[0], E_SImode))
    return -1;
  x6 = XVECEXP (x2, 0, 1);
  operands[1] = x6;
  x7 = XVECEXP (x2, 0, 2);
  operands[2] = x7;
  x8 = XVECEXP (x2, 0, 3);
  operands[3] = x8;
  switch (GET_MODE (operands[1]))
    {
    case E_V8HImode:
      if (!s_register_operand (operands[1], E_V8HImode)
          || !s_register_operand (operands[2], E_V8HImode)
          || !vpr_register_operand (operands[3], E_V8BImode))
        return -1;
      return 0;

    case E_V4SImode:
      if (!s_register_operand (operands[1], E_V4SImode)
          || !s_register_operand (operands[2], E_V4SImode)
          || !vpr_register_operand (operands[3], E_V4BImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern265 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_BLKmode)
    return -1;
  x3 = XEXP (x1, 0);
  if (GET_CODE (x3) != MEM
      || GET_MODE (x3) != E_BLKmode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != SCRATCH)
    return -1;
  x5 = XVECEXP (x2, 0, 0);
  operands[0] = x5;
  if (!s_register_operand (operands[0], E_V2DImode))
    return -1;
  x6 = XVECEXP (x2, 0, 1);
  operands[1] = x6;
  if (!mve_vldrd_immediate (operands[1], E_SImode))
    return -1;
  x7 = XVECEXP (x2, 0, 2);
  operands[2] = x7;
  if (!s_register_operand (operands[2], E_V2DImode))
    return -1;
  x8 = XVECEXP (x2, 0, 3);
  operands[3] = x8;
  if (!vpr_register_operand (operands[3], E_V2QImode))
    return -1;
  return 0;
}

static int
pattern266 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_BLKmode)
    return -1;
  x3 = XEXP (x1, 0);
  if (GET_CODE (x3) != MEM
      || GET_MODE (x3) != E_BLKmode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != SCRATCH)
    return -1;
  x5 = XVECEXP (x2, 0, 0);
  operands[0] = x5;
  if (!register_operand (operands[0], E_SImode))
    return -1;
  x6 = XVECEXP (x2, 0, 1);
  operands[1] = x6;
  if (!s_register_operand (operands[1], E_V2DImode))
    return -1;
  x7 = XVECEXP (x2, 0, 2);
  operands[2] = x7;
  if (!s_register_operand (operands[2], E_V2DImode))
    return -1;
  x8 = XVECEXP (x2, 0, 3);
  operands[3] = x8;
  if (!vpr_register_operand (operands[3], E_V2QImode))
    return -1;
  return 0;
}

static int
pattern267 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_BLKmode)
    return -1;
  x3 = XEXP (x1, 0);
  if (GET_CODE (x3) != MEM
      || GET_MODE (x3) != E_BLKmode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != SCRATCH)
    return -1;
  x5 = XVECEXP (x2, 0, 0);
  operands[0] = x5;
  if (!register_operand (operands[0], E_SImode))
    return -1;
  x6 = XVECEXP (x2, 0, 1);
  operands[1] = x6;
  if (!s_register_operand (operands[1], E_V8HImode))
    return -1;
  x7 = XVECEXP (x2, 0, 2);
  operands[2] = x7;
  if (!s_register_operand (operands[2], E_V8HFmode))
    return -1;
  x8 = XVECEXP (x2, 0, 3);
  operands[3] = x8;
  if (!vpr_register_operand (operands[3], E_V8BImode))
    return -1;
  return 0;
}

static int
pattern268 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_BLKmode)
    return -1;
  x3 = XEXP (x1, 0);
  if (GET_CODE (x3) != MEM
      || GET_MODE (x3) != E_BLKmode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != SCRATCH)
    return -1;
  x5 = XVECEXP (x2, 0, 0);
  operands[0] = x5;
  if (!register_operand (operands[0], E_SImode))
    return -1;
  x6 = XVECEXP (x2, 0, 1);
  operands[1] = x6;
  if (!s_register_operand (operands[1], E_V4SImode))
    return -1;
  x7 = XVECEXP (x2, 0, 2);
  operands[2] = x7;
  if (!s_register_operand (operands[2], i1))
    return -1;
  x8 = XVECEXP (x2, 0, 3);
  operands[3] = x8;
  if (!vpr_register_operand (operands[3], E_V4BImode))
    return -1;
  return 0;
}

static int
pattern269 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vpr_register_operand (operands[0], i2)
      || GET_MODE (x1) != i2
      || !s_register_operand (operands[1], i1)
      || !s_register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern270 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!vpr_register_operand (operands[0], i3)
      || GET_MODE (x1) != i3
      || !s_register_operand (operands[1], i2))
    return -1;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != i2
      || !s_register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern271 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[1] = x2;
  x3 = XEXP (x1, 1);
  switch (GET_CODE (x3))
    {
    case REG:
    case SUBREG:
      operands[2] = x3;
      switch (GET_MODE (operands[0]))
        {
        case E_V16BImode:
          return pattern269 (x1, E_V16QImode, E_V16BImode); /* [-1, 0] */

        case E_V8BImode:
          if (!vpr_register_operand (operands[0], E_V8BImode)
              || GET_MODE (x1) != E_V8BImode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case E_V8HImode:
              if (!s_register_operand (operands[1], E_V8HImode)
                  || !s_register_operand (operands[2], E_V8HImode))
                return -1;
              return 1;

            case E_V8HFmode:
              if (!s_register_operand (operands[1], E_V8HFmode)
                  || !s_register_operand (operands[2], E_V8HFmode))
                return -1;
              return 2;

            default:
              return -1;
            }

        case E_V4BImode:
          if (!vpr_register_operand (operands[0], E_V4BImode)
              || GET_MODE (x1) != E_V4BImode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case E_V4SImode:
              if (!s_register_operand (operands[1], E_V4SImode)
                  || !s_register_operand (operands[2], E_V4SImode))
                return -1;
              return 3;

            case E_V4SFmode:
              if (!s_register_operand (operands[1], E_V4SFmode)
                  || !s_register_operand (operands[2], E_V4SFmode))
                return -1;
              return 4;

            default:
              return -1;
            }

        default:
          return -1;
        }

    case VEC_DUPLICATE:
      x4 = XEXP (x3, 0);
      operands[2] = x4;
      switch (GET_MODE (operands[0]))
        {
        case E_V16BImode:
          if (pattern270 (x1, E_QImode, E_V16QImode, E_V16BImode) != 0)
            return -1;
          return 5;

        case E_V8BImode:
          if (!vpr_register_operand (operands[0], E_V8BImode)
              || GET_MODE (x1) != E_V8BImode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case E_V8HImode:
              if (!s_register_operand (operands[1], E_V8HImode)
                  || GET_MODE (x3) != E_V8HImode
                  || !s_register_operand (operands[2], E_HImode))
                return -1;
              return 6;

            case E_V8HFmode:
              if (!s_register_operand (operands[1], E_V8HFmode)
                  || GET_MODE (x3) != E_V8HFmode
                  || !s_register_operand (operands[2], E_HFmode))
                return -1;
              return 7;

            default:
              return -1;
            }

        case E_V4BImode:
          if (!vpr_register_operand (operands[0], E_V4BImode)
              || GET_MODE (x1) != E_V4BImode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case E_V4SImode:
              if (!s_register_operand (operands[1], E_V4SImode)
                  || GET_MODE (x3) != E_V4SImode
                  || !s_register_operand (operands[2], E_SImode))
                return -1;
              return 8;

            case E_V4SFmode:
              if (!s_register_operand (operands[1], E_V4SFmode)
                  || GET_MODE (x3) != E_V4SFmode
                  || !s_register_operand (operands[2], E_SFmode))
                return -1;
              return 9;

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern272 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[1] = x2;
  x3 = XEXP (x1, 1);
  switch (GET_CODE (x3))
    {
    case REG:
    case SUBREG:
      operands[2] = x3;
      switch (GET_MODE (operands[0]))
        {
        case E_V16BImode:
          return pattern269 (x1, E_V16QImode, E_V16BImode); /* [-1, 0] */

        case E_V8BImode:
          if (pattern269 (x1, E_V8HImode, E_V8BImode) != 0)
            return -1;
          return 1;

        case E_V4BImode:
          if (pattern269 (x1, E_V4SImode, E_V4BImode) != 0)
            return -1;
          return 2;

        default:
          return -1;
        }

    case VEC_DUPLICATE:
      x4 = XEXP (x3, 0);
      operands[2] = x4;
      switch (GET_MODE (operands[0]))
        {
        case E_V16BImode:
          if (pattern270 (x1, E_QImode, E_V16QImode, E_V16BImode) != 0)
            return -1;
          return 3;

        case E_V8BImode:
          if (pattern270 (x1, E_HImode, E_V8HImode, E_V8BImode) != 0)
            return -1;
          return 4;

        case E_V4BImode:
          if (pattern270 (x1, E_SImode, E_V4SImode, E_V4BImode) != 0)
            return -1;
          return 5;

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern273 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !s_register_operand (operands[1], i2))
    return -1;
  x3 = XEXP (x1, 1);
  if (GET_MODE (x3) != i1)
    return -1;
  return 0;
}

static int
pattern274 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 1);
  x4 = XVECEXP (x3, 0, 0);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x5 = XVECEXP (x3, 0, 1);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x6 = XVECEXP (x3, 0, 2);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
    return -1;
  x7 = XVECEXP (x3, 0, 3);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
    return -1;
  x8 = XEXP (x1, 1);
  x9 = XEXP (x8, 1);
  if (XVECLEN (x9, 0) != 4)
    return -1;
  x10 = XVECEXP (x9, 0, 0);
  if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
    return -1;
  x11 = XVECEXP (x9, 0, 1);
  if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
    return -1;
  x12 = XVECEXP (x9, 0, 2);
  if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
    return -1;
  x13 = XVECEXP (x9, 0, 3);
  if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
      || pattern273 (x1, E_V4HImode, E_V8HImode) != 0)
    return -1;
  return 0;
}

static int
pattern275 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 1);
  x4 = XVECEXP (x3, 0, 0);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x5 = XVECEXP (x3, 0, 1);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x6 = XVECEXP (x3, 0, 2);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
    return -1;
  x7 = XVECEXP (x3, 0, 3);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
    return -1;
  x8 = XVECEXP (x3, 0, 4);
  if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
    return -1;
  x9 = XVECEXP (x3, 0, 5);
  if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
    return -1;
  x10 = XVECEXP (x3, 0, 6);
  if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
    return -1;
  x11 = XVECEXP (x3, 0, 7);
  if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
    return -1;
  x12 = XEXP (x1, 1);
  x13 = XEXP (x12, 1);
  if (XVECLEN (x13, 0) != 8)
    return -1;
  x14 = XVECEXP (x13, 0, 0);
  if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x15 = XVECEXP (x13, 0, 1);
  if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 9])
    return -1;
  x16 = XVECEXP (x13, 0, 2);
  if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
    return -1;
  x17 = XVECEXP (x13, 0, 3);
  if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 11])
    return -1;
  x18 = XVECEXP (x13, 0, 4);
  if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
    return -1;
  x19 = XVECEXP (x13, 0, 5);
  if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 13])
    return -1;
  x20 = XVECEXP (x13, 0, 6);
  if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 14])
    return -1;
  x21 = XVECEXP (x13, 0, 7);
  if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 15]
      || pattern273 (x1, E_V8QImode, E_V16QImode) != 0)
    return -1;
  return 0;
}

static int
pattern276 (rtx x1, int *pnum_clobbers)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  switch (GET_CODE (x2))
    {
    case REG:
    case SUBREG:
      operands[1] = x2;
      x3 = XEXP (x1, 1);
      operands[2] = x3;
      switch (GET_MODE (operands[0]))
        {
        case E_SImode:
          if (pnum_clobbers == NULL
              || !s_register_operand (operands[0], E_SImode)
              || GET_MODE (x1) != E_SImode
              || !s_register_operand (operands[1], E_SImode)
              || !arm_rhs_operand (operands[2], E_SImode))
            return -1;
          return 0;

        case E_V2SImode:
          if (GET_MODE (x1) != E_V2SImode)
            return -1;
          return 1;

        case E_V4HImode:
          if (GET_MODE (x1) != E_V4HImode)
            return -1;
          return 2;

        case E_V8QImode:
          if (GET_MODE (x1) != E_V8QImode)
            return -1;
          return 3;

        case E_V16QImode:
          if (pattern1 (x1, E_V16QImode) != 0)
            return -1;
          return 4;

        case E_V8HImode:
          if (pattern1 (x1, E_V8HImode) != 0)
            return -1;
          return 5;

        case E_V4SImode:
          if (pattern1 (x1, E_V4SImode) != 0)
            return -1;
          return 6;

        default:
          return -1;
        }

    case VEC_SELECT:
      x4 = XEXP (x2, 1);
      if (GET_CODE (x4) != PARALLEL)
        return -1;
      x3 = XEXP (x1, 1);
      if (GET_CODE (x3) != VEC_SELECT)
        return -1;
      x5 = XEXP (x3, 1);
      if (GET_CODE (x5) != PARALLEL)
        return -1;
      x6 = XEXP (x2, 0);
      operands[1] = x6;
      x7 = XEXP (x3, 0);
      if (!rtx_equal_p (x7, operands[1]))
        return -1;
      switch (XVECLEN (x4, 0))
        {
        case 2:
          x8 = XVECEXP (x4, 0, 0);
          if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x9 = XVECEXP (x4, 0, 1);
          if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
              || XVECLEN (x5, 0) != 2)
            return -1;
          x10 = XVECEXP (x5, 0, 0);
          if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
            return -1;
          x11 = XVECEXP (x5, 0, 1);
          if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 3]
              || pattern273 (x1, E_V2SImode, E_V4SImode) != 0)
            return -1;
          return 7;

        case 4:
          if (pattern274 (x1) != 0)
            return -1;
          return 8;

        case 8:
          if (pattern275 (x1) != 0)
            return -1;
          return 9;

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern277 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  switch (GET_MODE (operands[0]))
    {
    case E_SImode:
      if (!s_register_operand (operands[0], E_SImode)
          || GET_MODE (x3) != E_SImode
          || !mem_noofs_operand (operands[1], E_SImode))
        return -1;
      return 0;

    case E_DImode:
      if (!s_register_operand (operands[0], E_DImode)
          || GET_MODE (x3) != E_DImode
          || !mem_noofs_operand (operands[1], E_DImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern278 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V8QImode:
      return pattern169 (x3, E_V8QImode); /* [-1, 0] */

    case E_V4HImode:
      if (pattern169 (x3, E_V4HImode) != 0)
        return -1;
      return 1;

    case E_V2SImode:
      if (pattern169 (x3, E_V2SImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern279 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  if (XVECLEN (x2, 0) != 1
      || XINT (x2, 1) != 25
      || GET_MODE (x2) != E_HImode
      || !s_register_operand (operands[0], E_SImode)
      || GET_MODE (x1) != E_SImode)
    return -1;
  x3 = XVECEXP (x2, 0, 0);
  operands[1] = x3;
  if (!memory_operand (operands[1], E_HImode))
    return -1;
  return 0;
}

static int
pattern280 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !s_register_operand (operands[0], E_SImode)
      || GET_MODE (x1) != E_SImode)
    return -1;
  x3 = XEXP (x2, 0);
  operands[1] = x3;
  if (!s_register_operand (operands[1], i1))
    return -1;
  return 0;
}

static int
pattern281 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i3)
      || GET_MODE (x1) != i3)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i2
      || !register_operand (operands[1], i2)
      || !const_neon_scalar_shift_amount_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern282 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  operands[1] = x3;
  x4 = XEXP (x2, 1);
  operands[2] = x4;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HImode:
      return pattern281 (x1, E_QImode, E_V8QImode, E_V8HImode); /* [-1, 0] */

    case E_V4SImode:
      if (pattern281 (x1, E_HImode, E_V4HImode, E_V4SImode) != 0)
        return -1;
      return 1;

    case E_V2DImode:
      if (pattern281 (x1, E_SImode, E_V2SImode, E_V2DImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern283 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  if (GET_MODE (x1) != E_SImode)
    return -1;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x3 = XEXP (x1, 1);
  operands[1] = x3;
  if (!const_int_M_operand (operands[1], E_SImode))
    return -1;
  x4 = XEXP (x1, 2);
  operands[2] = x4;
  if (!const_int_M_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern284 (rtx x1, int i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (GET_MODE (x1) != E_SImode)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != UNSPEC
      || XVECLEN (x2, 0) != 3
      || XINT (x2, 1) != 2
      || GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XVECEXP (x2, 0, 1);
  if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
    return -1;
  return 0;
}

static int
pattern285 (rtx x1, rtx_code i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != E_V4HImode)
    return -1;
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != VEC_SELECT
      || GET_MODE (x3) != E_V4HImode)
    return -1;
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) != PARALLEL
      || XVECLEN (x4, 0) != 4)
    return -1;
  x5 = XVECEXP (x4, 0, 0);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x6 = XVECEXP (x4, 0, 1);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x7 = XVECEXP (x4, 0, 2);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
    return -1;
  x8 = XVECEXP (x4, 0, 3);
  if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
    return -1;
  x9 = XEXP (x1, 1);
  if (GET_CODE (x9) != i1
      || GET_MODE (x9) != E_V4HImode)
    return -1;
  x10 = XEXP (x9, 1);
  if (GET_CODE (x10) != VEC_SELECT
      || GET_MODE (x10) != E_V4HImode)
    return -1;
  x11 = XEXP (x10, 1);
  if (GET_CODE (x11) != PARALLEL
      || XVECLEN (x11, 0) != 4)
    return -1;
  x12 = XVECEXP (x11, 0, 0);
  if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x13 = XVECEXP (x11, 0, 1);
  if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x14 = XVECEXP (x11, 0, 2);
  if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
    return -1;
  x15 = XVECEXP (x11, 0, 3);
  if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
    return -1;
  x16 = XEXP (x1, 2);
  if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 10]
      || !register_operand (operands[0], E_V4HImode)
      || GET_MODE (x1) != E_V4HImode)
    return -1;
  x17 = XEXP (x2, 0);
  operands[1] = x17;
  if (!register_operand (operands[1], E_V4HImode))
    return -1;
  x18 = XEXP (x3, 0);
  operands[2] = x18;
  if (!register_operand (operands[2], E_V4HImode))
    return -1;
  x19 = XEXP (x9, 0);
  if (!rtx_equal_p (x19, operands[1]))
    return -1;
  x20 = XEXP (x10, 0);
  if (!rtx_equal_p (x20, operands[2]))
    return -1;
  return 0;
}

static int
pattern286 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], E_SImode)
      || GET_MODE (x1) != E_SImode)
    return -1;
  x2 = XEXP (x1, 0);
  switch (GET_MODE (x2))
    {
    case E_SFmode:
      if (!register_operand (operands[1], E_SFmode))
        return -1;
      return 0;

    case E_DFmode:
      if (!register_operand (operands[1], E_DFmode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern287 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i2)
      || GET_MODE (x1) != i2)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !register_operand (operands[1], i1))
    return -1;
  return 0;
}

static int
pattern288 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  if (XVECLEN (x2, 0) != 1)
    return -1;
  x3 = XVECEXP (x2, 0, 0);
  operands[1] = x3;
  switch (XINT (x2, 1))
    {
    case 33:
      return pattern286 (x1); /* [-1, 1] */

    case 34:
      res = pattern286 (x1);
      if (res >= 0)
        return res + 2; /* [2, 3] */
      return -1;

    case 37:
      res = pattern286 (x1);
      if (res >= 0)
        return res + 4; /* [4, 5] */
      return -1;

    case 348:
      switch (GET_MODE (operands[0]))
        {
        case E_V2SImode:
          if (pattern287 (x1, E_V2SFmode, E_V2SImode) != 0)
            return -1;
          return 6;

        case E_V4SImode:
          if (pattern287 (x1, E_V4SFmode, E_V4SImode) != 0)
            return -1;
          return 7;

        default:
          return -1;
        }

    case 349:
      switch (GET_MODE (operands[0]))
        {
        case E_V2SImode:
          if (pattern287 (x1, E_V2SFmode, E_V2SImode) != 0)
            return -1;
          return 8;

        case E_V4SImode:
          if (pattern287 (x1, E_V4SFmode, E_V4SImode) != 0)
            return -1;
          return 9;

        default:
          return -1;
        }

    case 351:
      switch (GET_MODE (operands[0]))
        {
        case E_V2SImode:
          if (pattern287 (x1, E_V2SFmode, E_V2SImode) != 0)
            return -1;
          return 10;

        case E_V4SImode:
          if (pattern287 (x1, E_V4SFmode, E_V4SImode) != 0)
            return -1;
          return 11;

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern289 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[1] = x2;
  switch (GET_MODE (operands[0]))
    {
    case E_V2SImode:
      if (!s_register_operand (operands[0], E_V2SImode)
          || GET_MODE (x1) != E_V2SImode
          || !s_register_operand (operands[1], E_V2SFmode))
        return -1;
      return 0;

    case E_V4SImode:
      if (!s_register_operand (operands[0], E_V4SImode)
          || GET_MODE (x1) != E_V4SImode
          || !s_register_operand (operands[1], E_V4SFmode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern290 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x4) != CLOBBER)
    return -1;
  x5 = XEXP (x4, 0);
  if (GET_CODE (x5) != REG
      || REGNO (x5) != 100
      || GET_MODE (x5) != E_CCmode)
    return -1;
  x6 = XEXP (x2, 0);
  operands[0] = x6;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x7 = XEXP (x3, 0);
  operands[1] = x7;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x8 = XEXP (x3, 1);
  operands[2] = x8;
  if (!arm_rhs_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern291 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x2) != CLOBBER)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != 100
      || GET_MODE (x3) != E_CCmode)
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 0);
  operands[0] = x5;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  return 0;
}

static int
pattern292 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  if (!memory_operand (operands[2], E_SImode))
    return -1;
  operands[0] = x1;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x2 = PATTERN (peep2_next_insn (1));
  if (GET_CODE (x2) != SET)
    return -1;
  x3 = XEXP (x2, 0);
  operands[1] = x3;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x4 = XEXP (x2, 1);
  operands[3] = x4;
  if (!memory_operand (operands[3], E_SImode))
    return -1;
  return 0;
}

static int
pattern293 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != CLOBBER)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != REG
      || REGNO (x2) != 100
      || GET_MODE (x2) != E_CCmode)
    return -1;
  return 0;
}

static int
pattern294 (rtx x1, rtx_code i1, machine_mode i2, unsigned int i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != i3
      || GET_MODE (x3) != i2)
    return -1;
  x4 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x4) != i1)
    return -1;
  return 0;
}

static int
pattern295 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x2) != CLOBBER)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != 100
      || GET_MODE (x3) != E_CCmode)
    return -1;
  x4 = XVECEXP (x1, 0, 3);
  if (GET_CODE (x4) != CLOBBER)
    return -1;
  return 0;
}

static int
pattern296 (rtx x1, int i1, int i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x2) != SET)
    return -1;
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != UNSPEC_VOLATILE
      || XVECLEN (x3, 0) != i2
      || XINT (x3, 1) != i1
      || pattern295 (x1) != 0)
    return -1;
  return 0;
}

static int
pattern297 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  if (!cc_register_operand (operands[0], i1))
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != i1)
    return -1;
  switch (GET_MODE (operands[2]))
    {
    case E_QImode:
      if (!mem_noofs_operand (operands[2], E_QImode))
        return -1;
      x4 = XVECEXP (x1, 0, 2);
      x5 = XEXP (x4, 1);
      if (GET_MODE (x5) != E_QImode
          || !s_register_operand (operands[4], E_QImode))
        return -1;
      return 0;

    case E_HImode:
      if (!mem_noofs_operand (operands[2], E_HImode))
        return -1;
      x4 = XVECEXP (x1, 0, 2);
      x5 = XEXP (x4, 1);
      if (GET_MODE (x5) != E_HImode
          || !s_register_operand (operands[4], E_HImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern298 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  if (!cc_register_operand (operands[0], i1))
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != i1)
    return -1;
  switch (GET_MODE (operands[1]))
    {
    case E_SImode:
      if (!s_register_operand (operands[1], E_SImode)
          || !mem_noofs_operand (operands[2], E_SImode))
        return -1;
      x4 = XVECEXP (x1, 0, 2);
      x5 = XEXP (x4, 1);
      if (GET_MODE (x5) != E_SImode
          || !arm_add_operand (operands[3], E_SImode)
          || !s_register_operand (operands[4], E_SImode))
        return -1;
      return 0;

    case E_DImode:
      if (!s_register_operand (operands[1], E_DImode)
          || !mem_noofs_operand (operands[2], E_DImode))
        return -1;
      x4 = XVECEXP (x1, 0, 2);
      x5 = XEXP (x4, 1);
      if (GET_MODE (x5) != E_DImode
          || !cmpdi_operand (operands[3], E_DImode)
          || !s_register_operand (operands[4], E_DImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern299 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 1);
  switch (GET_CODE (x3))
    {
    case ZERO_EXTEND:
      if (GET_MODE (x3) != E_SImode
          || !s_register_operand (operands[1], E_SImode))
        return -1;
      x4 = XEXP (x3, 0);
      operands[2] = x4;
      if (!arm_add_operand (operands[3], E_SImode))
        return -1;
      x5 = XVECEXP (x1, 0, 2);
      x6 = XEXP (x5, 0);
      if (!rtx_equal_p (x6, operands[2]))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case E_CC_Zmode:
          return pattern297 (x1, E_CC_Zmode); /* [-1, 1] */

        case E_SImode:
          res = pattern297 (x1, E_SImode);
          if (res >= 0)
            return res + 2; /* [2, 3] */
          return -1;

        default:
          return -1;
        }

    case MEM:
      operands[2] = x3;
      x5 = XVECEXP (x1, 0, 2);
      x6 = XEXP (x5, 0);
      if (!rtx_equal_p (x6, operands[2]))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case E_CC_Zmode:
          res = pattern298 (x1, E_CC_Zmode);
          if (res >= 0)
            return res + 4; /* [4, 5] */
          return -1;

        case E_SImode:
          res = pattern298 (x1, E_SImode);
          if (res >= 0)
            return res + 6; /* [6, 7] */
          return -1;

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern300 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!mem_noofs_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  if (GET_MODE (x2) != i1
      || !reg_or_int_operand (operands[1], i1)
      || !scratch_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern301 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  operands[1] = x3;
  x4 = XEXP (x2, 0);
  if (!rtx_equal_p (x4, operands[0]))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_QImode:
      return pattern300 (x1, E_QImode); /* [-1, 0] */

    case E_HImode:
      if (pattern300 (x1, E_HImode) != 0)
        return -1;
      return 1;

    case E_SImode:
      if (pattern300 (x1, E_SImode) != 0)
        return -1;
      return 2;

    case E_DImode:
      if (!mem_noofs_operand (operands[0], E_DImode)
          || GET_MODE (x1) != E_DImode
          || GET_MODE (x2) != E_DImode
          || !s_register_operand (operands[1], E_DImode)
          || !scratch_operand (operands[3], E_DImode))
        return -1;
      return 3;

    default:
      return -1;
    }
}

static int
pattern302 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (!mem_noofs_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != i1
      || !reg_or_int_operand (operands[1], i1)
      || !scratch_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern303 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 0);
  operands[0] = x3;
  x4 = XVECEXP (x1, 0, 3);
  x5 = XEXP (x4, 0);
  if (!scratch_operand (x5, E_SImode))
    return -1;
  x6 = XEXP (x2, 1);
  switch (XVECLEN (x6, 0))
    {
    case 1:
      if (XINT (x6, 1) != 17)
        return -1;
      x7 = XVECEXP (x6, 0, 0);
      if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x8 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x8) != SET)
        return -1;
      x9 = XVECEXP (x1, 0, 2);
      if (GET_CODE (x9) != SET)
        return -1;
      x10 = XEXP (x9, 1);
      if (GET_CODE (x10) != UNSPEC_VOLATILE
          || XVECLEN (x10, 0) != 5
          || XINT (x10, 1) != 17)
        return -1;
      x11 = XEXP (x8, 0);
      operands[1] = x11;
      x12 = XVECEXP (x10, 0, 0);
      operands[3] = x12;
      x13 = XVECEXP (x10, 0, 1);
      operands[4] = x13;
      x14 = XVECEXP (x10, 0, 2);
      operands[5] = x14;
      if (!const_int_operand (operands[5], E_SImode))
        return -1;
      x15 = XVECEXP (x10, 0, 3);
      operands[6] = x15;
      if (!const_int_operand (operands[6], E_SImode))
        return -1;
      x16 = XVECEXP (x10, 0, 4);
      operands[7] = x16;
      if (!const_int_operand (operands[7], E_SImode))
        return -1;
      operands[8] = x5;
      return pattern299 (x1); /* [-1, 7] */

    case 2:
      if (XINT (x6, 1) != 19)
        return -1;
      x8 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x8) != CLOBBER)
        return -1;
      x11 = XEXP (x8, 0);
      if (GET_CODE (x11) != REG
          || REGNO (x11) != 100
          || GET_MODE (x11) != E_CCmode)
        return -1;
      x9 = XVECEXP (x1, 0, 2);
      if (GET_CODE (x9) != CLOBBER)
        return -1;
      x17 = XVECEXP (x6, 0, 1);
      operands[2] = x17;
      if (!const_int_operand (operands[2], E_SImode))
        return -1;
      x18 = XEXP (x9, 0);
      operands[3] = x18;
      operands[4] = x5;
      x7 = XVECEXP (x6, 0, 0);
      switch (GET_CODE (x7))
        {
        case PLUS:
          res = pattern301 (x6);
          if (res >= 0)
            return res + 8; /* [8, 11] */
          return -1;

        case MINUS:
          res = pattern301 (x6);
          if (res >= 0)
            return res + 12; /* [12, 15] */
          return -1;

        case IOR:
          res = pattern301 (x6);
          if (res >= 0)
            return res + 16; /* [16, 19] */
          return -1;

        case XOR:
          res = pattern301 (x6);
          if (res >= 0)
            return res + 20; /* [20, 23] */
          return -1;

        case AND:
          res = pattern301 (x6);
          if (res >= 0)
            return res + 24; /* [24, 27] */
          return -1;

        case NOT:
          x19 = XEXP (x7, 0);
          if (GET_CODE (x19) != AND)
            return -1;
          x20 = XEXP (x19, 1);
          operands[1] = x20;
          x21 = XEXP (x19, 0);
          if (!rtx_equal_p (x21, operands[0]))
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case E_QImode:
              if (pattern302 (x6, E_QImode) != 0)
                return -1;
              return 28;

            case E_HImode:
              if (pattern302 (x6, E_HImode) != 0)
                return -1;
              return 29;

            case E_SImode:
              if (pattern302 (x6, E_SImode) != 0)
                return -1;
              return 30;

            case E_DImode:
              if (!mem_noofs_operand (operands[0], E_DImode)
                  || GET_MODE (x6) != E_DImode
                  || GET_MODE (x7) != E_DImode
                  || GET_MODE (x19) != E_DImode
                  || !s_register_operand (operands[1], E_DImode)
                  || !scratch_operand (operands[3], E_DImode))
                return -1;
              return 31;

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern304 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) != MEM
      || GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != PLUS
      || GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != MULT
      || GET_MODE (x4) != E_SImode)
    return -1;
  x5 = XEXP (x4, 1);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
    return -1;
  x6 = XEXP (x3, 1);
  if (GET_CODE (x6) != LABEL_REF
      || GET_MODE (x6) != E_SImode)
    return -1;
  x7 = XEXP (x1, 2);
  if (GET_CODE (x7) != LABEL_REF
      || GET_MODE (x7) != E_SImode)
    return -1;
  return 0;
}

static int
pattern305 (rtx x1, int i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XEXP (x2, 1);
  if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + i1]
      || !s_register_operand (operands[0], E_SImode)
      || GET_MODE (x1) != E_SImode)
    return -1;
  x4 = XEXP (x2, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  return 0;
}

static int
pattern306 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  operands[1] = x3;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x4 = XEXP (x1, 1);
  operands[2] = x4;
  if (!const_double_vcvt_power_of_two_reciprocal (operands[2], E_VOIDmode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_SFmode:
      if (!s_register_operand (operands[0], E_SFmode)
          || GET_MODE (x1) != E_SFmode
          || GET_MODE (x2) != E_SFmode)
        return -1;
      return 0;

    case E_DFmode:
      if (!s_register_operand (operands[0], E_DFmode)
          || GET_MODE (x1) != E_DFmode
          || GET_MODE (x2) != E_DFmode)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern307 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  operands[5] = x3;
  if (!arm_comparison_operator (operands[5], E_VOIDmode))
    return -1;
  x4 = XEXP (x1, 0);
  operands[0] = x4;
  if (!s_register_operand (operands[0], E_SImode)
      || GET_MODE (x2) != E_SImode)
    return -1;
  x5 = XEXP (x3, 0);
  operands[3] = x5;
  if (!s_register_operand (operands[3], E_SImode))
    return -1;
  x6 = XEXP (x3, 1);
  operands[4] = x6;
  if (!arm_add_operand (operands[4], E_SImode))
    return -1;
  x7 = XEXP (x2, 1);
  operands[1] = x7;
  if (!arm_rhs_operand (operands[1], E_SImode))
    return -1;
  x8 = XEXP (x2, 2);
  operands[2] = x8;
  if (!arm_rhs_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern308 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != E_SImode
      || !s_register_operand (operands[0], E_SImode)
      || GET_MODE (x1) != E_SImode)
    return -1;
  x3 = XEXP (x2, 0);
  operands[3] = x3;
  x4 = XEXP (x2, 1);
  operands[1] = x4;
  if (!const_int_operand (operands[1], E_SImode))
    return -1;
  x5 = XEXP (x1, 1);
  operands[2] = x5;
  if (!const_int_operand (operands[2], E_SImode))
    return -1;
  switch (GET_CODE (operands[3]))
    {
    case REG:
    case SUBREG:
      if (!s_register_operand (operands[3], E_SImode))
        return -1;
      return 0;

    case MULT:
    case ASHIFT:
    case ASHIFTRT:
      if (!sat_shift_operator (operands[3], E_SImode))
        return -1;
      x6 = XEXP (x3, 0);
      operands[4] = x6;
      if (!s_register_operand (operands[4], E_SImode))
        return -1;
      x7 = XEXP (x3, 1);
      operands[5] = x7;
      if (!const_int_operand (operands[5], E_SImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern309 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != PARALLEL)
    return -1;
  x4 = XEXP (x1, 1);
  if (GET_CODE (x4) != VEC_SELECT)
    return -1;
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != PARALLEL)
    return -1;
  x6 = XEXP (x2, 0);
  operands[1] = x6;
  x7 = XEXP (x4, 0);
  if (!rtx_equal_p (x7, operands[1]))
    return -1;
  switch (XVECLEN (x3, 0))
    {
    case 2:
      x8 = XVECEXP (x3, 0, 0);
      if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x9 = XVECEXP (x3, 0, 1);
      if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
          || XVECLEN (x5, 0) != 2)
        return -1;
      x10 = XVECEXP (x5, 0, 0);
      if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
        return -1;
      x11 = XVECEXP (x5, 0, 1);
      if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case E_V2SImode:
          return pattern273 (x1, E_V2SImode, E_V4SImode); /* [-1, 0] */

        case E_V2SFmode:
          if (pattern273 (x1, E_V2SFmode, E_V4SFmode) != 0)
            return -1;
          return 1;

        default:
          return -1;
        }

    case 4:
      if (pattern274 (x1) != 0)
        return -1;
      return 2;

    case 8:
      if (pattern275 (x1) != 0)
        return -1;
      return 3;

    default:
      return -1;
    }
}

static int
pattern310 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !s_register_operand (operands[1], i2)
      || !s_register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern311 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != i3
      || !s_register_operand (operands[1], i2)
      || !s_register_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern312 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  switch (GET_CODE (x3))
    {
    case REG:
    case SUBREG:
      operands[1] = x3;
      x4 = XEXP (x1, 1);
      operands[2] = x4;
      switch (GET_MODE (operands[0]))
        {
        case E_SImode:
          if (!s_register_operand (operands[0], E_SImode)
              || GET_MODE (x1) != E_SImode
              || GET_MODE (x2) != E_SImode
              || !s_register_operand (operands[2], E_SImode))
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case E_HImode:
              if (!s_register_operand (operands[1], E_HImode))
                return -1;
              return 0;

            case E_QImode:
              if (!s_register_operand (operands[1], E_QImode))
                return -1;
              return 1;

            default:
              return -1;
            }

        case E_V8HImode:
          if (pattern310 (x1, E_V8HImode, E_V8QImode) != 0)
            return -1;
          return 2;

        case E_V4SImode:
          if (pattern310 (x1, E_V4SImode, E_V4HImode) != 0)
            return -1;
          return 3;

        case E_V2DImode:
          if (pattern310 (x1, E_V2DImode, E_V2SImode) != 0)
            return -1;
          return 4;

        default:
          return -1;
        }

    case VEC_SELECT:
      x5 = XEXP (x3, 0);
      operands[1] = x5;
      x6 = XEXP (x3, 1);
      operands[2] = x6;
      x4 = XEXP (x1, 1);
      operands[3] = x4;
      switch (GET_MODE (operands[0]))
        {
        case E_V8HImode:
          if (pattern311 (x1, E_V8HImode, E_V16QImode, E_V8QImode) != 0)
            return -1;
          return 5;

        case E_V4SImode:
          if (pattern311 (x1, E_V4SImode, E_V8HImode, E_V4HImode) != 0)
            return -1;
          return 6;

        case E_V2DImode:
          if (pattern311 (x1, E_V2DImode, E_V4SImode, E_V2SImode) != 0)
            return -1;
          return 7;

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern313 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != E_SImode
      || !s_register_operand (operands[0], E_SImode)
      || GET_MODE (x1) != E_SImode)
    return -1;
  x3 = XEXP (x2, 0);
  operands[2] = x3;
  if (!s_register_operand (operands[2], E_SImode))
    return -1;
  x4 = XEXP (x2, 1);
  operands[3] = x4;
  if (!power_of_two_operand (operands[3], E_SImode))
    return -1;
  x5 = XEXP (x1, 1);
  operands[1] = x5;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  return 0;
}

static int
pattern314 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !s_register_operand (operands[1], i1)
      || !reg_or_zero_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern315 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  operands[1] = x3;
  x4 = XEXP (x2, 1);
  operands[2] = x4;
  switch (GET_MODE (operands[0]))
    {
    case E_V8QImode:
      return pattern314 (x1, E_V8QImode); /* [-1, 0] */

    case E_V16QImode:
      if (pattern314 (x1, E_V16QImode) != 0)
        return -1;
      return 1;

    case E_V4HImode:
      if (!s_register_operand (operands[0], E_V4HImode)
          || GET_MODE (x1) != E_V4HImode
          || GET_MODE (x2) != E_V4HImode)
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case E_V4HImode:
          if (!s_register_operand (operands[1], E_V4HImode)
              || !reg_or_zero_operand (operands[2], E_V4HImode))
            return -1;
          return 2;

        case E_V4HFmode:
          if (!s_register_operand (operands[1], E_V4HFmode)
              || !reg_or_zero_operand (operands[2], E_V4HFmode))
            return -1;
          return 3;

        default:
          return -1;
        }

    case E_V8HImode:
      if (!s_register_operand (operands[0], E_V8HImode)
          || GET_MODE (x1) != E_V8HImode
          || GET_MODE (x2) != E_V8HImode)
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case E_V8HImode:
          if (!s_register_operand (operands[1], E_V8HImode)
              || !reg_or_zero_operand (operands[2], E_V8HImode))
            return -1;
          return 4;

        case E_V8HFmode:
          if (!s_register_operand (operands[1], E_V8HFmode)
              || !reg_or_zero_operand (operands[2], E_V8HFmode))
            return -1;
          return 5;

        default:
          return -1;
        }

    case E_V2SImode:
      if (!s_register_operand (operands[0], E_V2SImode)
          || GET_MODE (x1) != E_V2SImode
          || GET_MODE (x2) != E_V2SImode)
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case E_V2SImode:
          if (!s_register_operand (operands[1], E_V2SImode)
              || !reg_or_zero_operand (operands[2], E_V2SImode))
            return -1;
          return 6;

        case E_V2SFmode:
          if (!s_register_operand (operands[1], E_V2SFmode)
              || !reg_or_zero_operand (operands[2], E_V2SFmode))
            return -1;
          return 7;

        default:
          return -1;
        }

    case E_V4SImode:
      if (!s_register_operand (operands[0], E_V4SImode)
          || GET_MODE (x1) != E_V4SImode
          || GET_MODE (x2) != E_V4SImode)
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case E_V4SImode:
          if (!s_register_operand (operands[1], E_V4SImode)
              || !reg_or_zero_operand (operands[2], E_V4SImode))
            return -1;
          return 8;

        case E_V4SFmode:
          if (!s_register_operand (operands[1], E_V4SFmode)
              || !reg_or_zero_operand (operands[2], E_V4SFmode))
            return -1;
          return 9;

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern316 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i2)
      || GET_MODE (x1) != i2)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i2)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != i1
      || !s_register_operand (operands[1], i1))
    return -1;
  x4 = XEXP (x2, 1);
  if (GET_MODE (x4) != i1
      || !s_register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern317 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  switch (GET_CODE (x3))
    {
    case REG:
    case SUBREG:
      return pattern315 (x1); /* [-1, 9] */

    case ABS:
      x4 = XEXP (x2, 1);
      if (GET_CODE (x4) != ABS)
        return -1;
      x5 = XEXP (x3, 0);
      operands[1] = x5;
      x6 = XEXP (x4, 0);
      operands[2] = x6;
      switch (GET_MODE (operands[0]))
        {
        case E_V2SImode:
          if (pattern316 (x1, E_V2SFmode, E_V2SImode) != 0)
            return -1;
          return 10;

        case E_V4SImode:
          if (pattern316 (x1, E_V4SFmode, E_V4SImode) != 0)
            return -1;
          return 11;

        case E_V8HImode:
          if (pattern316 (x1, E_V8HFmode, E_V8HImode) != 0)
            return -1;
          return 12;

        case E_V4HImode:
          if (pattern316 (x1, E_V4HFmode, E_V4HImode) != 0)
            return -1;
          return 13;

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern318 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !s_register_operand (operands[1], i1)
      || !s_register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern319 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  operands[1] = x3;
  x4 = XEXP (x2, 1);
  operands[2] = x4;
  switch (GET_MODE (operands[0]))
    {
    case E_V8QImode:
      return pattern318 (x1, E_V8QImode); /* [-1, 0] */

    case E_V16QImode:
      if (pattern318 (x1, E_V16QImode) != 0)
        return -1;
      return 1;

    case E_V4HImode:
      if (pattern318 (x1, E_V4HImode) != 0)
        return -1;
      return 2;

    case E_V8HImode:
      if (pattern318 (x1, E_V8HImode) != 0)
        return -1;
      return 3;

    case E_V2SImode:
      if (pattern318 (x1, E_V2SImode) != 0)
        return -1;
      return 4;

    case E_V4SImode:
      if (pattern318 (x1, E_V4SImode) != 0)
        return -1;
      return 5;

    default:
      return -1;
    }
}

static int
pattern320 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  if (GET_MODE (x1) != i1)
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x3 = XVECEXP (x1, 0, 1);
  if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x4 = XVECEXP (x1, 0, 2);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x5 = XVECEXP (x1, 0, 3);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  return 0;
}

static int
pattern321 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  operands[1] = x3;
  x4 = XEXP (x1, 1);
  switch (XVECLEN (x4, 0))
    {
    case 4:
      x5 = XVECEXP (x4, 0, 0);
      if (GET_CODE (x5) != CONST_INT)
        return -1;
      x6 = XVECEXP (x4, 0, 1);
      if (GET_CODE (x6) != CONST_INT)
        return -1;
      x7 = XVECEXP (x4, 0, 2);
      if (GET_CODE (x7) != CONST_INT)
        return -1;
      x8 = XVECEXP (x4, 0, 3);
      if (GET_CODE (x8) != CONST_INT
          || !register_operand (operands[0], E_V4HImode)
          || GET_MODE (x1) != E_V4HImode
          || GET_MODE (x2) != E_V8HImode
          || !register_operand (operands[1], E_V8QImode))
        return -1;
      switch (XWINT (x5, 0))
        {
        case 4L:
          if (XWINT (x6, 0) != 5L
              || XWINT (x7, 0) != 6L
              || XWINT (x8, 0) != 7L)
            return -1;
          return 0;

        case 0L:
          if (XWINT (x6, 0) != 1L
              || XWINT (x7, 0) != 2L
              || XWINT (x8, 0) != 3L)
            return -1;
          return 1;

        default:
          return -1;
        }

    case 2:
      x5 = XVECEXP (x4, 0, 0);
      if (GET_CODE (x5) != CONST_INT)
        return -1;
      x6 = XVECEXP (x4, 0, 1);
      if (GET_CODE (x6) != CONST_INT
          || !register_operand (operands[0], E_V2SImode)
          || GET_MODE (x1) != E_V2SImode
          || GET_MODE (x2) != E_V4SImode
          || !register_operand (operands[1], E_V4HImode))
        return -1;
      switch (XWINT (x5, 0))
        {
        case 2L:
          if (XWINT (x6, 0) != 3L)
            return -1;
          return 2;

        case 0L:
          if (XWINT (x6, 0) != 1L)
            return -1;
          return 3;

        default:
          return -1;
        }

    case 1:
      x5 = XVECEXP (x4, 0, 0);
      if (GET_CODE (x5) != CONST_INT
          || !register_operand (operands[0], E_DImode)
          || GET_MODE (x1) != E_DImode
          || GET_MODE (x2) != E_V2DImode
          || !register_operand (operands[1], E_V2SImode))
        return -1;
      switch (XWINT (x5, 0))
        {
        case 1L:
          return 4;

        case 0L:
          return 5;

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern322 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (XINT (x1, 1) != 40
      || GET_MODE (x1) != E_SImode)
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  if (GET_CODE (x2) != MEM
      || GET_MODE (x2) != E_SImode)
    return -1;
  return 0;
}

static int
pattern323 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x2) != SET)
    return -1;
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != UNSPEC_VOLATILE
      || XVECLEN (x3, 0) != 3
      || XINT (x3, 1) != 19)
    return -1;
  x4 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x4) != CLOBBER)
    return -1;
  x5 = XEXP (x4, 0);
  if (GET_CODE (x5) != REG
      || REGNO (x5) != 100
      || GET_MODE (x5) != E_CCmode)
    return -1;
  return pattern22 (x1); /* [-1, 3] */
}

static int
pattern324 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != REG
      || REGNO (x2) != 100
      || GET_MODE (x2) != E_CC_NZmode)
    return -1;
  x3 = XEXP (x1, 1);
  if (GET_MODE (x3) != E_CC_NZmode)
    return -1;
  return 0;
}

static int
pattern325 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x2, 1);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x5 = XEXP (x1, 0);
  if (GET_CODE (x5) != REG
      || REGNO (x5) != 100
      || GET_MODE (x5) != i1)
    return -1;
  return 0;
}

static int
pattern326 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  operands[1] = x3;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x4 = XEXP (x2, 1);
  operands[2] = x4;
  if (!arm_add_operand (operands[2], E_SImode))
    return -1;
  x5 = XEXP (x1, 1);
  x6 = XEXP (x5, 0);
  operands[4] = x6;
  if (!s_register_operand (operands[4], E_SImode))
    return -1;
  x7 = XEXP (x5, 1);
  operands[5] = x7;
  if (!arm_add_operand (operands[5], E_SImode))
    return -1;
  return 0;
}

static int
pattern327 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 1);
  operands[2] = x4;
  x5 = XVECEXP (x1, 0, 1);
  x6 = XEXP (x5, 1);
  x7 = XVECEXP (x6, 0, 2);
  operands[3] = x7;
  if (!const_int_operand (operands[3], E_SImode))
    return -1;
  return pattern21 (x1); /* [-1, 3] */
}

static int
pattern328 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x2) != SET)
    return -1;
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != UNSPEC_VOLATILE
      || XVECLEN (x3, 0) != 3
      || XINT (x3, 1) != 19)
    return -1;
  return pattern327 (x1); /* [-1, 3] */
}

static int
pattern329 (rtx x1, int *pnum_clobbers)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  if (pnum_clobbers == NULL)
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  operands[1] = x4;
  return pattern328 (x1); /* [-1, 3] */
}

static int
pattern330 (rtx x1, int *pnum_clobbers)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case NE:
    case EQ:
    case GE:
    case GT:
    case LE:
    case LT:
    case GEU:
    case GTU:
    case LEU:
    case LTU:
    case UNORDERED:
    case ORDERED:
    case UNGE:
    case UNGT:
    case UNLE:
    case UNLT:
      operands[3] = x4;
      if (!arm_comparison_operator (operands[3], E_SImode))
        return -1;
      x5 = XEXP (x3, 1);
      if (!arm_comparison_operator (x5, E_SImode))
        return -1;
      operands[6] = x5;
      x6 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x6) != CLOBBER)
        return -1;
      x7 = XEXP (x6, 0);
      if (GET_CODE (x7) != REG
          || REGNO (x7) != 100
          || GET_MODE (x7) != E_CCmode
          || !s_register_operand (operands[0], E_SImode)
          || GET_MODE (x3) != E_SImode
          || pattern326 (x3) != 0)
        return -1;
      return 0;

    case MEM:
      res = pattern329 (x1, pnum_clobbers);
      if (res >= 0)
        return res + 1; /* [1, 4] */
      return -1;

    default:
      return -1;
    }
}

static int
pattern331 (rtx x1, int *pnum_clobbers)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (pnum_clobbers == NULL
      || GET_CODE (x1) != SET)
    return -1;
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) != UNSPEC_VOLATILE
      || XVECLEN (x2, 0) != 3
      || XINT (x2, 1) != 19)
    return -1;
  return 0;
}

static int
pattern332 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != CLOBBER)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != REG
      || REGNO (x2) != 100
      || GET_MODE (x2) != E_CCmode)
    return -1;
  return 0;
}

static int
pattern333 (rtx x1, int i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (GET_MODE (x1) != E_SImode)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != PLUS
      || GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XEXP (x2, 1);
  if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
    return -1;
  return 0;
}

static int
pattern334 (rtx x1, int i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  operands[1] = x3;
  if (!arm_hard_general_register_operand (operands[1], E_SImode))
    return -1;
  x4 = XEXP (x2, 0);
  if (GET_CODE (x4) != MEM
      || GET_MODE (x4) != E_SImode)
    return -1;
  x5 = XEXP (x4, 0);
  if (GET_CODE (x5) != PLUS
      || GET_MODE (x5) != E_SImode)
    return -1;
  x6 = XEXP (x5, 1);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
    return -1;
  x7 = XVECEXP (x1, 0, 1);
  x8 = XEXP (x7, 0);
  if (GET_CODE (x8) != MEM
      || GET_MODE (x8) != E_SImode)
    return -1;
  return 0;
}

static int
pattern335 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  operands[1] = x2;
  if (!s_register_operand (operands[1], i1))
    return -1;
  x3 = XEXP (x1, 1);
  operands[2] = x3;
  if (!s_register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern336 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  int res ATTRIBUTE_UNUSED;
  if (GET_MODE (x1) != E_V2SImode)
    return -1;
  x2 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x2) != ZERO_EXTRACT
      || GET_MODE (x2) != E_V4HImode)
    return -1;
  x3 = XEXP (x2, 1);
  if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
    return -1;
  x4 = XEXP (x2, 2);
  if (GET_CODE (x4) != CONST_INT)
    return -1;
  x5 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x5) != ZERO_EXTRACT
      || GET_MODE (x5) != E_V4HImode)
    return -1;
  x6 = XEXP (x5, 1);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
    return -1;
  x7 = XEXP (x5, 2);
  if (GET_CODE (x7) != CONST_INT)
    return -1;
  x8 = XVECEXP (x1, 0, 3);
  if (GET_CODE (x8) != ZERO_EXTRACT
      || GET_MODE (x8) != E_V4HImode)
    return -1;
  x9 = XEXP (x8, 1);
  if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
    return -1;
  x10 = XEXP (x8, 2);
  if (GET_CODE (x10) != CONST_INT)
    return -1;
  x11 = XVECEXP (x1, 0, 4);
  if (GET_CODE (x11) != ZERO_EXTRACT
      || GET_MODE (x11) != E_V4HImode)
    return -1;
  x12 = XEXP (x11, 1);
  if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
    return -1;
  x13 = XEXP (x11, 2);
  if (GET_CODE (x13) != CONST_INT
      || !register_operand (operands[0], E_V2SImode)
      || !register_operand (operands[1], E_V2SImode))
    return -1;
  x14 = XEXP (x2, 0);
  operands[2] = x14;
  if (!register_operand (operands[2], E_V4HImode))
    return -1;
  x15 = XEXP (x8, 0);
  operands[3] = x15;
  if (!register_operand (operands[3], E_V4HImode))
    return -1;
  x16 = XEXP (x5, 0);
  if (!rtx_equal_p (x16, operands[2]))
    return -1;
  x17 = XEXP (x11, 0);
  if (!rtx_equal_p (x17, operands[3]))
    return -1;
  switch (XWINT (x4, 0))
    {
    case 0L:
      if (XWINT (x7, 0) != 32L)
        return -1;
      switch (XWINT (x10, 0))
        {
        case 0L:
          if (XWINT (x13, 0) != 32L)
            return -1;
          return 0;

        case 16L:
          if (XWINT (x13, 0) != 48L)
            return -1;
          return 1;

        default:
          return -1;
        }

    case 16L:
      if (XWINT (x7, 0) != 48L)
        return -1;
      switch (XWINT (x10, 0))
        {
        case 0L:
          if (XWINT (x13, 0) != 32L)
            return -1;
          return 2;

        case 16L:
          if (XWINT (x13, 0) != 48L)
            return -1;
          return 3;

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern337 (rtx x1, int i1, int i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != E_V2SImode)
    return -1;
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != PARALLEL
      || XVECLEN (x3, 0) != 2)
    return -1;
  x4 = XVECEXP (x3, 0, 0);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + i2])
    return -1;
  x5 = XVECEXP (x3, 0, 1);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
    return -1;
  x6 = XEXP (x1, 1);
  if (GET_CODE (x6) != VEC_SELECT
      || GET_MODE (x6) != E_V2SImode)
    return -1;
  x7 = XEXP (x6, 1);
  if (GET_CODE (x7) != PARALLEL
      || XVECLEN (x7, 0) != 2)
    return -1;
  return 0;
}

static int
pattern338 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  if (!shift_nomul_operator (operands[2], E_SImode)
      || !s_register_operand (operands[0], E_SImode)
      || GET_MODE (x1) != E_SImode)
    return -1;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  operands[3] = x3;
  if (!s_register_operand (operands[3], E_SImode))
    return -1;
  x4 = XEXP (x2, 1);
  operands[4] = x4;
  if (!shift_amount_operand (operands[4], E_SImode))
    return -1;
  x5 = XEXP (x1, 1);
  operands[1] = x5;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  return 0;
}

static int
pattern339 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  if (!arm_comparison_operator (operands[1], E_SImode))
    return -1;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 1);
  if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
      || !s_register_operand (operands[0], E_SImode)
      || GET_MODE (x1) != E_SImode)
    return -1;
  x4 = XEXP (x2, 0);
  operands[2] = x4;
  if (!cc_register (operands[2], E_VOIDmode))
    return -1;
  x5 = XEXP (x1, 1);
  operands[3] = x5;
  if (!s_register_operand (operands[3], E_SImode))
    return -1;
  return 0;
}

static int
pattern340 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[3] = x2;
  if (!arm_comparison_operator (operands[3], E_SImode))
    return -1;
  x3 = XEXP (x1, 1);
  if (!arm_comparison_operator (x3, E_SImode))
    return -1;
  operands[6] = x3;
  if (!s_register_operand (operands[0], E_SImode)
      || GET_MODE (x1) != E_SImode)
    return -1;
  x4 = XEXP (x2, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x5 = XEXP (x2, 1);
  operands[2] = x5;
  if (!arm_add_operand (operands[2], E_SImode))
    return -1;
  x6 = XEXP (x3, 0);
  operands[4] = x6;
  if (!s_register_operand (operands[4], E_SImode))
    return -1;
  x7 = XEXP (x3, 1);
  operands[5] = x7;
  if (!arm_add_operand (operands[5], E_SImode))
    return -1;
  return 0;
}

static int
pattern341 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i2
      || !register_operand (operands[1], i1))
    return -1;
  x3 = XEXP (x1, 1);
  if (GET_MODE (x3) != i2
      || !register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern342 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i3)
      || GET_MODE (x1) != i3
      || pattern341 (x1, i1, i2) != 0)
    return -1;
  return 0;
}

static int
pattern343 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  operands[2] = x3;
  switch (GET_MODE (operands[0]))
    {
    case E_V8QImode:
      return pattern342 (x1, E_V4HImode, E_V4QImode, E_V8QImode); /* [-1, 0] */

    case E_V4HImode:
      if (pattern342 (x1, E_V2SImode, E_V2HImode, E_V4HImode) != 0)
        return -1;
      return 1;

    case E_V2SImode:
      if (pattern342 (x1, E_DImode, E_SImode, E_V2SImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern344 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1
      || !s_register_operand (operands[1], i1)
      || !s_register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern345 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1
      || !register_operand (operands[1], i1)
      || !register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern346 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[3] = x2;
  x3 = XEXP (x2, 0);
  operands[4] = x3;
  x4 = XEXP (x1, 1);
  x5 = XEXP (x4, 0);
  operands[0] = x5;
  x6 = XEXP (x4, 1);
  x7 = XEXP (x6, 0);
  operands[1] = x7;
  x8 = XEXP (x6, 1);
  operands[2] = x8;
  switch (GET_MODE (operands[0]))
    {
    case E_SImode:
      return pattern344 (x6, E_SImode); /* [-1, 0] */

    case E_V8QImode:
      if (pattern345 (x6, E_V8QImode) != 0)
        return -1;
      return 1;

    case E_V4HImode:
      if (pattern345 (x6, E_V4HImode) != 0)
        return -1;
      return 2;

    case E_V2SImode:
      if (pattern345 (x6, E_V2SImode) != 0)
        return -1;
      return 3;

    case E_V4QQmode:
      if (pattern344 (x6, E_V4QQmode) != 0)
        return -1;
      return 4;

    case E_V2HQmode:
      if (pattern344 (x6, E_V2HQmode) != 0)
        return -1;
      return 5;

    case E_QQmode:
      if (pattern344 (x6, E_QQmode) != 0)
        return -1;
      return 6;

    case E_HQmode:
      if (pattern344 (x6, E_HQmode) != 0)
        return -1;
      return 7;

    case E_V2HAmode:
      if (pattern344 (x6, E_V2HAmode) != 0)
        return -1;
      return 8;

    case E_HAmode:
      if (pattern344 (x6, E_HAmode) != 0)
        return -1;
      return 9;

    case E_SQmode:
      if (pattern344 (x6, E_SQmode) != 0)
        return -1;
      return 10;

    case E_SAmode:
      if (pattern344 (x6, E_SAmode) != 0)
        return -1;
      return 11;

    default:
      return -1;
    }
}

static int
pattern347 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x1, 0);
  operands[4] = x4;
  x5 = XEXP (x4, 0);
  operands[5] = x5;
  x6 = XEXP (x2, 0);
  operands[0] = x6;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x7 = XEXP (x3, 0);
  operands[1] = x7;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x8 = XEXP (x3, 1);
  operands[2] = x8;
  if (!const_int_operand (operands[2], E_SImode))
    return -1;
  x9 = XEXP (x3, 2);
  operands[3] = x9;
  if (!const_int_operand (operands[3], E_SImode))
    return -1;
  return 0;
}

static int
pattern348 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[3] = x2;
  x3 = XEXP (x2, 0);
  operands[4] = x3;
  x4 = XEXP (x1, 1);
  x5 = XEXP (x4, 0);
  operands[0] = x5;
  x6 = XEXP (x4, 1);
  x7 = XEXP (x6, 0);
  operands[1] = x7;
  x8 = XEXP (x6, 1);
  operands[2] = x8;
  switch (GET_MODE (operands[0]))
    {
    case E_V8QImode:
      return pattern345 (x6, E_V8QImode); /* [-1, 0] */

    case E_V4HImode:
      if (pattern345 (x6, E_V4HImode) != 0)
        return -1;
      return 1;

    case E_V2SImode:
      if (pattern345 (x6, E_V2SImode) != 0)
        return -1;
      return 2;

    case E_V4UQQmode:
      if (pattern344 (x6, E_V4UQQmode) != 0)
        return -1;
      return 3;

    case E_V2UHQmode:
      if (pattern344 (x6, E_V2UHQmode) != 0)
        return -1;
      return 4;

    case E_UQQmode:
      if (pattern344 (x6, E_UQQmode) != 0)
        return -1;
      return 5;

    case E_UHQmode:
      if (pattern344 (x6, E_UHQmode) != 0)
        return -1;
      return 6;

    case E_V2UHAmode:
      if (pattern344 (x6, E_V2UHAmode) != 0)
        return -1;
      return 7;

    case E_UHAmode:
      if (pattern344 (x6, E_UHAmode) != 0)
        return -1;
      return 8;

    default:
      return -1;
    }
}

static int
pattern349 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[3] = x2;
  x3 = XEXP (x2, 0);
  operands[4] = x3;
  x4 = XEXP (x1, 1);
  x5 = XEXP (x4, 0);
  operands[0] = x5;
  x6 = XEXP (x4, 1);
  x7 = XEXP (x6, 0);
  operands[1] = x7;
  x8 = XEXP (x6, 1);
  operands[2] = x8;
  switch (GET_MODE (operands[0]))
    {
    case E_V2SImode:
      return pattern345 (x6, E_V2SImode); /* [-1, 0] */

    case E_V4HImode:
      if (pattern345 (x6, E_V4HImode) != 0)
        return -1;
      return 1;

    case E_V8QImode:
      if (pattern345 (x6, E_V8QImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern350 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[2] = x2;
  x3 = XEXP (x2, 0);
  operands[3] = x3;
  x4 = XEXP (x1, 1);
  x5 = XEXP (x4, 0);
  operands[0] = x5;
  x6 = XEXP (x4, 1);
  x7 = XEXP (x6, 0);
  operands[1] = x7;
  switch (GET_MODE (operands[0]))
    {
    case E_SFmode:
      if (!s_register_operand (operands[0], E_SFmode)
          || GET_MODE (x6) != E_SFmode
          || !s_register_operand (operands[1], E_SFmode))
        return -1;
      return 0;

    case E_DFmode:
      if (!s_register_operand (operands[0], E_DFmode)
          || GET_MODE (x6) != E_DFmode
          || !s_register_operand (operands[1], E_DFmode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern351 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[2] = x2;
  x3 = XEXP (x2, 0);
  operands[3] = x3;
  x4 = XEXP (x1, 1);
  x5 = XEXP (x4, 0);
  operands[0] = x5;
  x6 = XEXP (x4, 1);
  x7 = XEXP (x6, 0);
  operands[1] = x7;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_SFmode:
      if (!s_register_operand (operands[0], E_SFmode)
          || GET_MODE (x6) != E_SFmode)
        return -1;
      return 0;

    case E_DFmode:
      if (!s_register_operand (operands[0], E_DFmode)
          || GET_MODE (x6) != E_DFmode)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern352 (rtx x1, int i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != UNSPEC
      || XVECLEN (x1, 0) != 1
      || XINT (x1, 1) != i1
      || GET_MODE (x1) != E_SImode)
    return -1;
  return 0;
}

static int
pattern353 (rtx x1, machine_mode i1, unsigned int i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != CLOBBER)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != REG
      || REGNO (x2) != i2
      || GET_MODE (x2) != i1)
    return -1;
  return 0;
}

static int
pattern354 (rtx x1, int i1, int i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x2) != SET)
    return -1;
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != UNSPEC_VOLATILE
      || XVECLEN (x3, 0) != i2
      || XINT (x3, 1) != i1)
    return -1;
  x4 = XVECEXP (x1, 0, 2);
  return pattern353 (x4, E_CCmode, 100); /* [-1, 0] */
}

static int
pattern355 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x1, 0);
  operands[3] = x4;
  x5 = XEXP (x4, 0);
  operands[4] = x5;
  x6 = XEXP (x2, 0);
  operands[0] = x6;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x7 = XEXP (x3, 0);
  operands[1] = x7;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x8 = XEXP (x3, 1);
  operands[2] = x8;
  if (!reg_or_int_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern356 (rtx x1, machine_mode i1, rtx_code i2, machine_mode i3, rtx_code i4)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != i4
      || GET_MODE (x1) != i3)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != i2
      || GET_MODE (x2) != i1)
    return -1;
  return 0;
}

static int
pattern357 (rtx x1, machine_mode i1, machine_mode i2, unsigned int i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != i3
      || GET_MODE (x3) != i2
      || !s_register_operand (operands[0], i1))
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 1);
  x6 = XVECEXP (x5, 0, 0);
  operands[1] = x6;
  if (!s_register_operand (operands[1], i1))
    return -1;
  x7 = XVECEXP (x5, 0, 1);
  operands[2] = x7;
  if (!s_register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern358 (rtx x1, int i1, machine_mode i2, machine_mode i3, unsigned int i4)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != i2)
    return -1;
  x4 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x4) != SET)
    return -1;
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != UNSPEC
      || XVECLEN (x5, 0) != 1
      || XINT (x5, 1) != i1
      || GET_MODE (x5) != i3)
    return -1;
  x6 = XVECEXP (x5, 0, 0);
  if (GET_CODE (x6) != REG
      || REGNO (x6) != i4
      || GET_MODE (x6) != i3
      || pattern357 (x1, i2, i3, i4) != 0)
    return -1;
  return 0;
}

static int
pattern359 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x4) != SET)
    return -1;
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != UNSPEC
      || XVECLEN (x5, 0) != 1
      || XINT (x5, 1) != 28
      || GET_MODE (x5) != E_CCmode)
    return -1;
  x6 = XVECEXP (x5, 0, 0);
  if (GET_CODE (x6) != REG
      || REGNO (x6) != 104
      || GET_MODE (x6) != E_CCmode)
    return -1;
  x7 = XEXP (x4, 0);
  if (GET_CODE (x7) != REG
      || REGNO (x7) != 104
      || GET_MODE (x7) != E_CCmode
      || !s_register_operand (operands[0], E_SImode))
    return -1;
  x8 = XVECEXP (x3, 0, 0);
  operands[1] = x8;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x9 = XVECEXP (x3, 0, 1);
  operands[2] = x9;
  return 0;
}

static int
pattern360 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x4) != SET)
    return -1;
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != FLOAT_TRUNCATE
      || GET_MODE (x5) != E_HFmode)
    return -1;
  x6 = XEXP (x5, 0);
  if (GET_CODE (x6) != FLOAT
      || GET_MODE (x6) != E_SFmode
      || !s_register_operand (operands[0], E_SImode))
    return -1;
  x7 = XVECEXP (x3, 0, 0);
  operands[1] = x7;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x8 = XVECEXP (x3, 0, 1);
  operands[2] = x8;
  if (!immediate_operand (operands[2], E_SImode))
    return -1;
  x9 = XEXP (x4, 0);
  operands[3] = x9;
  if (!s_register_operand (operands[3], E_HFmode))
    return -1;
  x10 = XEXP (x6, 0);
  if (!rtx_equal_p (x10, operands[0]))
    return -1;
  return 0;
}

static int
pattern361 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1))
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != i1
      || !s_register_operand (operands[1], i1)
      || !s_register_operand (operands[3], i1)
      || !s_register_operand (operands[2], i1))
    return -1;
  x4 = XVECEXP (x1, 0, 1);
  x5 = XEXP (x4, 1);
  if (GET_MODE (x5) != i1)
    return -1;
  return 0;
}

static int
pattern362 (rtx x1, int i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x2) != SET)
    return -1;
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != UNSPEC
      || XVECLEN (x3, 0) != 2
      || XINT (x3, 1) != i1)
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 1);
  x6 = XVECEXP (x5, 0, 0);
  operands[1] = x6;
  x7 = XVECEXP (x5, 0, 1);
  operands[3] = x7;
  x8 = XEXP (x2, 0);
  operands[2] = x8;
  x9 = XVECEXP (x3, 0, 0);
  if (!rtx_equal_p (x9, operands[1]))
    return -1;
  x10 = XVECEXP (x3, 0, 1);
  if (!rtx_equal_p (x10, operands[3]))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_V8QImode:
      return pattern361 (x1, E_V8QImode); /* [-1, 0] */

    case E_V16QImode:
      if (pattern361 (x1, E_V16QImode) != 0)
        return -1;
      return 1;

    case E_V4HImode:
      if (pattern361 (x1, E_V4HImode) != 0)
        return -1;
      return 2;

    case E_V8HImode:
      if (pattern361 (x1, E_V8HImode) != 0)
        return -1;
      return 3;

    case E_V2SImode:
      if (pattern361 (x1, E_V2SImode) != 0)
        return -1;
      return 4;

    case E_V4SImode:
      if (pattern361 (x1, E_V4SImode) != 0)
        return -1;
      return 5;

    case E_V2SFmode:
      if (pattern361 (x1, E_V2SFmode) != 0)
        return -1;
      return 6;

    case E_V4SFmode:
      if (pattern361 (x1, E_V4SFmode) != 0)
        return -1;
      return 7;

    case E_V8HFmode:
      if (pattern361 (x1, E_V8HFmode) != 0)
        return -1;
      return 8;

    case E_V4HFmode:
      if (pattern361 (x1, E_V4HFmode) != 0)
        return -1;
      return 9;

    default:
      return -1;
    }
}

static int
pattern363 (rtx x1, rtx_code i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x2) != SET)
    return -1;
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != i1
      || GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 1);
  x6 = XVECEXP (x5, 0, 0);
  operands[2] = x6;
  if (!s_register_operand (operands[2], E_SImode))
    return -1;
  x7 = XVECEXP (x5, 0, 1);
  operands[3] = x7;
  return 0;
}

static int
pattern364 (rtx x1, int i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != E_V4SImode)
    return -1;
  x4 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x4) != SET)
    return -1;
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != UNSPEC
      || XVECLEN (x5, 0) != 1
      || XINT (x5, 1) != i1
      || GET_MODE (x5) != E_SImode)
    return -1;
  x6 = XVECEXP (x5, 0, 0);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
      || pattern357 (x1, E_V4SImode, E_SImode, 101) != 0)
    return -1;
  return 0;
}

static int
pattern365 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i2)
      || GET_MODE (x1) != i2
      || !s_register_operand (operands[1], i2)
      || !vpr_register_operand (operands[5], i1))
    return -1;
  return 0;
}

static int
pattern366 (rtx x1, rtx_code i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != i1
      || GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 0);
  operands[0] = x5;
  x6 = XEXP (x4, 1);
  x7 = XVECEXP (x6, 0, 0);
  operands[1] = x7;
  x8 = XVECEXP (x6, 0, 1);
  operands[3] = x8;
  if (!s_register_operand (operands[3], E_SImode))
    return -1;
  x9 = XVECEXP (x6, 0, 2);
  operands[4] = x9;
  if (!mve_imm_selective_upto_8 (operands[4], E_SImode))
    return -1;
  x10 = XVECEXP (x6, 0, 3);
  operands[5] = x10;
  x11 = XEXP (x2, 0);
  operands[2] = x11;
  if (!s_register_operand (operands[2], E_SImode))
    return -1;
  x12 = XEXP (x3, 1);
  operands[6] = x12;
  if (!immediate_operand (operands[6], E_SImode))
    return -1;
  x13 = XEXP (x3, 0);
  if (!rtx_equal_p (x13, operands[3]))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      return pattern365 (x6, E_V16BImode, E_V16QImode); /* [-1, 0] */

    case E_V8HImode:
      if (pattern365 (x6, E_V8BImode, E_V8HImode) != 0)
        return -1;
      return 1;

    case E_V4SImode:
      if (pattern365 (x6, E_V4BImode, E_V4SImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern367 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XVECEXP (x3, 0, 3);
  operands[4] = x4;
  if (!vpr_register_operand (operands[4], i2))
    return -1;
  x5 = XVECEXP (x1, 0, 1);
  x6 = XEXP (x5, 0);
  operands[0] = x6;
  if (!s_register_operand (operands[0], i1))
    return -1;
  x7 = XEXP (x5, 1);
  x8 = XVECEXP (x7, 0, 0);
  if (!rtx_equal_p (x8, operands[1]))
    return -1;
  x9 = XVECEXP (x7, 0, 1);
  if (!rtx_equal_p (x9, operands[2]))
    return -1;
  return 0;
}

static int
pattern368 (rtx x1, int i1, machine_mode i2, machine_mode i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != E_BLKmode)
    return -1;
  x4 = XEXP (x2, 0);
  if (GET_CODE (x4) != MEM
      || GET_MODE (x4) != E_BLKmode)
    return -1;
  x5 = XEXP (x4, 0);
  if (GET_CODE (x5) != SCRATCH)
    return -1;
  x6 = XVECEXP (x1, 0, 1);
  x7 = XEXP (x6, 1);
  if (GET_CODE (x7) != UNSPEC
      || XVECLEN (x7, 0) != 2
      || XINT (x7, 1) != i1
      || GET_MODE (x7) != i2)
    return -1;
  x8 = XVECEXP (x3, 0, 0);
  operands[1] = x8;
  if (!s_register_operand (operands[1], i2))
    return -1;
  x9 = XVECEXP (x3, 0, 1);
  operands[2] = x9;
  if (!mve_vldrd_immediate (operands[2], E_SImode))
    return -1;
  x10 = XVECEXP (x3, 0, 2);
  operands[3] = x10;
  if (!s_register_operand (operands[3], i2)
      || pattern367 (x1, i2, i3) != 0)
    return -1;
  return 0;
}

static int
pattern369 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_BLKmode)
    return -1;
  x3 = XEXP (x1, 0);
  if (GET_CODE (x3) != MEM
      || GET_MODE (x3) != E_BLKmode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != SCRATCH)
    return -1;
  return 0;
}

static int
pattern370 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[2] = x4;
  if (!s_register_operand (operands[2], i1))
    return -1;
  x5 = XVECEXP (x3, 0, 1);
  operands[3] = x5;
  if (!mve_vldrd_immediate (operands[3], E_SImode))
    return -1;
  x6 = XVECEXP (x3, 0, 2);
  operands[4] = x6;
  if (!vpr_register_operand (operands[4], i2))
    return -1;
  x7 = XVECEXP (x1, 0, 1);
  x8 = XEXP (x7, 0);
  operands[1] = x8;
  if (!s_register_operand (operands[1], i1))
    return -1;
  x9 = XEXP (x7, 1);
  x10 = XVECEXP (x9, 0, 0);
  if (!rtx_equal_p (x10, operands[2]))
    return -1;
  x11 = XVECEXP (x9, 0, 1);
  if (!rtx_equal_p (x11, operands[3]))
    return -1;
  return 0;
}

static int
pattern371 (rtx x1, int i1, machine_mode i2, machine_mode i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != i2)
    return -1;
  x4 = XVECEXP (x3, 0, 3);
  if (GET_CODE (x4) != MEM
      || GET_MODE (x4) != E_BLKmode)
    return -1;
  x5 = XEXP (x4, 0);
  if (GET_CODE (x5) != SCRATCH)
    return -1;
  x6 = XVECEXP (x1, 0, 1);
  x7 = XEXP (x6, 1);
  if (GET_CODE (x7) != UNSPEC
      || XVECLEN (x7, 0) != 2
      || XINT (x7, 1) != i1
      || GET_MODE (x7) != i2)
    return -1;
  x8 = XEXP (x2, 0);
  operands[0] = x8;
  if (!s_register_operand (operands[0], i2)
      || pattern370 (x1, i2, i3) != 0)
    return -1;
  return 0;
}

static int
pattern372 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != 101
      || GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 0);
  operands[0] = x5;
  if (!s_register_operand (operands[0], E_V4SImode))
    return -1;
  x6 = XEXP (x4, 1);
  x7 = XVECEXP (x6, 0, 0);
  operands[1] = x7;
  if (!s_register_operand (operands[1], E_V4SImode))
    return -1;
  x8 = XVECEXP (x6, 0, 1);
  operands[2] = x8;
  if (!s_register_operand (operands[2], E_V4SImode))
    return -1;
  x9 = XVECEXP (x6, 0, 2);
  operands[3] = x9;
  if (!s_register_operand (operands[3], E_V4SImode))
    return -1;
  x10 = XVECEXP (x6, 0, 3);
  operands[4] = x10;
  if (!vpr_register_operand (operands[4], E_V4BImode))
    return -1;
  return 0;
}

static int
pattern373 (rtx x1, int i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != E_V4SImode)
    return -1;
  x4 = XVECEXP (x1, 0, 1);
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != UNSPEC
      || XVECLEN (x5, 0) != 1
      || XINT (x5, 1) != i1
      || GET_MODE (x5) != E_SImode)
    return -1;
  x6 = XVECEXP (x5, 0, 0);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
      || pattern372 (x1) != 0)
    return -1;
  return 0;
}

static int
pattern374 (rtx x1, int i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != E_V4SImode)
    return -1;
  x4 = XVECEXP (x1, 0, 1);
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != UNSPEC
      || XVECLEN (x5, 0) != 1
      || XINT (x5, 1) != i1
      || GET_MODE (x5) != E_SImode)
    return -1;
  x6 = XVECEXP (x5, 0, 0);
  if (GET_CODE (x6) != REG
      || REGNO (x6) != 101
      || GET_MODE (x6) != E_SImode
      || pattern372 (x1) != 0)
    return -1;
  return 0;
}

static int
pattern375 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i2)
      || GET_MODE (x1) != i2
      || !s_register_operand (operands[2], i2)
      || !vpr_register_operand (operands[5], i1))
    return -1;
  return 0;
}

static int
pattern376 (rtx x1, int i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != UNSPEC
      || XVECLEN (x3, 0) != 4
      || XINT (x3, 1) != i1
      || GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 0);
  operands[0] = x5;
  x6 = XEXP (x4, 1);
  x7 = XVECEXP (x6, 0, 0);
  operands[2] = x7;
  x8 = XVECEXP (x6, 0, 1);
  operands[3] = x8;
  if (!s_register_operand (operands[3], E_SImode))
    return -1;
  x9 = XVECEXP (x6, 0, 2);
  operands[4] = x9;
  if (!mve_imm_32 (operands[4], E_SImode))
    return -1;
  x10 = XVECEXP (x6, 0, 3);
  operands[5] = x10;
  x11 = XEXP (x2, 0);
  operands[1] = x11;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x12 = XVECEXP (x3, 0, 0);
  if (!rtx_equal_p (x12, operands[2]))
    return -1;
  x13 = XVECEXP (x3, 0, 1);
  if (!rtx_equal_p (x13, operands[3]))
    return -1;
  x14 = XVECEXP (x3, 0, 2);
  if (!rtx_equal_p (x14, operands[4]))
    return -1;
  x15 = XVECEXP (x3, 0, 3);
  if (!rtx_equal_p (x15, operands[5]))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      return pattern375 (x6, E_V16BImode, E_V16QImode); /* [-1, 0] */

    case E_V8HImode:
      if (pattern375 (x6, E_V8BImode, E_V8HImode) != 0)
        return -1;
      return 1;

    case E_V4SImode:
      if (pattern375 (x6, E_V4BImode, E_V4SImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern377 (rtx x1, int i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x2, 1);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
    return -1;
  x5 = XEXP (x1, 1);
  if (GET_CODE (x5) != LABEL_REF)
    return -1;
  x6 = XEXP (x1, 2);
  if (GET_CODE (x6) != PC)
    return -1;
  return 0;
}

static int
pattern378 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[6] = x2;
  if (!dominant_cc_register (operands[6], E_VOIDmode))
    return -1;
  x3 = XEXP (x1, 1);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 0);
  x6 = XEXP (x5, 0);
  operands[0] = x6;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x7 = XEXP (x5, 1);
  operands[1] = x7;
  if (!arm_add_operand (operands[1], E_SImode))
    return -1;
  x8 = XEXP (x4, 1);
  x9 = XEXP (x8, 0);
  operands[2] = x9;
  if (!s_register_operand (operands[2], E_SImode))
    return -1;
  x10 = XEXP (x8, 1);
  operands[3] = x10;
  if (!arm_add_operand (operands[3], E_SImode))
    return -1;
  return 0;
}

static int
pattern379 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  operands[4] = x4;
  if (!arm_comparison_operator (operands[4], E_VOIDmode))
    return -1;
  x5 = XEXP (x3, 1);
  if (!arm_comparison_operator (x5, E_SImode))
    return -1;
  operands[5] = x5;
  return pattern378 (x1); /* [-1, 0] */
}

static int
pattern380 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i3)
      || GET_MODE (x1) != i3)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i3)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != i2
      || !register_operand (operands[1], i1))
    return -1;
  x4 = XEXP (x1, 1);
  if (GET_MODE (x4) != i3)
    return -1;
  x5 = XEXP (x4, 0);
  if (GET_MODE (x5) != i2
      || !register_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern381 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != VEC_SELECT)
    return -1;
  x4 = XEXP (x1, 0);
  x5 = XEXP (x4, 0);
  x6 = XEXP (x5, 0);
  operands[1] = x6;
  x7 = XEXP (x5, 1);
  operands[2] = x7;
  x8 = XEXP (x3, 0);
  operands[3] = x8;
  x9 = XEXP (x3, 1);
  if (!rtx_equal_p (x9, operands[2]))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HImode:
      return pattern380 (x1, E_V16QImode, E_V8QImode, E_V8HImode); /* [-1, 0] */

    case E_V4SImode:
      if (pattern380 (x1, E_V8HImode, E_V4HImode, E_V4SImode) != 0)
        return -1;
      return 1;

    case E_V2DImode:
      if (pattern380 (x1, E_V4SImode, E_V2SImode, E_V2DImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern382 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i2)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != i2)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) != i2
      || !register_operand (operands[1], i1))
    return -1;
  x5 = XEXP (x3, 1);
  if (GET_MODE (x5) != i2
      || !register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern383 (rtx x1, rtx_code i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) != i1)
    return -1;
  x5 = XEXP (x3, 0);
  x6 = XEXP (x5, 0);
  operands[1] = x6;
  x7 = XEXP (x4, 0);
  operands[2] = x7;
  x8 = XEXP (x2, 1);
  switch (XWINT (x8, 0))
    {
    case 32L:
      return 0;

    case 16L:
      if (pattern382 (x1, E_V4HImode, E_V4SImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern384 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1
      || !register_operand (operands[1], i1)
      || !register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern385 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  operands[2] = x2;
  switch (GET_MODE (operands[0]))
    {
    case E_V2SImode:
      if (GET_MODE (x1) != E_V2SImode)
        return -1;
      return 0;

    case E_V4HImode:
      if (GET_MODE (x1) != E_V4HImode)
        return -1;
      return 1;

    case E_V8QImode:
      if (GET_MODE (x1) != E_V8QImode)
        return -1;
      return 2;

    case E_SFmode:
      if (pattern384 (x1, E_SFmode) != 0)
        return -1;
      return 3;

    case E_DFmode:
      if (pattern384 (x1, E_DFmode) != 0)
        return -1;
      return 4;

    case E_V16QImode:
      if (pattern1 (x1, E_V16QImode) != 0)
        return -1;
      return 5;

    case E_V8HImode:
      if (pattern1 (x1, E_V8HImode) != 0)
        return -1;
      return 6;

    case E_V4SImode:
      if (pattern1 (x1, E_V4SImode) != 0)
        return -1;
      return 7;

    case E_V2SFmode:
      if (pattern1 (x1, E_V2SFmode) != 0)
        return -1;
      return 8;

    case E_V4SFmode:
      if (pattern1 (x1, E_V4SFmode) != 0)
        return -1;
      return 9;

    case E_V8HFmode:
      if (pattern1 (x1, E_V8HFmode) != 0)
        return -1;
      return 10;

    default:
      return -1;
    }
}

static int
pattern386 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[1], E_SImode)
      || !s_register_operand (operands[0], E_SImode)
      || GET_MODE (x1) != E_SImode)
    return -1;
  x2 = XEXP (x1, 1);
  operands[2] = x2;
  if (!arm_rhs_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern387 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !s_register_operand (operands[2], i1)
      || !s_register_operand (operands[3], i1)
      || !s_register_operand (operands[1], i1))
    return -1;
  return 0;
}

static int
pattern388 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XVECEXP (x2, 0, 0);
  operands[2] = x3;
  x4 = XVECEXP (x2, 0, 1);
  operands[3] = x4;
  x5 = XEXP (x1, 1);
  operands[1] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V8QImode:
      return pattern387 (x1, E_V8QImode); /* [-1, 0] */

    case E_V16QImode:
      if (pattern387 (x1, E_V16QImode) != 0)
        return -1;
      return 1;

    case E_V4HImode:
      if (pattern387 (x1, E_V4HImode) != 0)
        return -1;
      return 2;

    case E_V8HImode:
      if (pattern387 (x1, E_V8HImode) != 0)
        return -1;
      return 3;

    case E_V2SImode:
      if (pattern387 (x1, E_V2SImode) != 0)
        return -1;
      return 4;

    case E_V4SImode:
      if (pattern387 (x1, E_V4SImode) != 0)
        return -1;
      return 5;

    default:
      return -1;
    }
}

static int
pattern389 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !s_register_operand (operands[2], i2)
      || !s_register_operand (operands[3], i2)
      || !s_register_operand (operands[1], i1))
    return -1;
  return 0;
}

static int
pattern390 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XVECEXP (x2, 0, 0);
  operands[2] = x3;
  x4 = XVECEXP (x2, 0, 1);
  operands[3] = x4;
  x5 = XEXP (x1, 1);
  operands[1] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HImode:
      return pattern389 (x1, E_V8HImode, E_V8QImode); /* [-1, 0] */

    case E_V4SImode:
      if (pattern389 (x1, E_V4SImode, E_V4HImode) != 0)
        return -1;
      return 1;

    case E_V2DImode:
      if (pattern389 (x1, E_V2DImode, E_V2SImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern391 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !register_operand (operands[1], i2)
      || !register_operand (operands[2], i2)
      || !register_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern392 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XVECEXP (x2, 0, 0);
  operands[1] = x3;
  x4 = XVECEXP (x2, 0, 1);
  operands[2] = x4;
  x5 = XEXP (x1, 1);
  operands[3] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V2SImode:
      return pattern391 (x1, E_V2SImode, E_V8QImode); /* [-1, 0] */

    case E_V4SImode:
      if (pattern391 (x1, E_V4SImode, E_V16QImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern393 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != E_V4SImode
      || !register_operand (operands[0], E_V4SImode)
      || GET_MODE (x1) != E_V4SImode)
    return -1;
  x3 = XVECEXP (x2, 0, 0);
  operands[2] = x3;
  if (!register_operand (operands[2], E_V16QImode))
    return -1;
  x4 = XVECEXP (x2, 0, 1);
  operands[3] = x4;
  if (!register_operand (operands[3], E_V16QImode))
    return -1;
  x5 = XEXP (x1, 1);
  operands[1] = x5;
  if (!register_operand (operands[1], E_V4SImode))
    return -1;
  return 0;
}

static int
pattern394 (rtx x1, rtx_code i1, machine_mode i2, rtx_code i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (GET_MODE (x1) != i2)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != i3
      || GET_MODE (x2) != i2)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != i1)
    return -1;
  return 0;
}

static int
pattern395 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x2, 0);
  operands[2] = x3;
  if (!s_register_operand (operands[2], i1))
    return -1;
  x4 = XEXP (x1, 1);
  operands[1] = x4;
  if (!s_register_operand (operands[1], i1))
    return -1;
  return 0;
}

static int
pattern396 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x2, 0);
  if (!s_register_operand (x3, i1))
    return -1;
  x4 = XEXP (x1, 1);
  if (!s_register_operand (x4, i1))
    return -1;
  return 0;
}

static int
pattern397 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x2, 0);
  operands[1] = x3;
  if (!nonimmediate_operand (operands[1], i2))
    return -1;
  x4 = XEXP (x1, 1);
  operands[3] = x4;
  if (!s_register_operand (operands[3], i1))
    return -1;
  x5 = XEXP (x1, 2);
  operands[2] = x5;
  return 0;
}

static int
pattern398 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != ASHIFT
      || GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x1, 1);
  if (GET_CODE (x4) != ZERO_EXTEND
      || GET_MODE (x4) != E_SImode)
    return -1;
  x5 = XEXP (x4, 0);
  if (!subreg_lowpart_operator (x5, E_VOIDmode))
    return -1;
  operands[5] = x5;
  x6 = XEXP (x3, 0);
  operands[1] = x6;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x7 = XEXP (x3, 1);
  operands[2] = x7;
  if (!const_int_operand (operands[2], E_SImode))
    return -1;
  x8 = XEXP (x2, 1);
  operands[3] = x8;
  if (!const_int_operand (operands[3], E_SImode))
    return -1;
  x9 = XEXP (x5, 0);
  operands[4] = x9;
  if (!s_register_operand (operands[4], E_SImode))
    return -1;
  return 0;
}

static int
pattern399 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (GET_MODE (x1) != i1)
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_SFmode:
      if (!s_register_operand (operands[0], E_SFmode)
          || !vfp_compare_operand (operands[1], E_SFmode))
        return -1;
      return 0;

    case E_DFmode:
      if (!s_register_operand (operands[0], E_DFmode)
          || !vfp_compare_operand (operands[1], E_DFmode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern400 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XVECEXP (x2, 0, 1);
  if (GET_CODE (x3) != CLOBBER)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != REG
      || REGNO (x4) != 100
      || GET_MODE (x4) != E_CCmode)
    return -1;
  x5 = XEXP (x1, 0);
  operands[2] = x5;
  x6 = XEXP (x5, 0);
  operands[3] = x6;
  return 0;
}

static int
pattern401 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XVECEXP (x1, 0, 1);
  x5 = XEXP (x4, 1);
  if (XVECLEN (x5, 0) != 1
      || XINT (x5, 1) != 28
      || GET_MODE (x5) != E_CCmode)
    return -1;
  x6 = XVECEXP (x5, 0, 0);
  if (GET_CODE (x6) != REG
      || REGNO (x6) != 104
      || GET_MODE (x6) != E_CCmode)
    return -1;
  x7 = XEXP (x4, 0);
  if (GET_CODE (x7) != REG
      || REGNO (x7) != 104
      || GET_MODE (x7) != E_CCmode)
    return -1;
  x8 = XEXP (x2, 0);
  operands[0] = x8;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x9 = XVECEXP (x3, 0, 0);
  operands[1] = x9;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x10 = XVECEXP (x3, 0, 1);
  operands[2] = x10;
  if (!s_register_operand (operands[2], E_SImode))
    return -1;
  x11 = XVECEXP (x3, 0, 2);
  operands[3] = x11;
  if (!s_register_operand (operands[3], E_SImode))
    return -1;
  return 0;
}

static int
pattern402 (rtx x1, int i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 1);
  if (XVECLEN (x3, 0) != 3
      || XINT (x3, 1) != i1
      || GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 0);
  operands[0] = x5;
  x6 = XEXP (x4, 1);
  x7 = XVECEXP (x6, 0, 0);
  operands[2] = x7;
  x8 = XVECEXP (x6, 0, 1);
  operands[3] = x8;
  if (!s_register_operand (operands[3], E_SImode))
    return -1;
  x9 = XVECEXP (x6, 0, 2);
  operands[4] = x9;
  if (!mve_imm_32 (operands[4], E_SImode))
    return -1;
  x10 = XEXP (x2, 0);
  operands[1] = x10;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x11 = XVECEXP (x3, 0, 0);
  if (!rtx_equal_p (x11, operands[2]))
    return -1;
  x12 = XVECEXP (x3, 0, 1);
  if (!rtx_equal_p (x12, operands[3]))
    return -1;
  x13 = XVECEXP (x3, 0, 2);
  if (!rtx_equal_p (x13, operands[4]))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      if (!s_register_operand (operands[0], E_V16QImode)
          || GET_MODE (x6) != E_V16QImode
          || !s_register_operand (operands[2], E_V16QImode))
        return -1;
      return 0;

    case E_V8HImode:
      if (!s_register_operand (operands[0], E_V8HImode)
          || GET_MODE (x6) != E_V8HImode
          || !s_register_operand (operands[2], E_V8HImode))
        return -1;
      return 1;

    case E_V4SImode:
      if (!s_register_operand (operands[0], E_V4SImode)
          || GET_MODE (x6) != E_V4SImode
          || !s_register_operand (operands[2], E_V4SImode))
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern403 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      if (!s_register_operand (operands[0], E_V16QImode)
          || GET_MODE (x1) != E_V16QImode)
        return -1;
      return 0;

    case E_V8HImode:
      if (!s_register_operand (operands[0], E_V8HImode)
          || GET_MODE (x1) != E_V8HImode)
        return -1;
      return 1;

    case E_V4SImode:
      if (!s_register_operand (operands[0], E_V4SImode)
          || GET_MODE (x1) != E_V4SImode)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern404 (rtx x1, int i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XVECEXP (x3, 0, 1);
  if (GET_CODE (x4) != SUBREG
      || maybe_ne (SUBREG_BYTE (x4), 4)
      || GET_MODE (x4) != E_SImode)
    return -1;
  x5 = XVECEXP (x1, 0, 1);
  x6 = XEXP (x5, 1);
  if (XVECLEN (x6, 0) != 3
      || XINT (x6, 1) != i1
      || GET_MODE (x6) != E_SImode)
    return -1;
  x7 = XVECEXP (x6, 0, 1);
  if (GET_CODE (x7) != SUBREG
      || maybe_ne (SUBREG_BYTE (x7), 4)
      || GET_MODE (x7) != E_SImode)
    return -1;
  x8 = XEXP (x2, 0);
  operands[0] = x8;
  x9 = XVECEXP (x3, 0, 0);
  operands[2] = x9;
  if (!s_register_operand (operands[2], E_SImode))
    return -1;
  x10 = XEXP (x4, 0);
  operands[3] = x10;
  if (!s_register_operand (operands[3], E_DImode))
    return -1;
  x11 = XVECEXP (x3, 0, 2);
  operands[4] = x11;
  if (!mve_imm_selective_upto_8 (operands[4], E_SImode))
    return -1;
  x12 = XEXP (x5, 0);
  operands[1] = x12;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x13 = XVECEXP (x6, 0, 0);
  if (!rtx_equal_p (x13, operands[2]))
    return -1;
  x14 = XEXP (x7, 0);
  if (!rtx_equal_p (x14, operands[3]))
    return -1;
  x15 = XVECEXP (x6, 0, 2);
  if (!rtx_equal_p (x15, operands[4]))
    return -1;
  return pattern403 (x3); /* [-1, 2] */
}

static int
pattern405 (rtx x1, int i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != E_BLKmode)
    return -1;
  x4 = XEXP (x2, 0);
  if (GET_CODE (x4) != MEM
      || GET_MODE (x4) != E_BLKmode)
    return -1;
  x5 = XEXP (x4, 0);
  if (GET_CODE (x5) != SCRATCH)
    return -1;
  x6 = XVECEXP (x1, 0, 1);
  x7 = XEXP (x6, 1);
  if (XVECLEN (x7, 0) != 2
      || XINT (x7, 1) != i1
      || GET_MODE (x7) != i2)
    return -1;
  x8 = XVECEXP (x3, 0, 0);
  operands[1] = x8;
  if (!s_register_operand (operands[1], i2))
    return -1;
  x9 = XVECEXP (x3, 0, 1);
  operands[2] = x9;
  if (!mve_vldrd_immediate (operands[2], E_SImode))
    return -1;
  x10 = XVECEXP (x3, 0, 2);
  operands[3] = x10;
  if (!s_register_operand (operands[3], i2))
    return -1;
  x11 = XEXP (x6, 0);
  operands[0] = x11;
  if (!s_register_operand (operands[0], i2))
    return -1;
  x12 = XVECEXP (x7, 0, 0);
  if (!rtx_equal_p (x12, operands[1]))
    return -1;
  x13 = XVECEXP (x7, 0, 1);
  if (!rtx_equal_p (x13, operands[2]))
    return -1;
  return 0;
}

static int
pattern406 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[2] = x4;
  if (!s_register_operand (operands[2], i1))
    return -1;
  x5 = XVECEXP (x3, 0, 1);
  operands[3] = x5;
  if (!mve_vldrd_immediate (operands[3], E_SImode))
    return -1;
  x6 = XVECEXP (x1, 0, 1);
  x7 = XEXP (x6, 0);
  operands[1] = x7;
  if (!s_register_operand (operands[1], i1))
    return -1;
  x8 = XEXP (x6, 1);
  x9 = XVECEXP (x8, 0, 0);
  if (!rtx_equal_p (x9, operands[2]))
    return -1;
  x10 = XVECEXP (x8, 0, 1);
  if (!rtx_equal_p (x10, operands[3]))
    return -1;
  return 0;
}

static int
pattern407 (rtx x1, int i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != i2)
    return -1;
  x4 = XVECEXP (x3, 0, 2);
  if (GET_CODE (x4) != MEM
      || GET_MODE (x4) != E_BLKmode)
    return -1;
  x5 = XEXP (x4, 0);
  if (GET_CODE (x5) != SCRATCH)
    return -1;
  x6 = XVECEXP (x1, 0, 1);
  x7 = XEXP (x6, 1);
  if (XVECLEN (x7, 0) != 2
      || XINT (x7, 1) != i1
      || GET_MODE (x7) != i2)
    return -1;
  x8 = XEXP (x2, 0);
  operands[0] = x8;
  if (!s_register_operand (operands[0], i2)
      || pattern406 (x1, i2) != 0)
    return -1;
  return 0;
}

static int
pattern408 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (GET_MODE (x1) != E_SImode)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != PLUS
      || GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != CONST_INT)
    return -1;
  return 0;
}

static int
pattern409 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !s_register_operand (operands[1], i1)
      || !s_register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern410 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], E_SImode)
      || GET_MODE (x1) != E_SImode
      || !s_register_operand (operands[1], E_SImode)
      || !reg_or_int_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern411 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1
      || !s_register_operand (operands[1], i1)
      || !neon_logic_op2 (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern412 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i3)
      || GET_MODE (x1) != i3)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i2
      || !register_operand (operands[1], i1))
    return -1;
  return 0;
}

static int
pattern413 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) != E_SImode
      || !s_register_operand (operands[0], E_SImode)
      || GET_MODE (x3) != E_SImode)
    return -1;
  x5 = XEXP (x3, 1);
  operands[1] = x5;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x6 = XEXP (x4, 0);
  switch (GET_CODE (x6))
    {
    case REG:
    case SUBREG:
      operands[2] = x6;
      if (!s_register_operand (operands[2], E_SImode))
        return -1;
      x7 = XEXP (x1, 0);
      operands[3] = x7;
      x8 = XEXP (x7, 0);
      operands[4] = x8;
      return 0;

    case MULT:
    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      operands[4] = x6;
      if (!shift_operator (operands[4], E_SImode))
        return -1;
      x7 = XEXP (x1, 0);
      operands[5] = x7;
      x8 = XEXP (x7, 0);
      operands[6] = x8;
      return 1;

    default:
      return -1;
    }
}

static int
pattern414 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) != E_SImode)
    return -1;
  x5 = XEXP (x1, 0);
  operands[4] = x5;
  x6 = XEXP (x5, 0);
  operands[5] = x6;
  if (!s_register_operand (operands[0], E_SImode)
      || GET_MODE (x3) != E_SImode)
    return -1;
  x7 = XEXP (x4, 0);
  operands[2] = x7;
  if (!s_register_operand (operands[2], E_SImode))
    return -1;
  x8 = XEXP (x4, 1);
  operands[3] = x8;
  if (!power_of_two_operand (operands[3], E_SImode))
    return -1;
  x9 = XEXP (x3, 1);
  operands[1] = x9;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  return 0;
}

static int
pattern415 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], E_SImode)
      || GET_MODE (x1) != E_SImode
      || !s_register_operand (operands[1], E_SImode)
      || !reg_or_int_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern416 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  operands[2] = x2;
  switch (GET_MODE (operands[0]))
    {
    case E_SImode:
      return pattern415 (x1); /* [-1, 0] */

    case E_DImode:
      if (pattern345 (x1, E_DImode) != 0)
        return -1;
      return 1;

    case E_V2SImode:
      if (pattern345 (x1, E_V2SImode) != 0)
        return -1;
      return 2;

    case E_V4HImode:
      if (pattern345 (x1, E_V4HImode) != 0)
        return -1;
      return 3;

    case E_V8QImode:
      if (pattern345 (x1, E_V8QImode) != 0)
        return -1;
      return 4;

    default:
      return -1;
    }
}

static int
pattern417 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  operands[1] = x4;
  x5 = XEXP (x1, 0);
  operands[3] = x5;
  x6 = XEXP (x5, 0);
  operands[4] = x6;
  return pattern416 (x3); /* [-1, 4] */
}

static int
pattern418 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) != E_SImode
      || !s_register_operand (operands[0], E_SImode)
      || GET_MODE (x3) != E_SImode)
    return -1;
  x5 = XEXP (x4, 0);
  operands[3] = x5;
  x6 = XEXP (x4, 1);
  operands[1] = x6;
  if (!const_int_operand (operands[1], E_SImode))
    return -1;
  x7 = XEXP (x3, 1);
  operands[2] = x7;
  if (!const_int_operand (operands[2], E_SImode))
    return -1;
  switch (GET_CODE (operands[3]))
    {
    case REG:
    case SUBREG:
      if (!s_register_operand (operands[3], E_SImode))
        return -1;
      x8 = XEXP (x1, 0);
      operands[4] = x8;
      x9 = XEXP (x8, 0);
      operands[5] = x9;
      return 0;

    case MULT:
    case ASHIFT:
    case ASHIFTRT:
      if (!sat_shift_operator (operands[3], E_SImode))
        return -1;
      x8 = XEXP (x1, 0);
      operands[6] = x8;
      x9 = XEXP (x8, 0);
      operands[7] = x9;
      x10 = XEXP (x5, 0);
      operands[4] = x10;
      if (!s_register_operand (operands[4], E_SImode))
        return -1;
      x11 = XEXP (x5, 1);
      operands[5] = x11;
      if (!const_int_operand (operands[5], E_SImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern419 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[2] = x2;
  x3 = XEXP (x2, 0);
  operands[3] = x3;
  x4 = XEXP (x1, 1);
  x5 = XEXP (x4, 0);
  operands[0] = x5;
  x6 = XEXP (x4, 1);
  x7 = XVECEXP (x6, 0, 0);
  operands[1] = x7;
  switch (GET_MODE (operands[0]))
    {
    case E_SImode:
      if (!s_register_operand (operands[0], E_SImode)
          || GET_MODE (x6) != E_SImode
          || !mem_noofs_operand (operands[1], E_SImode))
        return -1;
      return 0;

    case E_DImode:
      if (!s_register_operand (operands[0], E_DImode)
          || GET_MODE (x6) != E_DImode
          || !mem_noofs_operand (operands[1], E_DImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern420 (rtx x1, rtx_code i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) != E_V4HImode)
    return -1;
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != VEC_SELECT
      || GET_MODE (x5) != E_V4HImode)
    return -1;
  x6 = XEXP (x5, 1);
  if (GET_CODE (x6) != PARALLEL
      || XVECLEN (x6, 0) != 4)
    return -1;
  x7 = XVECEXP (x6, 0, 0);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x8 = XVECEXP (x6, 0, 1);
  if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x9 = XVECEXP (x6, 0, 2);
  if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
    return -1;
  x10 = XVECEXP (x6, 0, 3);
  if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
    return -1;
  x11 = XEXP (x3, 1);
  if (GET_CODE (x11) != i1
      || GET_MODE (x11) != E_V4HImode)
    return -1;
  x12 = XEXP (x11, 1);
  if (GET_CODE (x12) != VEC_SELECT
      || GET_MODE (x12) != E_V4HImode)
    return -1;
  x13 = XEXP (x12, 1);
  if (GET_CODE (x13) != PARALLEL
      || XVECLEN (x13, 0) != 4)
    return -1;
  x14 = XVECEXP (x13, 0, 0);
  if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x15 = XVECEXP (x13, 0, 1);
  if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x16 = XVECEXP (x13, 0, 2);
  if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
    return -1;
  x17 = XVECEXP (x13, 0, 3);
  if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
    return -1;
  x18 = XEXP (x3, 2);
  if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 10])
    return -1;
  x19 = XEXP (x1, 0);
  operands[3] = x19;
  x20 = XEXP (x19, 0);
  operands[4] = x20;
  if (!register_operand (operands[0], E_V4HImode)
      || GET_MODE (x3) != E_V4HImode)
    return -1;
  x21 = XEXP (x4, 0);
  operands[1] = x21;
  if (!register_operand (operands[1], E_V4HImode))
    return -1;
  x22 = XEXP (x5, 0);
  operands[2] = x22;
  if (!register_operand (operands[2], E_V4HImode))
    return -1;
  x23 = XEXP (x11, 0);
  if (!rtx_equal_p (x23, operands[1]))
    return -1;
  x24 = XEXP (x12, 0);
  if (!rtx_equal_p (x24, operands[2]))
    return -1;
  return 0;
}

static int
pattern421 (rtx x1, machine_mode i1, rtx_code i2, rtx_code i3, machine_mode i4)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (GET_MODE (x1) != i4)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != i3
      || GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != i2
      || GET_MODE (x3) != i1)
    return -1;
  return 0;
}

static int
pattern422 (rtx x1, rtx_code i1, rtx_code i2, machine_mode i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != i2
      || GET_MODE (x1) != E_SImode)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != i1
      || GET_MODE (x2) != i3)
    return -1;
  return 0;
}

static int
pattern423 (rtx x1, rtx_code i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x2) != SET)
    return -1;
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != i1
      || GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case NE:
    case EQ:
    case GE:
    case GT:
    case LE:
    case LT:
    case GEU:
    case GTU:
    case LEU:
    case LTU:
    case UNORDERED:
    case ORDERED:
    case UNGE:
    case UNGT:
    case UNLE:
    case UNLT:
      if (!rtx_equal_p (x4, operands[3]))
        return -1;
      x5 = XEXP (x3, 1);
      switch (GET_CODE (x5))
        {
        case NE:
        case EQ:
        case GE:
        case GT:
        case LE:
        case LT:
        case GEU:
        case GTU:
        case LEU:
        case LTU:
        case UNORDERED:
        case ORDERED:
        case UNGE:
        case UNGT:
        case UNLE:
        case UNLT:
          if (!rtx_equal_p (x5, operands[6]))
            return -1;
          x6 = XVECEXP (x1, 0, 0);
          x7 = XEXP (x6, 0);
          operands[0] = x7;
          if (!dominant_cc_register (operands[0], E_VOIDmode))
            return -1;
          x8 = XEXP (x6, 1);
          x9 = XEXP (x8, 0);
          x10 = XEXP (x9, 0);
          x11 = XEXP (x10, 0);
          operands[1] = x11;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x12 = XEXP (x10, 1);
          operands[2] = x12;
          if (!arm_add_operand (operands[2], E_SImode))
            return -1;
          x13 = XEXP (x9, 1);
          x14 = XEXP (x13, 0);
          operands[4] = x14;
          if (!s_register_operand (operands[4], E_SImode))
            return -1;
          x15 = XEXP (x13, 1);
          operands[5] = x15;
          if (!arm_add_operand (operands[5], E_SImode))
            return -1;
          x16 = XEXP (x2, 0);
          operands[7] = x16;
          if (!s_register_operand (operands[7], E_SImode))
            return -1;
          return 0;

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern424 (rtx x1, rtx_code i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 0);
  operands[3] = x5;
  if (!arm_comparison_operator (operands[3], E_SImode))
    return -1;
  x6 = XEXP (x4, 1);
  if (!arm_comparison_operator (x6, E_SImode))
    return -1;
  operands[6] = x6;
  return pattern423 (x1, i1); /* [-1, 0] */
}

static int
pattern425 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != 100
      || GET_MODE (x3) != E_CCmode
      || !s_register_operand (operands[0], E_SImode))
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 1);
  if (GET_MODE (x5) != E_SImode)
    return -1;
  x6 = XEXP (x5, 0);
  x7 = XEXP (x6, 0);
  operands[1] = x7;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x8 = XEXP (x6, 1);
  operands[2] = x8;
  if (!arm_rhs_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern426 (rtx x1, rtx_code i1, machine_mode i2, rtx_code i3, rtx_code i4)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != i4
      || GET_MODE (x1) != E_SImode)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != i3
      || GET_MODE (x2) != i2)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != i1
      || GET_MODE (x3) != E_DImode)
    return -1;
  return 0;
}

static int
pattern427 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 1);
  if (XWINT (x5, 0) != 0L)
    return -1;
  x6 = XEXP (x3, 1);
  if (GET_CODE (x6) != LABEL_REF)
    return -1;
  x7 = XEXP (x3, 2);
  if (GET_CODE (x7) != PC)
    return -1;
  x8 = XEXP (x2, 0);
  if (GET_CODE (x8) != PC)
    return -1;
  x9 = XVECEXP (x1, 0, 1);
  return pattern293 (x9); /* [-1, 0] */
}

static int
pattern428 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x2) != CLOBBER)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != 100
      || GET_MODE (x3) != E_CCmode)
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 1);
  x6 = XEXP (x5, 0);
  operands[1] = x6;
  if (!s_register_operand (operands[1], E_SImode)
      || !arm_rhs_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern429 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x1, 1);
  if (GET_MODE (x3) != i1)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) != i2)
    return -1;
  x5 = XEXP (x4, 0);
  x6 = XEXP (x5, 0);
  operands[2] = x6;
  if (!s_register_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern430 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  if (GET_MODE (x2) != i1
      || !register_operand (operands[1], i1)
      || !register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern431 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (GET_MODE (operands[0]))
    {
    case E_SImode:
      if (!s_register_operand (operands[0], E_SImode)
          || GET_MODE (x1) != E_SImode)
        return -1;
      return 0;

    case E_DImode:
      if (!s_register_operand (operands[0], E_DImode)
          || GET_MODE (x1) != E_DImode)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern432 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
      || !s_register_operand (operands[0], E_SImode)
      || GET_MODE (x1) != E_SImode)
    return -1;
  x3 = XEXP (x1, 0);
  x4 = XEXP (x3, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x5 = XEXP (x3, 1);
  operands[2] = x5;
  if (!const_int_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern433 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x2, 0);
  operands[2] = x3;
  if (!s_register_operand (operands[2], i1))
    return -1;
  x4 = XEXP (x2, 1);
  operands[3] = x4;
  if (!s_register_operand (operands[3], i1)
      || !s_register_operand (operands[1], i1))
    return -1;
  return 0;
}

static int
pattern434 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1
      || !s_register_operand (operands[1], i1)
      || !neon_inv_logic_op2 (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern435 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !s_register_operand (operands[2], i1)
      || !s_register_operand (operands[1], i1))
    return -1;
  return 0;
}

static int
pattern436 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!mem_noofs_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  if (GET_MODE (x2) != i1
      || !reg_or_int_operand (operands[1], i1))
    return -1;
  return 0;
}

static int
pattern437 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  operands[1] = x3;
  x4 = XEXP (x2, 0);
  if (!rtx_equal_p (x4, operands[0]))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_QImode:
      return pattern436 (x1, E_QImode); /* [-1, 0] */

    case E_HImode:
      if (pattern436 (x1, E_HImode) != 0)
        return -1;
      return 1;

    case E_SImode:
      if (pattern436 (x1, E_SImode) != 0)
        return -1;
      return 2;

    case E_DImode:
      if (!mem_noofs_operand (operands[0], E_DImode)
          || GET_MODE (x1) != E_DImode
          || GET_MODE (x2) != E_DImode
          || !s_register_operand (operands[1], E_DImode))
        return -1;
      return 3;

    default:
      return -1;
    }
}

static int
pattern438 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !s_register_operand (operands[1], i1)
      || !s_register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern439 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1
      || !register_operand (operands[1], i1)
      || !register_operand (operands[2], i1)
      || !register_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern440 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1
      || !register_operand (operands[1], i1)
      || !register_operand (operands[2], i1))
    return -1;
  x2 = XEXP (x1, 2);
  if (GET_MODE (x2) != i1
      || !register_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern441 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !register_operand (operands[1], i1)
      || !register_operand (operands[2], i1)
      || !register_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern442 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !register_operand (operands[1], i1)
      || !register_operand (operands[2], i1))
    return -1;
  x3 = XEXP (x1, 2);
  if (GET_MODE (x3) != i1
      || !register_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern443 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  switch (GET_CODE (x1))
    {
    case VEC_SELECT:
      x2 = XEXP (x1, 0);
      operands[3] = x2;
      x3 = XEXP (x1, 1);
      operands[5] = x3;
      switch (GET_MODE (operands[0]))
        {
        case E_V2SFmode:
          return 0;

        case E_V4SFmode:
          return 1;

        default:
          return -1;
        }

    case VEC_DUPLICATE:
      x2 = XEXP (x1, 0);
      if (GET_CODE (x2) != VEC_SELECT
          || GET_MODE (x2) != E_HFmode)
        return -1;
      x4 = XEXP (x2, 1);
      if (GET_CODE (x4) != PARALLEL
          || XVECLEN (x4, 0) != 1)
        return -1;
      x5 = XEXP (x2, 0);
      operands[3] = x5;
      x6 = XVECEXP (x4, 0, 0);
      operands[5] = x6;
      if (!const_int_operand (operands[5], E_SImode))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case E_V2SFmode:
          return 2;

        case E_V4SFmode:
          return 3;

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern444 (rtx x1, int i1, int i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != E_V2SImode)
    return -1;
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != PARALLEL
      || XVECLEN (x3, 0) != 2)
    return -1;
  x4 = XVECEXP (x3, 0, 0);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + i2])
    return -1;
  x5 = XVECEXP (x3, 0, 1);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
    return -1;
  x6 = XEXP (x1, 1);
  if (GET_CODE (x6) != VEC_SELECT
      || GET_MODE (x6) != E_V2SImode)
    return -1;
  x7 = XEXP (x6, 1);
  if (GET_CODE (x7) != PARALLEL
      || XVECLEN (x7, 0) != 2)
    return -1;
  return 0;
}

static int
pattern445 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  if (!shift_nomul_operator (operands[2], E_SImode))
    return -1;
  x2 = XEXP (x1, 0);
  operands[5] = x2;
  x3 = XEXP (x2, 0);
  operands[6] = x3;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x4 = XEXP (x1, 1);
  x5 = XEXP (x4, 1);
  if (GET_MODE (x5) != E_SImode)
    return -1;
  x6 = XEXP (x5, 0);
  x7 = XEXP (x6, 0);
  operands[3] = x7;
  if (!s_register_operand (operands[3], E_SImode))
    return -1;
  x8 = XEXP (x6, 1);
  operands[4] = x8;
  if (!shift_amount_operand (operands[4], E_SImode))
    return -1;
  x9 = XEXP (x5, 1);
  operands[1] = x9;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  return 0;
}

static int
pattern446 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  operands[4] = x3;
  x4 = XEXP (x1, 1);
  x5 = XEXP (x4, 1);
  x6 = XEXP (x5, 0);
  operands[1] = x6;
  x7 = XEXP (x5, 1);
  operands[2] = x7;
  switch (GET_MODE (operands[0]))
    {
    case E_V4HImode:
      if (!register_operand (operands[0], E_V4HImode)
          || GET_MODE (x5) != E_V4HImode
          || !register_operand (operands[1], E_V4HImode))
        return -1;
      return 0;

    case E_V2SImode:
      if (!register_operand (operands[0], E_V2SImode)
          || GET_MODE (x5) != E_V2SImode
          || !register_operand (operands[1], E_V2SImode))
        return -1;
      return 1;

    case E_DImode:
      if (!register_operand (operands[0], E_DImode)
          || GET_MODE (x5) != E_DImode
          || !register_operand (operands[1], E_DImode))
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern447 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != i1)
    return -1;
  x4 = XEXP (x1, 0);
  operands[2] = x4;
  x5 = XEXP (x4, 0);
  operands[3] = x5;
  if (!register_operand (operands[0], i1))
    return -1;
  x6 = XVECEXP (x3, 0, 0);
  operands[1] = x6;
  switch (GET_MODE (operands[1]))
    {
    case E_V8QImode:
      if (!register_operand (operands[1], E_V8QImode))
        return -1;
      return 0;

    case E_V4HImode:
      if (!register_operand (operands[1], E_V4HImode))
        return -1;
      return 1;

    case E_V2SImode:
      if (!register_operand (operands[1], E_V2SImode))
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern448 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[2] = x2;
  x3 = XEXP (x2, 0);
  operands[3] = x3;
  x4 = XEXP (x1, 1);
  x5 = XEXP (x4, 1);
  x6 = XVECEXP (x5, 0, 0);
  operands[1] = x6;
  switch (GET_MODE (operands[0]))
    {
    case E_SFmode:
      if (!register_operand (operands[0], E_SFmode)
          || GET_MODE (x5) != E_SFmode
          || !register_operand (operands[1], E_SFmode))
        return -1;
      return 0;

    case E_DFmode:
      if (!register_operand (operands[0], E_DFmode)
          || GET_MODE (x5) != E_DFmode
          || !register_operand (operands[1], E_DFmode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern449 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[2] = x2;
  x3 = XEXP (x2, 0);
  operands[3] = x3;
  x4 = XEXP (x1, 1);
  x5 = XEXP (x4, 1);
  x6 = XEXP (x5, 0);
  x7 = XEXP (x6, 0);
  operands[1] = x7;
  x8 = XEXP (x5, 1);
  switch (XVECLEN (x8, 0))
    {
    case 4:
      x9 = XVECEXP (x8, 0, 0);
      if (GET_CODE (x9) != CONST_INT)
        return -1;
      x10 = XVECEXP (x8, 0, 1);
      if (GET_CODE (x10) != CONST_INT)
        return -1;
      x11 = XVECEXP (x8, 0, 2);
      if (GET_CODE (x11) != CONST_INT)
        return -1;
      x12 = XVECEXP (x8, 0, 3);
      if (GET_CODE (x12) != CONST_INT
          || !register_operand (operands[0], E_V4HImode)
          || GET_MODE (x5) != E_V4HImode
          || GET_MODE (x6) != E_V8HImode
          || !register_operand (operands[1], E_V8QImode))
        return -1;
      switch (XWINT (x9, 0))
        {
        case 4L:
          if (XWINT (x10, 0) != 5L
              || XWINT (x11, 0) != 6L
              || XWINT (x12, 0) != 7L)
            return -1;
          return 0;

        case 0L:
          if (XWINT (x10, 0) != 1L
              || XWINT (x11, 0) != 2L
              || XWINT (x12, 0) != 3L)
            return -1;
          return 1;

        default:
          return -1;
        }

    case 2:
      x9 = XVECEXP (x8, 0, 0);
      if (GET_CODE (x9) != CONST_INT)
        return -1;
      x10 = XVECEXP (x8, 0, 1);
      if (GET_CODE (x10) != CONST_INT
          || !register_operand (operands[0], E_V2SImode)
          || GET_MODE (x5) != E_V2SImode
          || GET_MODE (x6) != E_V4SImode
          || !register_operand (operands[1], E_V4HImode))
        return -1;
      switch (XWINT (x9, 0))
        {
        case 2L:
          if (XWINT (x10, 0) != 3L)
            return -1;
          return 2;

        case 0L:
          if (XWINT (x10, 0) != 1L)
            return -1;
          return 3;

        default:
          return -1;
        }

    case 1:
      x9 = XVECEXP (x8, 0, 0);
      if (GET_CODE (x9) != CONST_INT
          || !register_operand (operands[0], E_DImode)
          || GET_MODE (x5) != E_DImode
          || GET_MODE (x6) != E_V2DImode
          || !register_operand (operands[1], E_V2SImode))
        return -1;
      switch (XWINT (x9, 0))
        {
        case 1L:
          return 4;

        case 0L:
          return 5;

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern450 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XVECEXP (x2, 0, 1);
  if (GET_CODE (x3) != CLOBBER)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != REG
      || REGNO (x4) != 100
      || GET_MODE (x4) != E_CCmode)
    return -1;
  x5 = XEXP (x1, 0);
  operands[2] = x5;
  x6 = XEXP (x5, 0);
  operands[3] = x6;
  x7 = XVECEXP (x2, 0, 0);
  x8 = XEXP (x7, 0);
  operands[0] = x8;
  return 0;
}

static int
pattern451 ()
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[2], E_V16QImode))
    return -1;
  switch (GET_MODE (operands[1]))
    {
    case E_V16QImode:
      if (!s_register_operand (operands[1], E_V16QImode))
        return -1;
      return 0;

    case E_OImode:
      if (!s_register_operand (operands[1], E_OImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern452 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != E_CCmode)
    return -1;
  x4 = XEXP (x2, 1);
  if (GET_MODE (x4) != E_CCmode)
    return -1;
  x5 = XEXP (x4, 0);
  operands[1] = x5;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x6 = XVECEXP (x1, 0, 1);
  x7 = XEXP (x6, 0);
  operands[0] = x7;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  return 0;
}

static int
pattern453 (rtx x1, machine_mode i1, rtx_code i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x2) != SET)
    return -1;
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != i2
      || GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 0);
  if (GET_MODE (x5) != i1)
    return -1;
  x6 = XEXP (x4, 1);
  if (GET_MODE (x6) != i1)
    return -1;
  return 0;
}

static int
pattern454 (rtx x1, rtx_code i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != SET)
    return -1;
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) != i1
      || GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != i1
      || GET_MODE (x3) != E_SImode)
    return -1;
  return 0;
}

static int
pattern455 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x5 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x5) != CLOBBER)
    return -1;
  x6 = XEXP (x5, 0);
  if (GET_CODE (x6) != REG
      || REGNO (x6) != 100
      || GET_MODE (x6) != E_CCmode
      || !arm_rhs_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern456 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) != E_SImode)
    return -1;
  x5 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x5) != SET)
    return -1;
  x6 = XEXP (x5, 1);
  if (GET_CODE (x6) != UNSPEC
      || XVECLEN (x6, 0) != 1
      || XINT (x6, 1) != 28
      || GET_MODE (x6) != E_CCmode)
    return -1;
  x7 = XVECEXP (x6, 0, 0);
  if (GET_CODE (x7) != REG
      || REGNO (x7) != 104
      || GET_MODE (x7) != E_CCmode)
    return -1;
  x8 = XEXP (x5, 0);
  if (GET_CODE (x8) != REG
      || REGNO (x8) != 104
      || GET_MODE (x8) != E_CCmode)
    return -1;
  x9 = XEXP (x4, 0);
  operands[3] = x9;
  if (!s_register_operand (operands[3], E_SImode))
    return -1;
  x10 = XEXP (x4, 1);
  operands[1] = x10;
  if (!const_int_operand (operands[1], E_SImode)
      || !const_int_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern457 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 2);
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != MEM
      || GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != PLUS
      || GET_MODE (x4) != E_SImode)
    return -1;
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != CONST_INT)
    return -1;
  x6 = XVECEXP (x1, 0, 3);
  x7 = XEXP (x6, 1);
  if (GET_CODE (x7) != MEM
      || GET_MODE (x7) != E_SImode)
    return -1;
  return 0;
}

static int
pattern458 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != PLUS
      || GET_MODE (x4) != E_SImode)
    return -1;
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != CONST_INT
      || pattern457 (x1) != 0)
    return -1;
  return 0;
}

static int
pattern459 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != MEM
      || GET_MODE (x1) != E_SImode)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != PLUS
      || GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != CONST_INT)
    return -1;
  return 0;
}

static int
pattern460 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], E_SImode)
      || GET_MODE (x1) != E_SImode)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != E_SImode
      || !s_register_operand (operands[1], E_HImode))
    return -1;
  return 0;
}

static int
pattern461 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i2)
      || GET_MODE (x1) != i2
      || pattern341 (x1, i1, i2) != 0)
    return -1;
  return 0;
}

static int
pattern462 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (GET_MODE (operands[0]))
    {
    case E_SImode:
      if (!s_register_operand (operands[0], E_SImode)
          || GET_MODE (x1) != E_SImode
          || !s_register_operand (operands[2], E_SImode))
        return -1;
      return 0;

    case E_DImode:
      if (!s_register_operand (operands[0], E_DImode)
          || GET_MODE (x1) != E_DImode
          || !s_register_operand (operands[2], E_DImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern463 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1
      || !register_operand (operands[2], i1)
      || !const_int_vcde1_operand (operands[3], E_SImode))
    return -1;
  return 0;
}

static int
pattern464 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1
      || !register_operand (operands[2], i1)
      || !const_int_vcde2_operand (operands[3], E_SImode))
    return -1;
  return 0;
}

static int
pattern465 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1
      || !neon_struct_operand (operands[1], i2)
      || !s_register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern466 (rtx x1, int i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], E_V16QImode))
    return -1;
  switch (GET_CODE (x1))
    {
    case REG:
    case SUBREG:
      operands[1] = x1;
      if (!register_operand (operands[1], E_V16QImode))
        return -1;
      return 0;

    case UNSPEC:
      if (XVECLEN (x1, 0) != 1
          || XINT (x1, 1) != i1
          || GET_MODE (x1) != E_V16QImode)
        return -1;
      x2 = XVECEXP (x1, 0, 0);
      if (GET_CODE (x2) != XOR
          || GET_MODE (x2) != E_V16QImode)
        return -1;
      x3 = XEXP (x2, 0);
      operands[1] = x3;
      if (!register_operand (operands[1], E_V16QImode))
        return -1;
      x4 = XEXP (x2, 1);
      operands[2] = x4;
      if (!register_operand (operands[2], E_V16QImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern467 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], E_SImode)
      || GET_MODE (x1) != E_SImode
      || !s_register_operand (operands[1], E_SImode))
    return -1;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  operands[2] = x3;
  if (!s_register_operand (operands[2], E_SImode))
    return -1;
  x4 = XEXP (x2, 1);
  operands[3] = x4;
  if (!arm_rhs_operand (operands[3], E_SImode))
    return -1;
  return 0;
}

static int
pattern468 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1
      || !s_register_operand (operands[1], i1))
    return -1;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x2, 0);
  operands[2] = x3;
  if (!s_register_operand (operands[2], i1))
    return -1;
  x4 = XEXP (x2, 1);
  operands[3] = x4;
  if (!s_register_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern469 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != i1
      || !s_register_operand (operands[2], i1)
      || !s_register_operand (operands[3], i1)
      || !s_register_operand (operands[1], i1))
    return -1;
  return 0;
}

static int
pattern470 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i2
      || !s_register_operand (operands[1], i1))
    return -1;
  return 0;
}

static int
pattern471 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i3
      || !s_register_operand (operands[1], i2))
    return -1;
  return 0;
}

static int
pattern472 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (GET_MODE (x1) != E_DImode)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != SIGN_EXTEND
      || GET_MODE (x2) != E_DImode)
    return -1;
  x3 = XEXP (x1, 1);
  if (GET_CODE (x3) != SIGN_EXTEND
      || GET_MODE (x3) != E_DImode)
    return -1;
  return 0;
}

static int
pattern473 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (GET_MODE (x1) != E_DImode)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != MULT
      || GET_MODE (x2) != E_DImode)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != SIGN_EXTEND
      || GET_MODE (x3) != E_DImode)
    return -1;
  return 0;
}

static int
pattern474 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != i1)
    return -1;
  x4 = XEXP (x1, 0);
  operands[4] = x4;
  x5 = XEXP (x4, 0);
  operands[5] = x5;
  if (!s_register_operand (operands[0], i1)
      || !s_register_operand (operands[1], E_SImode))
    return -1;
  x6 = XVECEXP (x3, 0, 1);
  operands[2] = x6;
  if (!s_register_operand (operands[2], E_SImode))
    return -1;
  x7 = XVECEXP (x3, 0, 2);
  operands[3] = x7;
  if (!s_register_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern475 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != E_DImode)
    return -1;
  x4 = XEXP (x1, 0);
  operands[4] = x4;
  x5 = XEXP (x4, 0);
  operands[5] = x5;
  if (!register_operand (operands[0], E_DImode)
      || !register_operand (operands[1], E_DImode))
    return -1;
  x6 = XVECEXP (x3, 0, 1);
  operands[2] = x6;
  if (!register_operand (operands[2], E_V4HImode))
    return -1;
  x7 = XVECEXP (x3, 0, 2);
  operands[3] = x7;
  if (!register_operand (operands[3], E_V4HImode))
    return -1;
  return 0;
}

static int
pattern476 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 1);
  operands[2] = x4;
  x5 = XEXP (x1, 0);
  operands[3] = x5;
  x6 = XEXP (x5, 0);
  operands[4] = x6;
  switch (GET_MODE (operands[0]))
    {
    case E_V2SImode:
      return pattern345 (x3, E_V2SImode); /* [-1, 0] */

    case E_V4HImode:
      if (pattern345 (x3, E_V4HImode) != 0)
        return -1;
      return 1;

    case E_V8QImode:
      if (pattern345 (x3, E_V8QImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern477 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XVECEXP (x2, 0, 1);
  if (GET_CODE (x3) != CLOBBER)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != REG
      || REGNO (x4) != 100
      || GET_MODE (x4) != E_CCmode)
    return -1;
  x5 = XEXP (x1, 0);
  operands[3] = x5;
  x6 = XEXP (x5, 0);
  operands[4] = x6;
  return 0;
}

static int
pattern478 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != 100
      || GET_MODE (x3) != i1)
    return -1;
  x4 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x4) != CLOBBER)
    return -1;
  x5 = XEXP (x2, 1);
  if (GET_MODE (x5) != i1)
    return -1;
  x6 = XEXP (x5, 0);
  x7 = XEXP (x6, 0);
  x8 = XEXP (x7, 0);
  operands[0] = x8;
  return 0;
}

static int
pattern479 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = PATTERN (peep2_next_insn (2));
  if (GET_CODE (x2) != SET)
    return -1;
  x3 = PATTERN (peep2_next_insn (3));
  if (GET_CODE (x3) != SET)
    return -1;
  x4 = XEXP (x3, 0);
  operands[3] = x4;
  if (!memory_operand (operands[3], E_SImode))
    return -1;
  x5 = XEXP (x1, 1);
  switch (GET_CODE (x5))
    {
    case REG:
    case SUBREG:
      if (!rtx_equal_p (x5, operands[0]))
        return -1;
      x6 = XEXP (x1, 0);
      operands[2] = x6;
      if (!memory_operand (operands[2], E_SImode))
        return -1;
      x7 = XEXP (x2, 0);
      operands[1] = x7;
      return 0;

    case CONST_INT:
      operands[5] = x5;
      if (!const_int_operand (operands[5], E_SImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern480 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x2) != SET)
    return -1;
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != PLUS
      || GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 1);
  x6 = XEXP (x5, 0);
  if (GET_MODE (x6) != i1)
    return -1;
  return 0;
}

static int
pattern481 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i2)
    return -1;
  x3 = XEXP (x1, 1);
  if (GET_MODE (x3) != i2)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) != i1)
    return -1;
  x5 = XEXP (x4, 0);
  x6 = XEXP (x5, 0);
  operands[2] = x6;
  if (!s_register_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern482 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x2) != SET)
    return -1;
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != MINUS
      || GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 0);
  if (GET_MODE (x5) != i2)
    return -1;
  x6 = XEXP (x4, 1);
  if (GET_MODE (x6) != i2)
    return -1;
  x7 = XEXP (x6, 0);
  if (GET_MODE (x7) != i1)
    return -1;
  return 0;
}

static int
pattern483 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 1);
  if (GET_MODE (x5) != E_DImode)
    return -1;
  x6 = XEXP (x3, 1);
  if (GET_CODE (x6) != SIGN_EXTEND
      || GET_MODE (x6) != E_DImode)
    return -1;
  x7 = XEXP (x6, 0);
  if (GET_CODE (x7) != MINUS
      || GET_MODE (x7) != E_SImode
      || pattern482 (x1, E_DImode, E_CC_Vmode) != 0)
    return -1;
  return 0;
}

static int
pattern484 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != 100
      || GET_MODE (x3) != E_CCmode)
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 0);
  operands[0] = x5;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x6 = XEXP (x4, 1);
  if (GET_MODE (x6) != E_SImode)
    return -1;
  x7 = XEXP (x6, 0);
  x8 = XEXP (x7, 1);
  if (!arm_add_operand (x8, E_SImode))
    return -1;
  return 0;
}

static int
pattern485 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != 100
      || GET_MODE (x3) != E_CCmode)
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 0);
  operands[0] = x5;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x6 = XEXP (x4, 1);
  if (GET_MODE (x6) != E_SImode)
    return -1;
  return 0;
}

static int
pattern486 (rtx x1, int i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != MEM
      || GET_MODE (x1) != E_SImode)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != PLUS
      || GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XEXP (x2, 1);
  if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
    return -1;
  return 0;
}

static int
pattern487 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 0);
  operands[0] = x3;
  if (!memory_operand (operands[0], E_SImode))
    return -1;
  x4 = XEXP (x2, 1);
  x5 = XVECEXP (x4, 0, 0);
  x6 = XEXP (x5, 0);
  operands[1] = x6;
  if (!guard_addr_operand (operands[1], E_SImode))
    return -1;
  x7 = XVECEXP (x1, 0, 1);
  x8 = XEXP (x7, 0);
  operands[2] = x8;
  if (!scratch_operand (operands[2], E_SImode))
    return -1;
  x9 = XVECEXP (x1, 0, 2);
  x10 = XEXP (x9, 0);
  operands[3] = x10;
  if (!scratch_operand (operands[3], E_SImode))
    return -1;
  return 0;
}

static int
pattern488 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != SIGN_EXTEND
      || GET_MODE (x3) != E_DImode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != PLUS
      || GET_MODE (x4) != E_SImode)
    return -1;
  x5 = XEXP (x1, 0);
  if (GET_MODE (x5) != E_CC_Vmode
      || GET_MODE (x2) != E_CC_Vmode)
    return -1;
  x6 = XEXP (x2, 0);
  x7 = XEXP (x6, 0);
  x8 = XEXP (x7, 0);
  operands[0] = x8;
  if (!register_operand (operands[0], E_SImode))
    return -1;
  return 0;
}

static int
pattern489 (rtx x1, int *pnum_clobbers)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  if (pnum_clobbers == NULL
      || !s_register_operand (operands[0], E_SImode)
      || GET_MODE (x1) != E_SImode)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != E_DImode)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != E_DImode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) != E_DImode
      || !s_register_operand (operands[1], E_SImode))
    return -1;
  x5 = XEXP (x3, 1);
  if (GET_MODE (x5) != E_DImode
      || !s_register_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern490 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1
      || !neon_struct_operand (operands[1], E_V2BFmode))
    return -1;
  x2 = XVECEXP (x1, 0, 1);
  if (GET_MODE (x2) != E_V8BFmode)
    return -1;
  return 0;
}

static int
pattern491 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 1);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x5 = XEXP (x2, 2);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x6 = XEXP (x1, 0);
  operands[0] = x6;
  if (!s_register_operand (operands[0], E_SImode)
      || GET_MODE (x2) != E_SImode)
    return -1;
  x7 = XEXP (x3, 0);
  x8 = XEXP (x7, 0);
  operands[1] = x8;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x9 = XEXP (x7, 1);
  operands[2] = x9;
  if (!const_int_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern492 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1
      || !register_operand (operands[1], i1))
    return -1;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != i1
      || !register_operand (operands[2], i1)
      || !register_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern493 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  switch (GET_MODE (operands[0]))
    {
    case E_V4HFmode:
      return pattern492 (x1, E_V4HFmode); /* [-1, 0] */

    case E_V8HFmode:
      if (GET_MODE (x1) != E_V8HFmode)
        return -1;
      x2 = XEXP (x1, 1);
      if (GET_MODE (x2) != E_V8HFmode)
        return -1;
      return 1;

    case E_V2SFmode:
      if (pattern492 (x1, E_V2SFmode) != 0)
        return -1;
      return 2;

    case E_V4SFmode:
      if (GET_MODE (x1) != E_V4SFmode)
        return -1;
      x2 = XEXP (x1, 1);
      if (GET_MODE (x2) != E_V4SFmode)
        return -1;
      return 3;

    default:
      return -1;
    }
}

static int
pattern494 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_V4SFmode
      || !register_operand (operands[0], E_V4SFmode)
      || GET_MODE (x1) != E_V4SFmode
      || !register_operand (operands[1], E_V4SFmode)
      || !register_operand (operands[2], E_V8BFmode)
      || !register_operand (operands[3], E_V8BFmode))
    return -1;
  return 0;
}

static int
pattern495 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != i1
      || !s_register_operand (operands[1], i1)
      || !s_register_operand (operands[2], i1)
      || !zero_operand (operands[3], i1)
      || !minus_one_operand (operands[4], i1))
    return -1;
  return 0;
}

static int
pattern496 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !register_operand (operands[2], i2)
      || !register_operand (operands[3], i2)
      || !register_operand (operands[1], i1))
    return -1;
  return 0;
}

static int
pattern497 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (GET_MODE (x1) != E_SImode)
    return -1;
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) != PARALLEL
      || XVECLEN (x2, 0) != 1)
    return -1;
  x3 = XVECEXP (x2, 0, 0);
  if (GET_CODE (x3) != CONST_INT)
    return -1;
  return 0;
}

static int
pattern498 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !s_register_operand (operands[2], i1)
      || !s_register_operand (operands[3], i1)
      || !s_register_operand (operands[1], i1))
    return -1;
  return 0;
}

static int
pattern499 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (GET_MODE (x1))
    {
    case E_QImode:
      switch (GET_MODE (operands[1]))
        {
        case E_V8QImode:
          if (!s_register_operand (operands[1], E_V8QImode))
            return -1;
          return 0;

        case E_V16QImode:
          if (!s_register_operand (operands[1], E_V16QImode))
            return -1;
          return 1;

        default:
          return -1;
        }

    case E_HImode:
      switch (GET_MODE (operands[1]))
        {
        case E_V4HImode:
          if (!s_register_operand (operands[1], E_V4HImode))
            return -1;
          return 2;

        case E_V8HImode:
          if (!s_register_operand (operands[1], E_V8HImode))
            return -1;
          return 3;

        default:
          return -1;
        }

    case E_SImode:
      switch (GET_MODE (operands[1]))
        {
        case E_V2SImode:
          if (!s_register_operand (operands[1], E_V2SImode))
            return -1;
          return 4;

        case E_V4SImode:
          if (!s_register_operand (operands[1], E_V4SImode))
            return -1;
          return 5;

        default:
          return -1;
        }

    case E_SFmode:
      switch (GET_MODE (operands[1]))
        {
        case E_V2SFmode:
          if (!s_register_operand (operands[1], E_V2SFmode))
            return -1;
          return 6;

        case E_V4SFmode:
          if (!s_register_operand (operands[1], E_V4SFmode))
            return -1;
          return 7;

        default:
          return -1;
        }

    case E_HFmode:
      if (!s_register_operand (operands[1], E_V8HFmode))
        return -1;
      return 8;

    default:
      return -1;
    }
}

static int
pattern500 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != i2
      || !register_operand (operands[1], i1))
    return -1;
  return 0;
}

static int
pattern501 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  if (GET_CODE (x2) != CONST_INT)
    return -1;
  x3 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x3) != CONST_INT)
    return -1;
  x4 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x4) != CONST_INT)
    return -1;
  x5 = XVECEXP (x1, 0, 3);
  if (GET_CODE (x5) != CONST_INT)
    return -1;
  return 0;
}

static int
pattern502 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  if (GET_MODE (x1) != i1)
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x3 = XVECEXP (x1, 0, 1);
  if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x4 = XVECEXP (x1, 0, 2);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x5 = XVECEXP (x1, 0, 3);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  return 0;
}

static int
pattern503 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  operands[1] = x3;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x4 = XEXP (x1, 1);
  operands[2] = x4;
  if (!const_double_vcvt_power_of_two_reciprocal (operands[2], E_VOIDmode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_SFmode:
      if (!s_register_operand (operands[0], E_SFmode)
          || GET_MODE (x1) != E_SFmode
          || GET_MODE (x2) != E_SFmode)
        return -1;
      return 0;

    case E_DFmode:
      if (!s_register_operand (operands[0], E_DFmode)
          || GET_MODE (x1) != E_DFmode
          || GET_MODE (x2) != E_DFmode)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern504 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != CLOBBER)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != REG
      || REGNO (x2) != 100
      || GET_MODE (x2) != E_CCmode)
    return -1;
  return 0;
}

static int
pattern505 (rtx x1, int i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != PLUS
      || GET_MODE (x4) != E_SImode)
    return -1;
  x5 = XEXP (x4, 1);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
    return -1;
  x6 = XVECEXP (x1, 0, 1);
  x7 = XEXP (x6, 1);
  if (GET_CODE (x7) != MEM
      || GET_MODE (x7) != E_SImode)
    return -1;
  return 0;
}

static int
pattern506 (rtx x1, int i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  operands[1] = x3;
  if (!arm_hard_general_register_operand (operands[1], E_SImode))
    return -1;
  x4 = XEXP (x2, 0);
  if (GET_CODE (x4) != MEM
      || GET_MODE (x4) != E_SImode)
    return -1;
  x5 = XEXP (x4, 0);
  if (GET_CODE (x5) != PLUS
      || GET_MODE (x5) != E_SImode)
    return -1;
  x6 = XEXP (x5, 1);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
    return -1;
  x7 = XVECEXP (x1, 0, 1);
  x8 = XEXP (x7, 0);
  if (GET_CODE (x8) != MEM
      || GET_MODE (x8) != E_SImode)
    return -1;
  return 0;
}

static int
pattern507 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) != E_SImode)
    return -1;
  x5 = XEXP (x4, 0);
  operands[2] = x5;
  if (!s_register_operand (operands[2], E_SImode))
    return -1;
  x6 = XEXP (x4, 1);
  operands[3] = x6;
  if (!const_int_operand (operands[3], E_SImode))
    return -1;
  x7 = XEXP (x4, 2);
  operands[4] = x7;
  if (!const_int_operand (operands[4], E_SImode))
    return -1;
  x8 = XEXP (x3, 1);
  operands[5] = x8;
  if (!s_register_operand (operands[5], E_SImode))
    return -1;
  x9 = XVECEXP (x1, 0, 1);
  x10 = XEXP (x9, 0);
  operands[6] = x10;
  return 0;
}

static int
pattern508 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) != SIGN_EXTEND
      || GET_MODE (x4) != E_DImode)
    return -1;
  x5 = XEXP (x4, 0);
  if (GET_CODE (x5) != PLUS
      || GET_MODE (x5) != E_SImode)
    return -1;
  x6 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x6) != SET)
    return -1;
  x7 = XEXP (x6, 1);
  if (GET_CODE (x7) != PLUS
      || GET_MODE (x7) != E_SImode)
    return -1;
  x8 = XEXP (x2, 0);
  if (GET_MODE (x8) != E_CC_Vmode
      || GET_MODE (x3) != E_CC_Vmode)
    return -1;
  x9 = XEXP (x3, 0);
  x10 = XEXP (x9, 0);
  x11 = XEXP (x10, 0);
  operands[1] = x11;
  if (!register_operand (operands[1], E_SImode))
    return -1;
  return 0;
}

static int
pattern509 (rtx x1, rtx_code i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != SIGN_EXTEND
      || GET_MODE (x1) != E_DImode)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != i1
      || GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != i1
      || GET_MODE (x3) != E_SImode)
    return -1;
  return 0;
}

static int
pattern510 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 1);
  if (XVECLEN (x3, 0) != 2
      || XINT (x3, 1) != 1068
      || GET_MODE (x3) != E_V4SImode)
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 1);
  x6 = XVECEXP (x5, 0, 0);
  operands[1] = x6;
  if (!s_register_operand (operands[1], E_V4SImode))
    return -1;
  x7 = XVECEXP (x5, 0, 1);
  operands[2] = x7;
  return 0;
}

static int
pattern511 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 1);
  if (XVECLEN (x3, 0) != 2
      || XINT (x3, 1) != 1069
      || GET_MODE (x3) != E_V4SImode)
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 0);
  operands[0] = x5;
  if (!s_register_operand (operands[0], E_V4SFmode))
    return -1;
  return 0;
}

static int
pattern512 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != SET)
    return -1;
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) != PLUS
      || GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XEXP (x2, 1);
  if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + -1])
    return -1;
  return 0;
}

static int
pattern513 (rtx x1, machine_mode i1, unsigned int i2, unsigned int i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != i3
      || GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XVECEXP (x1, 0, 2);
  return pattern353 (x4, i1, i2); /* [-1, 0] */
}

static int
pattern514 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 2);
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != MEM
      || GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != PLUS
      || GET_MODE (x4) != E_SImode)
    return -1;
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != CONST_INT)
    return -1;
  x6 = XVECEXP (x1, 0, 3);
  x7 = XEXP (x6, 0);
  if (GET_CODE (x7) != MEM
      || GET_MODE (x7) != E_SImode)
    return -1;
  return 0;
}

static int
pattern515 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != MEM
      || GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != PLUS
      || GET_MODE (x4) != E_SImode)
    return -1;
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != CONST_INT
      || pattern514 (x1) != 0)
    return -1;
  return 0;
}

static int
pattern516 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1
      || !register_operand (operands[2], i1)
      || !register_operand (operands[3], i1)
      || !const_int_vcde2_operand (operands[4], E_SImode))
    return -1;
  return 0;
}

static int
pattern517 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], E_V16QImode)
      || GET_MODE (x1) != E_V16QImode
      || !register_operand (operands[2], E_V16QImode)
      || !register_operand (operands[3], E_V16QImode))
    return -1;
  return 0;
}

static int
pattern518 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1
      || !register_operand (operands[2], i1)
      || !register_operand (operands[3], i1)
      || !const_int_vcde3_operand (operands[4], E_SImode))
    return -1;
  return 0;
}

static int
pattern519 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i2)
      || GET_MODE (x1) != i2
      || !register_operand (operands[1], i2))
    return -1;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != i2
      || !register_operand (operands[2], i1)
      || !register_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern520 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!const_int_operand (operands[4], E_SImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_V4HFmode:
      if (!s_register_operand (operands[0], E_V4HFmode)
          || GET_MODE (x1) != E_V4HFmode
          || !s_register_operand (operands[1], E_V4HFmode))
        return -1;
      x2 = XEXP (x1, 1);
      if (GET_MODE (x2) != E_V4HFmode
          || !s_register_operand (operands[2], E_V4HFmode))
        return -1;
      switch (GET_MODE (operands[3]))
        {
        case E_V4HFmode:
          if (!s_register_operand (operands[3], E_V4HFmode))
            return -1;
          return 0;

        case E_V8HFmode:
          if (!s_register_operand (operands[3], E_V8HFmode))
            return -1;
          return 1;

        default:
          return -1;
        }

    case E_V8HFmode:
      if (!s_register_operand (operands[0], E_V8HFmode)
          || GET_MODE (x1) != E_V8HFmode
          || !s_register_operand (operands[1], E_V8HFmode))
        return -1;
      x2 = XEXP (x1, 1);
      if (GET_MODE (x2) != E_V8HFmode
          || !s_register_operand (operands[2], E_V8HFmode))
        return -1;
      switch (GET_MODE (operands[3]))
        {
        case E_V8HFmode:
          if (!s_register_operand (operands[3], E_V8HFmode))
            return -1;
          return 2;

        case E_V4HFmode:
          if (!s_register_operand (operands[3], E_V4HFmode))
            return -1;
          return 3;

        default:
          return -1;
        }

    case E_V2SFmode:
      if (!s_register_operand (operands[0], E_V2SFmode)
          || GET_MODE (x1) != E_V2SFmode
          || !s_register_operand (operands[1], E_V2SFmode))
        return -1;
      x2 = XEXP (x1, 1);
      if (GET_MODE (x2) != E_V2SFmode
          || !s_register_operand (operands[2], E_V2SFmode))
        return -1;
      switch (GET_MODE (operands[3]))
        {
        case E_V2SFmode:
          if (!s_register_operand (operands[3], E_V2SFmode))
            return -1;
          return 4;

        case E_V4SFmode:
          if (!s_register_operand (operands[3], E_V4SFmode))
            return -1;
          return 5;

        default:
          return -1;
        }

    case E_V4SFmode:
      if (!s_register_operand (operands[0], E_V4SFmode)
          || GET_MODE (x1) != E_V4SFmode
          || !s_register_operand (operands[1], E_V4SFmode))
        return -1;
      x2 = XEXP (x1, 1);
      if (GET_MODE (x2) != E_V4SFmode
          || !s_register_operand (operands[2], E_V4SFmode))
        return -1;
      switch (GET_MODE (operands[3]))
        {
        case E_V4SFmode:
          if (!s_register_operand (operands[3], E_V4SFmode))
            return -1;
          return 6;

        case E_V2SFmode:
          if (!s_register_operand (operands[3], E_V2SFmode))
            return -1;
          return 7;

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern521 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_V4SFmode
      || !register_operand (operands[0], E_V4SFmode)
      || GET_MODE (x1) != E_V4SFmode
      || !register_operand (operands[1], E_V4SFmode)
      || !register_operand (operands[2], E_V8BFmode)
      || !register_operand (operands[3], E_V4BFmode)
      || !const_int_operand (operands[4], E_SImode))
    return -1;
  return 0;
}

static int
pattern522 (rtx x1, rtx_code i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != i1
      || GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x3, 1);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 8]
      || !register_operand (operands[0], E_SImode))
    return -1;
  x5 = XEXP (x1, 0);
  x6 = XEXP (x5, 0);
  x7 = XEXP (x6, 0);
  operands[1] = x7;
  if (!register_operand (operands[1], E_SImode))
    return -1;
  return 0;
}

static int
pattern523 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  operands[1] = x2;
  if (!register_operand (operands[1], i1))
    return -1;
  x3 = XEXP (x1, 1);
  operands[2] = x3;
  if (!register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern524 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  operands[1] = x2;
  if (!s_register_operand (operands[1], i1))
    return -1;
  x3 = XEXP (x1, 1);
  operands[2] = x3;
  if (!s_register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern525 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], E_SImode)
      || GET_MODE (x1) != E_SImode)
    return -1;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  operands[1] = x3;
  if (!s_register_operand (operands[1], i1))
    return -1;
  x4 = XEXP (x1, 1);
  if (GET_MODE (x4) != E_SImode)
    return -1;
  switch (GET_CODE (x4))
    {
    case SIGN_EXTEND:
      x5 = XEXP (x4, 0);
      operands[2] = x5;
      if (!s_register_operand (operands[2], E_HImode))
        return -1;
      return 0;

    case ASHIFTRT:
      x6 = XEXP (x4, 1);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
        return -1;
      x5 = XEXP (x4, 0);
      operands[2] = x5;
      if (!s_register_operand (operands[2], E_SImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern526 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i3)
      || GET_MODE (x1) != i3)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i2
      || !register_operand (operands[1], i1))
    return -1;
  x3 = XEXP (x1, 1);
  if (GET_MODE (x3) != i2
      || !register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern527 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  operands[2] = x3;
  switch (GET_MODE (operands[0]))
    {
    case E_V8QImode:
      return pattern526 (x1, E_V4HImode, E_V4QImode, E_V8QImode); /* [-1, 0] */

    case E_V4HImode:
      if (pattern526 (x1, E_V2SImode, E_V2HImode, E_V4HImode) != 0)
        return -1;
      return 1;

    case E_V2SImode:
      if (pattern526 (x1, E_DImode, E_SImode, E_V2SImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern528 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != COND_EXEC)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != NE)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != 100
      || GET_MODE (x3) != E_CCmode)
    return -1;
  x4 = XEXP (x2, 1);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x5 = XEXP (x1, 1);
  if (GET_CODE (x5) != SET)
    return -1;
  x6 = XEXP (x5, 1);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x7 = XEXP (x5, 0);
  operands[0] = x7;
  if (!register_operand (operands[0], E_SImode))
    return -1;
  x8 = PATTERN (peep2_next_insn (2));
  if (GET_CODE (x8) != COND_EXEC)
    return -1;
  x9 = XEXP (x8, 0);
  if (GET_CODE (x9) != EQ)
    return -1;
  x10 = XEXP (x9, 0);
  if (GET_CODE (x10) != REG
      || REGNO (x10) != 100
      || GET_MODE (x10) != E_CCmode)
    return -1;
  x11 = XEXP (x9, 1);
  if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x12 = XEXP (x8, 1);
  if (GET_CODE (x12) != SET)
    return -1;
  x13 = XEXP (x12, 1);
  if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x14 = XEXP (x12, 0);
  if (!rtx_equal_p (x14, operands[0]))
    return -1;
  return 0;
}

static int
pattern529 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != SET)
    return -1;
  x2 = XEXP (x1, 0);
  if (!s_register_operand (x2, E_SImode))
    return -1;
  x3 = XEXP (x1, 1);
  if (!const_int_operand (x3, E_SImode))
    return -1;
  x4 = PATTERN (peep2_next_insn (3));
  if (GET_CODE (x4) != SET)
    return -1;
  return 0;
}

static int
pattern530 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 1);
  if (XWINT (x5, 0) != 0L)
    return -1;
  x6 = XEXP (x3, 2);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x7 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x7) != CLOBBER
      || pattern485 (x1) != 0)
    return -1;
  return 0;
}

static int
pattern531 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    case MEM:
      if (GET_MODE (x2) != E_SImode)
        return -1;
      return 0;

    case REG:
      operands[1] = x2;
      x3 = XEXP (x1, 0);
      if (GET_CODE (x3) != MEM
          || GET_MODE (x3) != E_SImode)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern532 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != MEM
      || GET_MODE (x1) != E_SImode)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != PLUS
      || GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != CONST_INT)
    return -1;
  return 0;
}

static int
pattern533 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  if (GET_MODE (x1) != E_V4SImode)
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  if (GET_CODE (x2) != CONST_INT
      || XWINT (x2, 0) != 32768L)
    return -1;
  x3 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x3) != CONST_INT
      || XWINT (x3, 0) != 32768L)
    return -1;
  x4 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x4) != CONST_INT
      || XWINT (x4, 0) != 32768L)
    return -1;
  return 0;
}

static int
pattern534 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i2)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != i2)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) != i2)
    return -1;
  x5 = XEXP (x4, 0);
  if (GET_MODE (x5) != i2
      || !register_operand (operands[1], i1))
    return -1;
  x6 = XEXP (x4, 1);
  if (GET_MODE (x6) != i2
      || !register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern535 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 1);
  if (GET_MODE (x4) != E_V2DImode)
    return -1;
  x5 = XVECEXP (x4, 0, 0);
  if (GET_CODE (x5) != CONST_INT
      || XWINT (x5, 0) != 2147483648L)
    return -1;
  x6 = XVECEXP (x4, 0, 1);
  if (GET_CODE (x6) != CONST_INT
      || XWINT (x6, 0) != 2147483648L)
    return -1;
  x7 = XEXP (x2, 1);
  if (XWINT (x7, 0) != 32L
      || pattern534 (x1, E_V2SImode, E_V2DImode) != 0)
    return -1;
  return 0;
}

static int
pattern536 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!neon_struct_operand (operands[0], i2)
      || GET_MODE (x1) != i2
      || !s_register_operand (operands[1], i1))
    return -1;
  x2 = XVECEXP (x1, 0, 2);
  if (GET_MODE (x2) != E_V8QImode)
    return -1;
  return 0;
}

static int
pattern537 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (GET_MODE (operands[1]))
    {
    case E_TImode:
      if (!s_register_operand (operands[1], E_TImode)
          || GET_MODE (x1) != i1)
        return -1;
      return 0;

    case E_OImode:
      if (!s_register_operand (operands[1], E_OImode)
          || GET_MODE (x1) != i2)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern538 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!neon_struct_operand (operands[0], i3)
      || GET_MODE (x1) != i3)
    return -1;
  x2 = XVECEXP (x1, 0, 2);
  return pattern537 (x2, i1, i2); /* [-1, 1] */
}

static int
pattern539 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!neon_struct_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XVECEXP (x1, 0, 2);
  return pattern537 (x2, i1, i2); /* [-1, 1] */
}

static int
pattern540 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (GET_MODE (operands[1]))
    {
    case E_OImode:
      if (!s_register_operand (operands[1], E_OImode)
          || GET_MODE (x1) != i1)
        return -1;
      return 0;

    case E_XImode:
      if (!s_register_operand (operands[1], E_XImode)
          || GET_MODE (x1) != i2)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern541 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!neon_struct_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XVECEXP (x1, 0, 2);
  return pattern540 (x2, i1, i2); /* [-1, 1] */
}

static int
pattern542 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!neon_struct_operand (operands[0], i2)
      || GET_MODE (x1) != i2)
    return -1;
  x2 = XVECEXP (x1, 0, 2);
  return pattern540 (x2, i1, i2); /* [-1, 1] */
}

static int
pattern543 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1
      || !register_operand (operands[2], i1)
      || !register_operand (operands[3], i1)
      || !register_operand (operands[4], i1)
      || !const_int_vcde3_operand (operands[5], E_SImode))
    return -1;
  return 0;
}

static int
pattern544 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !register_operand (operands[2], i2)
      || !register_operand (operands[1], i1))
    return -1;
  switch (GET_MODE (operands[3]))
    {
    case E_V8QImode:
      if (!register_operand (operands[3], E_V8QImode))
        return -1;
      return 0;

    case E_V16QImode:
      if (!register_operand (operands[3], E_V16QImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern545 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (!mem_noofs_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != i1
      || !reg_or_int_operand (operands[1], i1))
    return -1;
  return 0;
}

static int
pattern546 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i3
      || !s_register_operand (operands[3], i2)
      || !s_register_operand (operands[1], i1))
    return -1;
  return 0;
}

static int
pattern547 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != i3
      || !s_register_operand (operands[2], i2))
    return -1;
  x4 = XEXP (x1, 1);
  return pattern546 (x4, i1, i2, i3); /* [-1, 0] */
}

static int
pattern548 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (GET_MODE (x1) != E_SImode
      || !s_register_operand (operands[0], E_SImode)
      || !s_register_operand (operands[1], E_SImode)
      || !s_register_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern549 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (GET_MODE (x1) != E_DImode
      || !register_operand (operands[0], E_DImode)
      || !register_operand (operands[1], E_V4HImode)
      || !register_operand (operands[2], E_V4HImode))
    return -1;
  return 0;
}

static int
pattern550 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (GET_MODE (x1) != i1
      || !register_operand (operands[0], i1)
      || !register_operand (operands[1], i1)
      || !register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern551 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (GET_MODE (x1) != E_DImode
      || !arm_low_register_operand (operands[0], E_DImode)
      || !arm_low_register_operand (operands[1], E_DImode)
      || !register_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern552 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (GET_MODE (x1) != E_SImode
      || !arm_general_register_operand (operands[0], E_SImode)
      || !arm_general_register_operand (operands[1], E_SImode)
      || !register_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern553 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (GET_MODE (x1) != E_DImode
      || !arm_low_register_operand (operands[0], E_DImode)
      || !arm_low_register_operand (operands[1], E_DImode)
      || !immediate_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern554 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (GET_MODE (x1) != E_SImode
      || !arm_general_register_operand (operands[0], E_SImode)
      || !arm_general_register_operand (operands[1], i1)
      || !immediate_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern555 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !s_register_operand (operands[1], i1)
      || !s_register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern556 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  if (!arm_comparison_operator (operands[3], E_SImode))
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 1);
  if (!arm_comparison_operator (x4, E_SImode))
    return -1;
  operands[6] = x4;
  x5 = XVECEXP (x1, 0, 1);
  x6 = XEXP (x5, 0);
  if (GET_CODE (x6) != REG
      || REGNO (x6) != 100
      || GET_MODE (x6) != E_CCmode
      || pattern326 (x3) != 0)
    return -1;
  return 0;
}

static int
pattern557 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 0);
  operands[1] = x3;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x4 = XEXP (x2, 1);
  x5 = XEXP (x4, 1);
  operands[4] = x5;
  if (!immediate_operand (operands[4], E_SImode))
    return -1;
  x6 = XEXP (x4, 0);
  if (!rtx_equal_p (x6, operands[2]))
    return -1;
  x7 = XVECEXP (x1, 0, 0);
  x8 = XEXP (x7, 1);
  return pattern403 (x8); /* [-1, 2] */
}

static int
pattern558 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != 100
      || GET_MODE (x3) != E_CCmode)
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 1);
  x6 = XEXP (x5, 0);
  x7 = XEXP (x6, 0);
  operands[1] = x7;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x8 = XEXP (x6, 1);
  operands[2] = x8;
  if (!const_int_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern559 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1))
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != i1)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) != i1
      || !mem_noofs_operand (operands[1], i1)
      || !reg_or_int_operand (operands[2], i1))
    return -1;
  x5 = XVECEXP (x1, 0, 1);
  x6 = XEXP (x5, 1);
  if (GET_MODE (x6) != i1)
    return -1;
  return 0;
}

static int
pattern560 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 1);
  x4 = XVECEXP (x3, 0, 0);
  if (!rtx_equal_p (x4, operands[1]))
    return -1;
  x5 = XVECEXP (x3, 0, 1);
  if (!rtx_equal_p (x5, operands[2]))
    return -1;
  x6 = XEXP (x2, 0);
  if (!rtx_equal_p (x6, operands[1]))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_QImode:
      return pattern559 (x1, E_QImode); /* [-1, 0] */

    case E_HImode:
      if (pattern559 (x1, E_HImode) != 0)
        return -1;
      return 1;

    case E_SImode:
      if (pattern559 (x1, E_SImode) != 0)
        return -1;
      return 2;

    case E_DImode:
      if (!s_register_operand (operands[0], E_DImode))
        return -1;
      x7 = XVECEXP (x1, 0, 0);
      x8 = XEXP (x7, 1);
      if (GET_MODE (x8) != E_DImode)
        return -1;
      x9 = XEXP (x8, 0);
      if (GET_MODE (x9) != E_DImode
          || !mem_noofs_operand (operands[1], E_DImode)
          || !s_register_operand (operands[2], E_DImode)
          || GET_MODE (x3) != E_DImode)
        return -1;
      return 3;

    default:
      return -1;
    }
}

static int
pattern561 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 0);
  operands[0] = x3;
  x4 = XEXP (x2, 1);
  x5 = XEXP (x4, 0);
  x6 = XEXP (x5, 0);
  operands[1] = x6;
  x7 = XEXP (x5, 1);
  operands[2] = x7;
  x8 = XVECEXP (x1, 0, 1);
  x9 = XEXP (x8, 1);
  x10 = XVECEXP (x9, 0, 2);
  operands[3] = x10;
  if (!const_int_operand (operands[3], E_SImode))
    return -1;
  x11 = XVECEXP (x1, 0, 3);
  x12 = XEXP (x11, 0);
  operands[4] = x12;
  if (!scratch_operand (operands[4], E_SImode))
    return -1;
  return pattern560 (x1); /* [-1, 3] */
}

static int
pattern562 (rtx x1, int i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  if (GET_MODE (x1) != E_V8HImode)
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
    return -1;
  x3 = XVECEXP (x1, 0, 1);
  if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
    return -1;
  x4 = XVECEXP (x1, 0, 2);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
    return -1;
  x5 = XVECEXP (x1, 0, 3);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
    return -1;
  x6 = XVECEXP (x1, 0, 4);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
    return -1;
  x7 = XVECEXP (x1, 0, 5);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
    return -1;
  x8 = XVECEXP (x1, 0, 6);
  if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
    return -1;
  x9 = XVECEXP (x1, 0, 7);
  if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
    return -1;
  return 0;
}

static int
pattern563 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i2)
      || GET_MODE (x1) != i2
      || !register_operand (operands[1], i2))
    return -1;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != i2
      || !register_operand (operands[2], i1))
    return -1;
  switch (GET_MODE (operands[3]))
    {
    case E_V4BFmode:
      if (!register_operand (operands[3], E_V4BFmode))
        return -1;
      return 0;

    case E_V8BFmode:
      if (!register_operand (operands[3], E_V8BFmode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern564 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != i1)
    return -1;
  x4 = XEXP (x2, 1);
  if (GET_MODE (x4) != i1
      || !s_register_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern565 (rtx x1, machine_mode i1, machine_mode i2, rtx_code i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != i3
      || GET_MODE (x1) != i2)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != VEC_SELECT
      || GET_MODE (x2) != i1)
    return -1;
  return 0;
}

static int
pattern566 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != i3)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) != i3
      || !s_register_operand (operands[2], i2))
    return -1;
  x5 = XEXP (x1, 1);
  return pattern546 (x5, i1, i2, i3); /* [-1, 0] */
}

static int
pattern567 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x2, 0);
  operands[2] = x3;
  if (!s_register_operand (operands[2], i1))
    return -1;
  x4 = XEXP (x2, 1);
  operands[3] = x4;
  if (!s_register_operand (operands[3], i1)
      || !s_register_operand (operands[1], i1))
    return -1;
  return 0;
}

static int
pattern568 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != VEC_SELECT
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) != PARALLEL
      || XVECLEN (x2, 0) != 1)
    return -1;
  x3 = XVECEXP (x2, 0, 0);
  if (GET_CODE (x3) != CONST_INT)
    return -1;
  return 0;
}

static int
pattern569 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != E_DImode)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != VEC_SELECT
      || GET_MODE (x3) != i1)
    return -1;
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) != PARALLEL
      || XVECLEN (x4, 0) != 1)
    return -1;
  x5 = XVECEXP (x4, 0, 0);
  if (GET_CODE (x5) != CONST_INT)
    return -1;
  x6 = XEXP (x1, 1);
  if (GET_CODE (x6) != SIGN_EXTEND
      || GET_MODE (x6) != E_DImode)
    return -1;
  x7 = XEXP (x6, 0);
  return pattern568 (x7, i1); /* [-1, 0] */
}

static int
pattern570 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !s_register_operand (operands[1], i1)
      || !s_register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern571 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1
      || !register_operand (operands[1], i1)
      || !register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern572 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[1] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[2] = x4;
  if (!immediate_operand (operands[2], E_SImode))
    return -1;
  switch (GET_MODE (x1))
    {
    case E_QImode:
      if (!register_operand (operands[1], E_V8QImode))
        return -1;
      return 0;

    case E_HImode:
      if (!register_operand (operands[1], E_V4HImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern573 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 2);
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != MEM
      || GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != PLUS
      || GET_MODE (x4) != E_SImode)
    return -1;
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != CONST_INT)
    return -1;
  x6 = XVECEXP (x1, 0, 3);
  x7 = XEXP (x6, 1);
  if (GET_CODE (x7) != MEM
      || GET_MODE (x7) != E_SImode)
    return -1;
  return 0;
}

static int
pattern574 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != PLUS
      || GET_MODE (x4) != E_SImode)
    return -1;
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != CONST_INT
      || pattern573 (x1) != 0)
    return -1;
  return 0;
}

static int
pattern575 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (GET_MODE (x1) != E_SImode)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != PLUS
      || GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != CONST_INT)
    return -1;
  return 0;
}

static int
pattern576 (rtx x1, rtx_code i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XEXP (x1, 1);
  if (!logical_binary_operator (x3, E_SImode))
    return -1;
  operands[9] = x3;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != i1
      || GET_MODE (x4) != E_SImode)
    return -1;
  x5 = XEXP (x2, 0);
  operands[2] = x5;
  if (!s_register_operand (operands[2], E_SImode))
    return -1;
  x6 = XEXP (x2, 1);
  operands[3] = x6;
  if (!const_int_operand (operands[3], E_SImode))
    return -1;
  x7 = XEXP (x2, 2);
  operands[4] = x7;
  if (!const_int_operand (operands[4], E_SImode))
    return -1;
  x8 = XEXP (x4, 0);
  operands[5] = x8;
  if (!s_register_operand (operands[5], E_SImode))
    return -1;
  x9 = XEXP (x4, 1);
  operands[6] = x9;
  if (!const_int_operand (operands[6], E_SImode))
    return -1;
  x10 = XEXP (x3, 1);
  operands[7] = x10;
  if (!s_register_operand (operands[7], E_SImode))
    return -1;
  return 0;
}

static int
pattern577 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  if (XVECLEN (x1, 0) != 2)
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  if (GET_CODE (x2) != SET)
    return -1;
  x3 = XEXP (x2, 1);
  if (!commutative_binary_operator (x3, E_SImode))
    return -1;
  operands[5] = x3;
  x4 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x4) != CLOBBER)
    return -1;
  x5 = XEXP (x4, 0);
  if (GET_CODE (x5) != REG
      || REGNO (x5) != 100
      || GET_MODE (x5) != E_CCmode)
    return -1;
  x6 = XEXP (x2, 0);
  operands[4] = x6;
  return 0;
}

static int
pattern578 (rtx x1, rtx_code i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  switch (GET_CODE (x1))
    {
    case SET:
      x2 = XEXP (x1, 1);
      if (GET_CODE (x2) != i1
          || GET_MODE (x2) != E_SImode)
        return -1;
      return 0;

    case CLOBBER:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!scratch_operand (operands[0], E_SImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern579 (rtx x1, machine_mode i1, unsigned int i2, int i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) != UNSPEC
      || XVECLEN (x2, 0) != 1
      || XINT (x2, 1) != i3
      || GET_MODE (x2) != i1)
    return -1;
  x3 = XVECEXP (x2, 0, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != i2
      || GET_MODE (x3) != i1)
    return -1;
  x4 = XEXP (x1, 0);
  if (GET_CODE (x4) != REG
      || REGNO (x4) != i2
      || GET_MODE (x4) != i1)
    return -1;
  return 0;
}

static int
pattern580 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], E_SImode)
      || GET_MODE (x1) != E_SImode
      || !s_register_operand (operands[1], E_SImode))
    return -1;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  operands[2] = x3;
  if (!s_register_operand (operands[2], E_SImode))
    return -1;
  x4 = XEXP (x2, 1);
  operands[3] = x4;
  if (!arm_rhs_operand (operands[3], E_SImode))
    return -1;
  return 0;
}

static int
pattern581 (rtx x1, int i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  if (XVECLEN (x1, 0) != i1)
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  if (GET_CODE (x2) != CONST_INT)
    return -1;
  x3 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x3) != CONST_INT)
    return -1;
  x4 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x4) != CONST_INT)
    return -1;
  x5 = XVECEXP (x1, 0, 3);
  if (GET_CODE (x5) != CONST_INT)
    return -1;
  return 0;
}

static int
pattern582 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (GET_MODE (x1) != i1)
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_SFmode:
      if (!s_register_operand (operands[0], E_SFmode)
          || !vfp_compare_operand (operands[1], E_SFmode))
        return -1;
      return 0;

    case E_DFmode:
      if (!s_register_operand (operands[0], E_DFmode)
          || !vfp_compare_operand (operands[1], E_DFmode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern583 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1
      || !s_register_operand (operands[1], i1))
    return -1;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x2, 0);
  operands[2] = x3;
  if (!s_register_operand (operands[2], i1))
    return -1;
  x4 = XEXP (x2, 1);
  operands[3] = x4;
  if (!s_register_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern584 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != i1
      || !s_register_operand (operands[2], i1)
      || !s_register_operand (operands[3], i1)
      || !s_register_operand (operands[1], i1))
    return -1;
  return 0;
}

static int
pattern585 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  if (GET_MODE (x2) != i1
      || !register_operand (operands[1], i1)
      || !register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern586 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1
      || !register_operand (operands[1], i1)
      || !register_operand (operands[2], i1)
      || !register_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern587 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1
      || !register_operand (operands[1], i1)
      || !register_operand (operands[2], i1))
    return -1;
  x2 = XEXP (x1, 2);
  if (GET_MODE (x2) != i1
      || !register_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern588 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !register_operand (operands[1], i1)
      || !register_operand (operands[2], i1)
      || !register_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern589 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !register_operand (operands[1], i1)
      || !register_operand (operands[2], i1))
    return -1;
  x3 = XEXP (x1, 2);
  if (GET_MODE (x3) != i1
      || !register_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern590 (rtx x1, rtx_code i1, machine_mode i2, rtx_code i3, rtx_code i4)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != i4
      || GET_MODE (x1) != E_SImode)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != i3
      || GET_MODE (x2) != i2)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != i1
      || GET_MODE (x3) != E_DImode)
    return -1;
  return 0;
}

static int
pattern591 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 1);
  x4 = XVECEXP (x3, 0, 1);
  operands[3] = x4;
  if (!const_int_operand (operands[3], E_SImode))
    return -1;
  x5 = XVECEXP (x1, 0, 3);
  x6 = XEXP (x5, 0);
  operands[4] = x6;
  x7 = XVECEXP (x1, 0, 4);
  x8 = XEXP (x7, 0);
  operands[5] = x8;
  if (!scratch_operand (operands[5], E_SImode))
    return -1;
  x9 = XEXP (x2, 0);
  if (!rtx_equal_p (x9, operands[1]))
    return -1;
  x10 = XVECEXP (x3, 0, 0);
  switch (GET_CODE (x10))
    {
    case PLUS:
      return 0;

    case MINUS:
      return 1;

    case IOR:
      return 2;

    case XOR:
      return 3;

    case AND:
      return 4;

    case NOT:
      return 5;

    default:
      return -1;
    }
}

static int
pattern592 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || !mem_noofs_operand (operands[1], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  if (GET_MODE (x2) != i1
      || !reg_or_int_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern593 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  operands[2] = x3;
  x4 = XEXP (x2, 0);
  if (!rtx_equal_p (x4, operands[1]))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_QImode:
      return pattern592 (x1, E_QImode); /* [-1, 0] */

    case E_HImode:
      if (pattern592 (x1, E_HImode) != 0)
        return -1;
      return 1;

    case E_DImode:
      if (!s_register_operand (operands[0], E_DImode)
          || !mem_noofs_operand (operands[1], E_DImode)
          || GET_MODE (x1) != E_DImode
          || GET_MODE (x2) != E_DImode
          || !s_register_operand (operands[2], E_DImode))
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern594 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != MEM
      || GET_MODE (x1) != E_SImode)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != PLUS
      || GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != CONST_INT)
    return -1;
  return 0;
}

static int
pattern595 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !s_register_operand (operands[2], i1)
      || !s_register_operand (operands[3], i1)
      || !s_register_operand (operands[1], i1))
    return -1;
  return 0;
}

static int
pattern596 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i2)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != i2)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) != i2
      || !register_operand (operands[1], i1))
    return -1;
  x5 = XEXP (x3, 1);
  if (GET_MODE (x5) != i2
      || !register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern597 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 2);
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != MEM
      || GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != PLUS
      || GET_MODE (x4) != E_SImode)
    return -1;
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != CONST_INT)
    return -1;
  x6 = XVECEXP (x1, 0, 3);
  x7 = XEXP (x6, 0);
  if (GET_CODE (x7) != MEM
      || GET_MODE (x7) != E_SImode)
    return -1;
  return 0;
}

static int
pattern598 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != MEM
      || GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != PLUS
      || GET_MODE (x4) != E_SImode)
    return -1;
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != CONST_INT
      || pattern597 (x1) != 0)
    return -1;
  return 0;
}

static int
pattern599 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != MEM
      || GET_MODE (x1) != E_SImode)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != PLUS
      || GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != CONST_INT)
    return -1;
  return 0;
}

static int
pattern600 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != MINUS
      || GET_MODE (x1) != E_SImode)
    return -1;
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) != PLUS
      || GET_MODE (x2) != E_SImode)
    return -1;
  return 0;
}

static int
pattern601 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  operands[3] = x4;
  if (!s_register_operand (operands[3], E_SImode))
    return -1;
  x5 = XEXP (x3, 1);
  operands[4] = x5;
  if (!arm_add_operand (operands[4], E_SImode))
    return -1;
  x6 = XEXP (x1, 1);
  operands[1] = x6;
  if (!arm_rhs_operand (operands[1], E_SImode))
    return -1;
  x7 = XEXP (x1, 2);
  operands[2] = x7;
  if (!arm_rhs_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern602 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || !mem_noofs_operand (operands[1], i1)
      || GET_MODE (x1) != i1
      || !s_register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern603 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 2);
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != MEM
      || GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != PLUS
      || GET_MODE (x4) != E_SImode)
    return -1;
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != CONST_INT)
    return -1;
  x6 = XVECEXP (x1, 0, 3);
  x7 = XEXP (x6, 1);
  if (GET_CODE (x7) != MEM
      || GET_MODE (x7) != E_SImode)
    return -1;
  x8 = XEXP (x7, 0);
  if (GET_CODE (x8) != PLUS
      || GET_MODE (x8) != E_SImode)
    return -1;
  x9 = XEXP (x8, 1);
  if (GET_CODE (x9) != CONST_INT)
    return -1;
  x10 = XVECEXP (x1, 0, 4);
  x11 = XEXP (x10, 1);
  if (GET_CODE (x11) != MEM
      || GET_MODE (x11) != E_SImode)
    return -1;
  return 0;
}

static int
pattern604 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  switch (GET_CODE (x1))
    {
    case PLUS:
      x2 = XEXP (x1, 1);
      operands[2] = x2;
      if (!reg_or_int_operand (operands[2], E_SImode))
        return -1;
      x3 = XEXP (x1, 0);
      if (!rtx_equal_p (x3, operands[1]))
        return -1;
      return 0;

    case MINUS:
      x2 = XEXP (x1, 1);
      operands[2] = x2;
      if (!reg_or_int_operand (operands[2], E_SImode))
        return -1;
      x3 = XEXP (x1, 0);
      if (!rtx_equal_p (x3, operands[1]))
        return -1;
      return 1;

    case IOR:
      x2 = XEXP (x1, 1);
      operands[2] = x2;
      if (!reg_or_int_operand (operands[2], E_SImode))
        return -1;
      x3 = XEXP (x1, 0);
      if (!rtx_equal_p (x3, operands[1]))
        return -1;
      return 2;

    case XOR:
      x2 = XEXP (x1, 1);
      operands[2] = x2;
      if (!reg_or_int_operand (operands[2], E_SImode))
        return -1;
      x3 = XEXP (x1, 0);
      if (!rtx_equal_p (x3, operands[1]))
        return -1;
      return 3;

    case AND:
      x2 = XEXP (x1, 1);
      operands[2] = x2;
      if (!reg_or_int_operand (operands[2], E_SImode))
        return -1;
      x3 = XEXP (x1, 0);
      if (!rtx_equal_p (x3, operands[1]))
        return -1;
      return 4;

    case NOT:
      x3 = XEXP (x1, 0);
      if (GET_CODE (x3) != AND
          || GET_MODE (x3) != E_SImode)
        return -1;
      x4 = XEXP (x3, 1);
      operands[2] = x4;
      if (!reg_or_int_operand (operands[2], E_SImode))
        return -1;
      x5 = XEXP (x3, 0);
      if (!rtx_equal_p (x5, operands[1]))
        return -1;
      return 5;

    default:
      return -1;
    }
}

static int
pattern605 (rtx x1, machine_mode i1, rtx_code i2, rtx_code i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != i3
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != i2
      || GET_MODE (x2) != i1)
    return -1;
  return 0;
}

static int
pattern606 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != VEC_SELECT
      || GET_MODE (x1) != E_SImode)
    return -1;
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) != PARALLEL
      || XVECLEN (x2, 0) != 1)
    return -1;
  x3 = XVECEXP (x2, 0, 0);
  if (GET_CODE (x3) != CONST_INT)
    return -1;
  return 0;
}

static int
pattern607 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !register_operand (operands[1], i1))
    return -1;
  x3 = XEXP (x1, 1);
  if (GET_MODE (x3) != i1
      || !register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern608 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != MULT
      || GET_MODE (x1) != E_DImode)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != SIGN_EXTEND
      || GET_MODE (x2) != E_DImode)
    return -1;
  return 0;
}

static int
pattern609 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != i2
      || !register_operand (operands[1], i1))
    return -1;
  return 0;
}

static int
pattern610 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  if (GET_CODE (x2) != CONST_INT)
    return -1;
  x3 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x3) != CONST_INT)
    return -1;
  x4 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x4) != CONST_INT)
    return -1;
  x5 = XVECEXP (x1, 0, 3);
  if (GET_CODE (x5) != CONST_INT)
    return -1;
  return 0;
}

static int
pattern611 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != i2
      || !s_register_operand (operands[2], i3))
    return -1;
  x4 = XEXP (x1, 1);
  if (GET_MODE (x4) != i1)
    return -1;
  x5 = XEXP (x4, 0);
  if (GET_MODE (x5) != i2
      || !s_register_operand (operands[1], i1))
    return -1;
  return 0;
}

static int
pattern612 (rtx x1, rtx_code i1, rtx_code i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  switch (GET_CODE (x1))
    {
    case SET:
      x2 = XEXP (x1, 1);
      if (GET_CODE (x2) != i2
          || GET_MODE (x2) != E_SImode)
        return -1;
      x3 = XEXP (x2, 0);
      if (GET_CODE (x3) != i1
          || GET_MODE (x3) != E_SImode)
        return -1;
      x4 = XEXP (x1, 0);
      operands[0] = x4;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x5 = XEXP (x3, 0);
      if (!rtx_equal_p (x5, operands[2]))
        return -1;
      return 0;

    case CLOBBER:
      x4 = XEXP (x1, 0);
      operands[0] = x4;
      if (!scratch_operand (operands[0], E_SImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern613 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 2);
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != MEM
      || GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != PLUS
      || GET_MODE (x4) != E_SImode)
    return -1;
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != CONST_INT)
    return -1;
  x6 = XVECEXP (x1, 0, 3);
  x7 = XEXP (x6, 0);
  if (GET_CODE (x7) != MEM
      || GET_MODE (x7) != E_SImode)
    return -1;
  x8 = XEXP (x7, 0);
  if (GET_CODE (x8) != PLUS
      || GET_MODE (x8) != E_SImode)
    return -1;
  x9 = XEXP (x8, 1);
  if (GET_CODE (x9) != CONST_INT)
    return -1;
  x10 = XVECEXP (x1, 0, 4);
  x11 = XEXP (x10, 0);
  if (GET_CODE (x11) != MEM
      || GET_MODE (x11) != E_SImode)
    return -1;
  return 0;
}

static int
pattern614 (rtx x1, machine_mode i1, machine_mode i2, machine_mode i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != i2)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) != i2
      || !s_register_operand (operands[2], i3))
    return -1;
  x5 = XEXP (x1, 1);
  if (GET_MODE (x5) != i1)
    return -1;
  x6 = XEXP (x5, 0);
  if (GET_MODE (x6) != i2
      || !s_register_operand (operands[1], i1))
    return -1;
  return 0;
}

static int
pattern615 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != i1)
    return -1;
  x4 = XEXP (x2, 1);
  if (GET_MODE (x4) != i1
      || !s_register_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern616 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  if (GET_MODE (x1) != E_V4SImode)
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  if (GET_CODE (x2) != CONST_INT
      || XWINT (x2, 0) != 32768L)
    return -1;
  x3 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x3) != CONST_INT
      || XWINT (x3, 0) != 32768L)
    return -1;
  x4 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x4) != CONST_INT
      || XWINT (x4, 0) != 32768L)
    return -1;
  return 0;
}

static int
pattern617 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i2)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != i2)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) != i2)
    return -1;
  x5 = XEXP (x4, 0);
  if (GET_MODE (x5) != i2
      || !register_operand (operands[1], i1))
    return -1;
  x6 = XEXP (x4, 1);
  if (GET_MODE (x6) != i2
      || !register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern618 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 1);
  if (GET_MODE (x4) != E_V2DImode)
    return -1;
  x5 = XVECEXP (x4, 0, 0);
  if (GET_CODE (x5) != CONST_INT
      || XWINT (x5, 0) != 2147483648L)
    return -1;
  x6 = XVECEXP (x4, 0, 1);
  if (GET_CODE (x6) != CONST_INT
      || XWINT (x6, 0) != 2147483648L)
    return -1;
  x7 = XEXP (x2, 1);
  if (XWINT (x7, 0) != 32L
      || pattern617 (x1, E_V2SImode, E_V2DImode) != 0)
    return -1;
  return 0;
}

static int
pattern619 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XVECEXP (x2, 0, 1);
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) != UNSPEC
      || XVECLEN (x4, 0) != 1
      || XINT (x4, 1) != 28
      || GET_MODE (x4) != E_CCmode)
    return -1;
  x5 = XVECEXP (x4, 0, 0);
  if (GET_CODE (x5) != REG
      || REGNO (x5) != 104
      || GET_MODE (x5) != E_CCmode)
    return -1;
  x6 = XEXP (x3, 0);
  if (GET_CODE (x6) != REG
      || REGNO (x6) != 104
      || GET_MODE (x6) != E_CCmode)
    return -1;
  x7 = XEXP (x1, 0);
  operands[4] = x7;
  x8 = XEXP (x7, 0);
  operands[5] = x8;
  x9 = XVECEXP (x2, 0, 0);
  x10 = XEXP (x9, 1);
  x11 = XEXP (x10, 0);
  x12 = XEXP (x11, 0);
  x13 = XEXP (x12, 0);
  operands[1] = x13;
  if (!s_register_operand (operands[1], i1))
    return -1;
  return 0;
}

static int
pattern620 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    case MEM:
      if (GET_MODE (x2) != E_SImode)
        return -1;
      return 0;

    case REG:
      operands[1] = x2;
      if (!arm_hard_general_register_operand (operands[1], E_SImode))
        return -1;
      x3 = XEXP (x1, 0);
      if (GET_CODE (x3) != MEM
          || GET_MODE (x3) != E_SImode)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern621 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != MEM
      || GET_MODE (x1) != E_SImode)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != PLUS
      || GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != CONST_INT)
    return -1;
  return 0;
}

static int
pattern622 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || !mem_noofs_operand (operands[1], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != i1
      || !reg_or_int_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern623 (rtx x1, int i1, int i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != MULT
      || GET_MODE (x1) != E_V2SImode)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != VEC_SELECT
      || GET_MODE (x2) != E_V2SImode)
    return -1;
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != PARALLEL
      || XVECLEN (x3, 0) != 2)
    return -1;
  x4 = XVECEXP (x3, 0, 0);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + i2])
    return -1;
  x5 = XVECEXP (x3, 0, 1);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
    return -1;
  return 0;
}

static int
pattern624 (rtx x1, machine_mode i1, machine_mode i2, rtx_code i3)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != i3
      || GET_MODE (x1) != i2)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != VEC_SELECT
      || GET_MODE (x2) != i1)
    return -1;
  return 0;
}

static int
pattern625 (rtx x1, int i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  if (GET_MODE (x1) != E_V8HImode)
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
    return -1;
  x3 = XVECEXP (x1, 0, 1);
  if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
    return -1;
  x4 = XVECEXP (x1, 0, 2);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
    return -1;
  x5 = XVECEXP (x1, 0, 3);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
    return -1;
  x6 = XVECEXP (x1, 0, 4);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
    return -1;
  x7 = XVECEXP (x1, 0, 5);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
    return -1;
  x8 = XVECEXP (x1, 0, 6);
  if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
    return -1;
  x9 = XVECEXP (x1, 0, 7);
  if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
    return -1;
  return 0;
}

static int
pattern626 (rtx x1, int i1, int i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != PARALLEL
      || XVECLEN (x1, 0) != i2)
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
    return -1;
  x3 = XVECEXP (x1, 0, 1);
  if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
    return -1;
  return 0;
}

static int
pattern627 (rtx x1, int i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  if (XVECLEN (x1, 0) != i1)
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  if (GET_CODE (x2) != CONST_INT)
    return -1;
  x3 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x3) != CONST_INT)
    return -1;
  x4 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x4) != CONST_INT)
    return -1;
  x5 = XVECEXP (x1, 0, 3);
  if (GET_CODE (x5) != CONST_INT)
    return -1;
  return 0;
}

static int
pattern628 (rtx x1, rtx_code i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) != i1)
    return -1;
  x3 = XEXP (x1, 0);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 0);
  operands[5] = x5;
  if (!s_register_operand (operands[5], E_SImode))
    return -1;
  x6 = XEXP (x4, 1);
  operands[6] = x6;
  if (!const_int_operand (operands[6], E_SImode))
    return -1;
  x7 = XEXP (x2, 0);
  operands[2] = x7;
  if (!s_register_operand (operands[2], E_SImode))
    return -1;
  x8 = XEXP (x2, 1);
  operands[3] = x8;
  if (!const_int_operand (operands[3], E_SImode))
    return -1;
  x9 = XEXP (x2, 2);
  operands[4] = x9;
  if (!const_int_operand (operands[4], E_SImode))
    return -1;
  return 0;
}

static int
pattern629 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  switch (GET_CODE (x1))
    {
    case REG:
    case SUBREG:
      operands[3] = x1;
      if (!register_operand (operands[3], E_SImode))
        return -1;
      return 0;

    case ASHIFTRT:
      if (GET_MODE (x1) != E_SImode)
        return -1;
      x2 = XEXP (x1, 1);
      if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
        return -1;
      x3 = XEXP (x1, 0);
      operands[3] = x3;
      if (!register_operand (operands[3], E_SImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern630 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != MEM
      || GET_MODE (x1) != E_SImode)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != PLUS
      || GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != CONST_INT)
    return -1;
  return 0;
}

static int
pattern631 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || !mem_noofs_operand (operands[1], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  if (GET_MODE (x2) != i1
      || !reg_or_int_operand (operands[2], i1)
      || !scratch_operand (operands[4], i1))
    return -1;
  return 0;
}

static int
pattern632 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], E_DImode)
      || !mem_noofs_operand (operands[1], E_DImode)
      || GET_MODE (x1) != E_DImode)
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  if (GET_MODE (x2) != E_DImode
      || !s_register_operand (operands[2], E_DImode)
      || !scratch_operand (operands[4], E_DImode))
    return -1;
  return 0;
}

static int
pattern633 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  operands[2] = x3;
  x4 = XEXP (x2, 0);
  if (!rtx_equal_p (x4, operands[1]))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_QImode:
      return pattern631 (x1, E_QImode); /* [-1, 0] */

    case E_HImode:
      if (pattern631 (x1, E_HImode) != 0)
        return -1;
      return 1;

    case E_SImode:
      if (pattern631 (x1, E_SImode) != 0)
        return -1;
      return 2;

    case E_DImode:
      if (pattern632 (x1) != 0)
        return -1;
      return 3;

    default:
      return -1;
    }
}

static int
pattern634 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 1);
  x5 = XEXP (x4, 0);
  x6 = XEXP (x5, 0);
  if (!rtx_equal_p (x6, operands[1]))
    return -1;
  x7 = XEXP (x5, 1);
  if (!rtx_equal_p (x7, operands[2]))
    return -1;
  x8 = XVECEXP (x1, 0, 1);
  x9 = XEXP (x8, 1);
  x10 = XEXP (x9, 0);
  if (!rtx_equal_p (x10, operands[1]))
    return -1;
  x11 = XEXP (x9, 1);
  if (!rtx_equal_p (x11, operands[2]))
    return -1;
  return 0;
}

static int
pattern635 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 1);
  x6 = XEXP (x5, 0);
  operands[2] = x6;
  if (!s_register_operand (operands[2], E_SImode))
    return -1;
  x7 = XVECEXP (x1, 0, 1);
  x8 = XEXP (x7, 0);
  operands[0] = x8;
  if (!s_register_operand (operands[0], E_SImode)
      || pattern634 (x1) != 0)
    return -1;
  return 0;
}

static int
pattern636 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  operands[2] = x3;
  x4 = XEXP (x2, 0);
  if (!rtx_equal_p (x4, operands[1]))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_QImode:
      return pattern631 (x1, E_QImode); /* [-1, 0] */

    case E_HImode:
      if (pattern631 (x1, E_HImode) != 0)
        return -1;
      return 1;

    case E_DImode:
      if (pattern632 (x1) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern637 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !register_operand (operands[1], i1))
    return -1;
  x3 = XEXP (x1, 1);
  if (GET_MODE (x3) != i1
      || !register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern638 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 2);
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != MEM
      || GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != PLUS
      || GET_MODE (x4) != E_SImode)
    return -1;
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != CONST_INT)
    return -1;
  x6 = XVECEXP (x1, 0, 3);
  x7 = XEXP (x6, 1);
  if (GET_CODE (x7) != MEM
      || GET_MODE (x7) != E_SImode)
    return -1;
  x8 = XEXP (x7, 0);
  if (GET_CODE (x8) != PLUS
      || GET_MODE (x8) != E_SImode)
    return -1;
  x9 = XEXP (x8, 1);
  if (GET_CODE (x9) != CONST_INT)
    return -1;
  x10 = XVECEXP (x1, 0, 4);
  x11 = XEXP (x10, 1);
  if (GET_CODE (x11) != MEM
      || GET_MODE (x11) != E_SImode)
    return -1;
  return 0;
}

static int
pattern639 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  if (!load_multiple_operation (operands[0], E_VOIDmode))
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 0);
  operands[1] = x3;
  if (!arm_hard_general_register_operand (operands[1], E_SImode))
    return -1;
  x4 = XVECEXP (x1, 0, 1);
  x5 = XEXP (x4, 0);
  operands[2] = x5;
  if (!arm_hard_general_register_operand (operands[2], E_SImode))
    return -1;
  x6 = XVECEXP (x1, 0, 2);
  x7 = XEXP (x6, 0);
  operands[3] = x7;
  if (!arm_hard_general_register_operand (operands[3], E_SImode))
    return -1;
  return 0;
}

static int
pattern640 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  operands[2] = x4;
  if (!register_operand (operands[2], E_V2SImode))
    return -1;
  x5 = XEXP (x1, 1);
  x6 = XEXP (x5, 0);
  x7 = XEXP (x6, 0);
  operands[3] = x7;
  if (!register_operand (operands[3], E_V2SImode))
    return -1;
  x8 = XEXP (x3, 1);
  x9 = XVECEXP (x8, 0, 0);
  switch (XWINT (x9, 0))
    {
    case 0L:
      x10 = XEXP (x6, 1);
      x11 = XVECEXP (x10, 0, 0);
      switch (XWINT (x11, 0))
        {
        case 0L:
          return 0;

        case 1L:
          return 1;

        default:
          return -1;
        }

    case 1L:
      x10 = XEXP (x6, 1);
      x11 = XVECEXP (x10, 0, 0);
      switch (XWINT (x11, 0))
        {
        case 0L:
          return 2;

        case 1L:
          return 3;

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern641 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 2);
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != MEM
      || GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != PLUS
      || GET_MODE (x4) != E_SImode)
    return -1;
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != CONST_INT)
    return -1;
  x6 = XVECEXP (x1, 0, 3);
  x7 = XEXP (x6, 0);
  if (GET_CODE (x7) != MEM
      || GET_MODE (x7) != E_SImode)
    return -1;
  x8 = XEXP (x7, 0);
  if (GET_CODE (x8) != PLUS
      || GET_MODE (x8) != E_SImode)
    return -1;
  x9 = XEXP (x8, 1);
  if (GET_CODE (x9) != CONST_INT)
    return -1;
  x10 = XVECEXP (x1, 0, 4);
  x11 = XEXP (x10, 0);
  if (GET_CODE (x11) != MEM
      || GET_MODE (x11) != E_SImode)
    return -1;
  return 0;
}

static int
pattern642 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || !mem_noofs_operand (operands[1], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != i1
      || !reg_or_int_operand (operands[2], i1)
      || !scratch_operand (operands[4], i1))
    return -1;
  return 0;
}

static int
pattern643 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], E_DImode)
      || !mem_noofs_operand (operands[1], E_DImode)
      || GET_MODE (x1) != E_DImode)
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  if (GET_MODE (x2) != E_DImode)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != E_DImode
      || !s_register_operand (operands[2], E_DImode)
      || !scratch_operand (operands[4], E_DImode))
    return -1;
  return 0;
}

static int
pattern644 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  operands[2] = x4;
  if (!register_operand (operands[2], E_SImode))
    return -1;
  x5 = XEXP (x2, 1);
  x6 = XEXP (x5, 0);
  operands[3] = x6;
  if (!register_operand (operands[3], E_SImode))
    return -1;
  x7 = XVECEXP (x1, 0, 2);
  x8 = XEXP (x7, 0);
  operands[0] = x8;
  if (!register_operand (operands[0], E_SImode))
    return -1;
  x9 = XVECEXP (x1, 0, 3);
  x10 = XEXP (x9, 0);
  operands[1] = x10;
  if (!register_operand (operands[1], E_SImode))
    return -1;
  return 0;
}

static int
pattern645 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  switch (GET_CODE (x1))
    {
    case REG:
    case SUBREG:
      operands[3] = x1;
      if (!register_operand (operands[3], E_SImode))
        return -1;
      return 0;

    case ASHIFTRT:
      if (GET_MODE (x1) != E_SImode)
        return -1;
      x2 = XEXP (x1, 1);
      if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
        return -1;
      x3 = XEXP (x1, 0);
      operands[3] = x3;
      if (!register_operand (operands[3], E_SImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern646 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  operands[2] = x4;
  if (!register_operand (operands[2], E_V2SImode))
    return -1;
  x5 = XEXP (x1, 1);
  x6 = XEXP (x5, 0);
  x7 = XEXP (x6, 0);
  operands[3] = x7;
  if (!register_operand (operands[3], E_V2SImode))
    return -1;
  x8 = XEXP (x3, 1);
  x9 = XVECEXP (x8, 0, 0);
  switch (XWINT (x9, 0))
    {
    case 0L:
      x10 = XEXP (x6, 1);
      x11 = XVECEXP (x10, 0, 0);
      switch (XWINT (x11, 0))
        {
        case 0L:
          return 0;

        case 1L:
          return 1;

        default:
          return -1;
        }

    case 1L:
      x10 = XEXP (x6, 1);
      x11 = XVECEXP (x10, 0, 0);
      switch (XWINT (x11, 0))
        {
        case 0L:
          return 2;

        case 1L:
          return 3;

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern647 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11;
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[0], E_V2SImode)
      || GET_MODE (x1) != E_V2SImode)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != E_V2SImode)
    return -1;
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) != E_V4SImode)
    return -1;
  x5 = XEXP (x2, 1);
  x6 = XEXP (x5, 0);
  if (GET_MODE (x6) != E_V4SImode)
    return -1;
  x7 = XEXP (x1, 1);
  x8 = XEXP (x7, 0);
  x9 = XEXP (x8, 0);
  if (GET_MODE (x9) != E_V4SImode)
    return -1;
  x10 = XEXP (x7, 1);
  x11 = XEXP (x10, 0);
  if (GET_MODE (x11) != E_V4SImode)
    return -1;
  switch (GET_CODE (x4))
    {
    case SIGN_EXTEND:
      return 0;

    case ZERO_EXTEND:
      return 1;

    default:
      return -1;
    }
}

static int
pattern648 (rtx x1, machine_mode i1, machine_mode i2)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i2)
      || GET_MODE (x1) != i2
      || !s_register_operand (operands[2], i2)
      || !vpr_register_operand (operands[6], i1))
    return -1;
  return 0;
}

static int
pattern649 (rtx x1, int i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 1);
  if (XINT (x3, 1) != i1)
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      x4 = XVECEXP (x1, 0, 0);
      x5 = XEXP (x4, 1);
      return pattern648 (x5, E_V16BImode, E_V16QImode); /* [-1, 0] */

    case E_V8HImode:
      x4 = XVECEXP (x1, 0, 0);
      x5 = XEXP (x4, 1);
      if (pattern648 (x5, E_V8BImode, E_V8HImode) != 0)
        return -1;
      return 1;

    case E_V4SImode:
      x4 = XVECEXP (x1, 0, 0);
      x5 = XEXP (x4, 1);
      if (pattern648 (x5, E_V4BImode, E_V4SImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern650 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case REG:
    case SUBREG:
      return 0;

    case PLUS:
      if (GET_MODE (x4) != E_SImode)
        return -1;
      x5 = XEXP (x4, 1);
      if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
        return -1;
      x6 = XVECEXP (x1, 0, 2);
      x7 = XEXP (x6, 1);
      x8 = XEXP (x7, 0);
      x9 = XEXP (x8, 1);
      if (XWINT (x9, 0) != 8L)
        return -1;
      x10 = XVECEXP (x1, 0, 3);
      x11 = XEXP (x10, 1);
      x12 = XEXP (x11, 0);
      x13 = XEXP (x12, 1);
      if (XWINT (x13, 0) != 12L)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern651 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  if (!load_multiple_operation (operands[0], E_VOIDmode))
    return -1;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 0);
  operands[1] = x3;
  if (!arm_hard_general_register_operand (operands[1], E_SImode))
    return -1;
  x4 = XVECEXP (x1, 0, 2);
  x5 = XEXP (x4, 0);
  operands[2] = x5;
  if (!arm_hard_general_register_operand (operands[2], E_SImode))
    return -1;
  x6 = XVECEXP (x1, 0, 3);
  x7 = XEXP (x6, 0);
  operands[3] = x7;
  if (!arm_hard_general_register_operand (operands[3], E_SImode))
    return -1;
  return 0;
}

static int
pattern652 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case REG:
    case SUBREG:
      return 0;

    case PLUS:
      if (GET_MODE (x4) != E_SImode)
        return -1;
      x5 = XEXP (x4, 1);
      if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
        return -1;
      x6 = XVECEXP (x1, 0, 2);
      x7 = XEXP (x6, 0);
      x8 = XEXP (x7, 0);
      x9 = XEXP (x8, 1);
      if (XWINT (x9, 0) != 8L)
        return -1;
      x10 = XVECEXP (x1, 0, 3);
      x11 = XEXP (x10, 0);
      x12 = XEXP (x11, 0);
      x13 = XEXP (x12, 1);
      if (XWINT (x13, 0) != 12L)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern653 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[3] = x2;
  x3 = XEXP (x2, 0);
  operands[4] = x3;
  if (!register_operand (operands[0], E_V2SImode))
    return -1;
  x4 = XEXP (x1, 1);
  x5 = XEXP (x4, 1);
  if (GET_MODE (x5) != E_V2SImode)
    return -1;
  x6 = XEXP (x5, 0);
  if (GET_MODE (x6) != E_V2SImode)
    return -1;
  x7 = XEXP (x6, 0);
  x8 = XEXP (x7, 0);
  if (GET_MODE (x8) != E_V4SImode)
    return -1;
  x9 = XEXP (x6, 1);
  x10 = XEXP (x9, 0);
  if (GET_MODE (x10) != E_V4SImode)
    return -1;
  x11 = XEXP (x5, 1);
  x12 = XEXP (x11, 0);
  x13 = XEXP (x12, 0);
  if (GET_MODE (x13) != E_V4SImode)
    return -1;
  x14 = XEXP (x11, 1);
  x15 = XEXP (x14, 0);
  if (GET_MODE (x15) != E_V4SImode)
    return -1;
  switch (GET_CODE (x8))
    {
    case SIGN_EXTEND:
      return 0;

    case ZERO_EXTEND:
      return 1;

    default:
      return -1;
    }
}

static int
pattern654 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 0);
  if (!rtx_equal_p (x5, operands[3]))
    return -1;
  x6 = XEXP (x2, 0);
  x7 = XEXP (x6, 0);
  x8 = XEXP (x7, 0);
  if (!rtx_equal_p (x8, operands[2]))
    return -1;
  x9 = XVECEXP (x1, 0, 2);
  x10 = XEXP (x9, 1);
  x11 = XEXP (x10, 0);
  if (!rtx_equal_p (x11, operands[2]))
    return -1;
  x12 = XVECEXP (x1, 0, 3);
  x13 = XEXP (x12, 1);
  x14 = XEXP (x13, 0);
  if (!rtx_equal_p (x14, operands[3]))
    return -1;
  return 0;
}

static int
pattern655 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 2);
  switch (XWINT (x3, 0))
    {
    case 0L:
      x4 = XVECEXP (x1, 0, 2);
      x5 = XEXP (x4, 2);
      if (XWINT (x5, 0) != 32L)
        return -1;
      x6 = XVECEXP (x1, 0, 3);
      x7 = XEXP (x6, 2);
      switch (XWINT (x7, 0))
        {
        case 0L:
          x8 = XVECEXP (x1, 0, 4);
          x9 = XEXP (x8, 2);
          if (XWINT (x9, 0) != 32L)
            return -1;
          return 0;

        case 16L:
          x8 = XVECEXP (x1, 0, 4);
          x9 = XEXP (x8, 2);
          if (XWINT (x9, 0) != 48L)
            return -1;
          return 1;

        default:
          return -1;
        }

    case 16L:
      x4 = XVECEXP (x1, 0, 2);
      x5 = XEXP (x4, 2);
      if (XWINT (x5, 0) != 48L)
        return -1;
      x6 = XVECEXP (x1, 0, 3);
      x7 = XEXP (x6, 2);
      switch (XWINT (x7, 0))
        {
        case 0L:
          x8 = XVECEXP (x1, 0, 4);
          x9 = XEXP (x8, 2);
          if (XWINT (x9, 0) != 32L)
            return -1;
          return 2;

        case 16L:
          x8 = XVECEXP (x1, 0, 4);
          x9 = XEXP (x8, 2);
          if (XWINT (x9, 0) != 48L)
            return -1;
          return 3;

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern656 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  operands[2] = x4;
  if (!register_operand (operands[2], E_SImode))
    return -1;
  x5 = XEXP (x2, 1);
  x6 = XEXP (x5, 0);
  operands[3] = x6;
  if (!register_operand (operands[3], E_SImode))
    return -1;
  x7 = XVECEXP (x1, 0, 3);
  x8 = XEXP (x7, 0);
  operands[0] = x8;
  if (!register_operand (operands[0], E_SImode))
    return -1;
  x9 = XVECEXP (x1, 0, 4);
  x10 = XEXP (x9, 0);
  operands[1] = x10;
  if (!register_operand (operands[1], E_SImode))
    return -1;
  return 0;
}

static int
pattern657 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  if (!load_multiple_operation (operands[0], E_VOIDmode))
    return -1;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 0);
  operands[1] = x3;
  if (!arm_hard_general_register_operand (operands[1], E_SImode))
    return -1;
  x4 = XVECEXP (x1, 0, 2);
  x5 = XEXP (x4, 0);
  operands[2] = x5;
  if (!arm_hard_general_register_operand (operands[2], E_SImode))
    return -1;
  x6 = XVECEXP (x1, 0, 3);
  x7 = XEXP (x6, 0);
  operands[3] = x7;
  if (!arm_hard_general_register_operand (operands[3], E_SImode))
    return -1;
  x8 = XVECEXP (x1, 0, 4);
  x9 = XEXP (x8, 0);
  operands[4] = x9;
  if (!arm_hard_general_register_operand (operands[4], E_SImode))
    return -1;
  return 0;
}

static int
pattern658 (rtx x1, rtx_code i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != i1)
    return -1;
  x5 = XEXP (x1, 1);
  x6 = XEXP (x5, 0);
  x7 = XEXP (x6, 0);
  if (GET_CODE (x7) != i1)
    return -1;
  x8 = XEXP (x5, 1);
  x9 = XEXP (x8, 0);
  if (GET_CODE (x9) != i1)
    return -1;
  x10 = XEXP (x2, 0);
  x11 = XEXP (x10, 0);
  x12 = XEXP (x11, 0);
  operands[1] = x12;
  if (!register_operand (operands[1], E_V4HImode))
    return -1;
  x13 = XEXP (x4, 0);
  operands[2] = x13;
  if (!register_operand (operands[2], E_V4HImode))
    return -1;
  x14 = XEXP (x7, 0);
  if (!rtx_equal_p (x14, operands[1]))
    return -1;
  x15 = XEXP (x9, 0);
  if (!rtx_equal_p (x15, operands[2]))
    return -1;
  x16 = XEXP (x3, 1);
  x17 = XVECEXP (x16, 0, 0);
  switch (XWINT (x17, 0))
    {
    case 1L:
      x18 = XVECEXP (x16, 0, 1);
      if (XWINT (x18, 0) != 3L)
        return -1;
      x19 = XEXP (x8, 1);
      x20 = XVECEXP (x19, 0, 0);
      if (XWINT (x20, 0) != 0L)
        return -1;
      x21 = XVECEXP (x19, 0, 1);
      if (XWINT (x21, 0) != 2L)
        return -1;
      return 0;

    case 0L:
      x18 = XVECEXP (x16, 0, 1);
      if (XWINT (x18, 0) != 2L)
        return -1;
      x19 = XEXP (x8, 1);
      x20 = XVECEXP (x19, 0, 0);
      if (XWINT (x20, 0) != 1L)
        return -1;
      x21 = XVECEXP (x19, 0, 1);
      if (XWINT (x21, 0) != 3L)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern659 (rtx x1, rtx_code i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != i1)
    return -1;
  x5 = XEXP (x1, 1);
  x6 = XEXP (x5, 0);
  x7 = XEXP (x6, 0);
  if (GET_CODE (x7) != i1)
    return -1;
  x8 = XEXP (x5, 1);
  x9 = XEXP (x8, 0);
  if (GET_CODE (x9) != i1)
    return -1;
  x10 = XEXP (x2, 0);
  x11 = XEXP (x10, 0);
  x12 = XEXP (x11, 0);
  operands[1] = x12;
  if (!register_operand (operands[1], E_V4HImode))
    return -1;
  x13 = XEXP (x4, 0);
  operands[2] = x13;
  if (!register_operand (operands[2], E_V4HImode))
    return -1;
  x14 = XEXP (x7, 0);
  if (!rtx_equal_p (x14, operands[1]))
    return -1;
  x15 = XEXP (x9, 0);
  if (!rtx_equal_p (x15, operands[2]))
    return -1;
  return 0;
}

static int
pattern660 (rtx x1, int i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != PLUS
      || GET_MODE (x1) != E_SImode)
    return -1;
  x2 = XEXP (x1, 1);
  if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
    return -1;
  x3 = XEXP (x1, 0);
  if (!rtx_equal_p (x3, operands[5]))
    return -1;
  return 0;
}

static int
pattern661 (rtx x1, int i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != PLUS
      || GET_MODE (x1) != E_SImode)
    return -1;
  x2 = XEXP (x1, 1);
  if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
    return -1;
  x3 = XEXP (x1, 0);
  if (!rtx_equal_p (x3, operands[5]))
    return -1;
  return 0;
}

static int
pattern662 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case REG:
    case SUBREG:
      return 0;

    case PLUS:
      if (GET_MODE (x4) != E_SImode)
        return -1;
      x5 = XEXP (x4, 1);
      if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
        return -1;
      x6 = XVECEXP (x1, 0, 2);
      x7 = XEXP (x6, 1);
      x8 = XEXP (x7, 0);
      x9 = XEXP (x8, 1);
      if (XWINT (x9, 0) != 8L)
        return -1;
      x10 = XVECEXP (x1, 0, 3);
      x11 = XEXP (x10, 1);
      x12 = XEXP (x11, 0);
      x13 = XEXP (x12, 1);
      if (XWINT (x13, 0) != 12L)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern663 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  if (!store_multiple_operation (operands[0], E_VOIDmode))
    return -1;
  x2 = XVECEXP (x1, 0, 2);
  x3 = XEXP (x2, 1);
  operands[2] = x3;
  if (!arm_hard_general_register_operand (operands[2], E_SImode))
    return -1;
  x4 = XVECEXP (x1, 0, 3);
  x5 = XEXP (x4, 1);
  operands[3] = x5;
  if (!arm_hard_general_register_operand (operands[3], E_SImode))
    return -1;
  x6 = XVECEXP (x1, 0, 4);
  x7 = XEXP (x6, 1);
  operands[4] = x7;
  if (!arm_hard_general_register_operand (operands[4], E_SImode))
    return -1;
  return 0;
}

static int
pattern664 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case REG:
    case SUBREG:
      return 0;

    case PLUS:
      if (GET_MODE (x4) != E_SImode)
        return -1;
      x5 = XEXP (x4, 1);
      if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
        return -1;
      x6 = XVECEXP (x1, 0, 2);
      x7 = XEXP (x6, 0);
      x8 = XEXP (x7, 0);
      x9 = XEXP (x8, 1);
      if (XWINT (x9, 0) != 8L)
        return -1;
      x10 = XVECEXP (x1, 0, 3);
      x11 = XEXP (x10, 0);
      x12 = XEXP (x11, 0);
      x13 = XEXP (x12, 1);
      if (XWINT (x13, 0) != 12L)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern665 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 0);
  operands[2] = x5;
  if (!register_operand (operands[2], E_V4HImode))
    return -1;
  x6 = XEXP (x2, 1);
  x7 = XEXP (x6, 0);
  x8 = XEXP (x7, 0);
  operands[3] = x8;
  if (!register_operand (operands[3], E_V4HImode))
    return -1;
  x9 = XEXP (x1, 1);
  x10 = XEXP (x9, 0);
  x11 = XEXP (x10, 0);
  x12 = XEXP (x11, 0);
  if (!rtx_equal_p (x12, operands[2]))
    return -1;
  x13 = XEXP (x9, 1);
  x14 = XEXP (x13, 0);
  x15 = XEXP (x14, 0);
  if (!rtx_equal_p (x15, operands[3]))
    return -1;
  x16 = XEXP (x4, 1);
  x17 = XVECEXP (x16, 0, 0);
  switch (XWINT (x17, 0))
    {
    case 0L:
      x18 = XEXP (x11, 1);
      x19 = XVECEXP (x18, 0, 0);
      if (XWINT (x19, 0) != 2L)
        return -1;
      x20 = XEXP (x7, 1);
      x21 = XVECEXP (x20, 0, 0);
      switch (XWINT (x21, 0))
        {
        case 0L:
          x22 = XEXP (x14, 1);
          x23 = XVECEXP (x22, 0, 0);
          if (XWINT (x23, 0) != 2L)
            return -1;
          return 0;

        case 1L:
          x22 = XEXP (x14, 1);
          x23 = XVECEXP (x22, 0, 0);
          if (XWINT (x23, 0) != 3L)
            return -1;
          return 1;

        default:
          return -1;
        }

    case 1L:
      x18 = XEXP (x11, 1);
      x19 = XVECEXP (x18, 0, 0);
      if (XWINT (x19, 0) != 3L)
        return -1;
      x20 = XEXP (x7, 1);
      x21 = XVECEXP (x20, 0, 0);
      switch (XWINT (x21, 0))
        {
        case 0L:
          x22 = XEXP (x14, 1);
          x23 = XVECEXP (x22, 0, 0);
          if (XWINT (x23, 0) != 2L)
            return -1;
          return 2;

        case 1L:
          x22 = XEXP (x14, 1);
          x23 = XVECEXP (x22, 0, 0);
          if (XWINT (x23, 0) != 3L)
            return -1;
          return 3;

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern666 (rtx x1, rtx_code i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != i1)
    return -1;
  x5 = XEXP (x1, 1);
  x6 = XEXP (x5, 0);
  x7 = XEXP (x6, 0);
  if (GET_CODE (x7) != i1)
    return -1;
  x8 = XEXP (x5, 1);
  x9 = XEXP (x8, 0);
  if (GET_CODE (x9) != i1)
    return -1;
  x10 = XEXP (x2, 0);
  x11 = XEXP (x10, 0);
  x12 = XEXP (x11, 0);
  operands[1] = x12;
  if (!register_operand (operands[1], E_V4HImode))
    return -1;
  x13 = XEXP (x4, 0);
  operands[2] = x13;
  if (!register_operand (operands[2], E_V4HImode))
    return -1;
  x14 = XEXP (x7, 0);
  if (!rtx_equal_p (x14, operands[1]))
    return -1;
  x15 = XEXP (x9, 0);
  if (!rtx_equal_p (x15, operands[2]))
    return -1;
  x16 = XEXP (x3, 1);
  x17 = XVECEXP (x16, 0, 0);
  switch (XWINT (x17, 0))
    {
    case 1L:
      x18 = XVECEXP (x16, 0, 1);
      if (XWINT (x18, 0) != 3L)
        return -1;
      x19 = XEXP (x8, 1);
      x20 = XVECEXP (x19, 0, 0);
      if (XWINT (x20, 0) != 0L)
        return -1;
      x21 = XVECEXP (x19, 0, 1);
      if (XWINT (x21, 0) != 2L)
        return -1;
      return 0;

    case 0L:
      x18 = XVECEXP (x16, 0, 1);
      if (XWINT (x18, 0) != 2L)
        return -1;
      x19 = XEXP (x8, 1);
      x20 = XVECEXP (x19, 0, 0);
      if (XWINT (x20, 0) != 1L)
        return -1;
      x21 = XVECEXP (x19, 0, 1);
      if (XWINT (x21, 0) != 3L)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern667 (rtx x1, rtx_code i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != i1)
    return -1;
  x5 = XEXP (x1, 1);
  x6 = XEXP (x5, 0);
  x7 = XEXP (x6, 0);
  if (GET_CODE (x7) != i1)
    return -1;
  x8 = XEXP (x5, 1);
  x9 = XEXP (x8, 0);
  if (GET_CODE (x9) != i1)
    return -1;
  x10 = XEXP (x2, 0);
  x11 = XEXP (x10, 0);
  x12 = XEXP (x11, 0);
  operands[1] = x12;
  if (!register_operand (operands[1], E_V4HImode))
    return -1;
  x13 = XEXP (x4, 0);
  operands[2] = x13;
  if (!register_operand (operands[2], E_V4HImode))
    return -1;
  x14 = XEXP (x7, 0);
  if (!rtx_equal_p (x14, operands[1]))
    return -1;
  x15 = XEXP (x9, 0);
  if (!rtx_equal_p (x15, operands[2]))
    return -1;
  return 0;
}

static int
pattern668 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 0);
  if (!rtx_equal_p (x5, operands[3]))
    return -1;
  x6 = XEXP (x2, 0);
  x7 = XEXP (x6, 0);
  x8 = XEXP (x7, 0);
  if (!rtx_equal_p (x8, operands[2]))
    return -1;
  x9 = XVECEXP (x1, 0, 2);
  x10 = XEXP (x9, 1);
  x11 = XEXP (x10, 0);
  x12 = XEXP (x11, 0);
  if (!rtx_equal_p (x12, operands[3]))
    return -1;
  x13 = XEXP (x9, 0);
  x14 = XEXP (x13, 0);
  x15 = XEXP (x14, 0);
  if (!rtx_equal_p (x15, operands[2]))
    return -1;
  x16 = XVECEXP (x1, 0, 3);
  x17 = XEXP (x16, 1);
  x18 = XEXP (x17, 0);
  if (!rtx_equal_p (x18, operands[2]))
    return -1;
  x19 = XVECEXP (x1, 0, 4);
  x20 = XEXP (x19, 1);
  x21 = XEXP (x20, 0);
  if (!rtx_equal_p (x21, operands[3]))
    return -1;
  return 0;
}

static int
pattern669 (rtx x1, int i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != PLUS
      || GET_MODE (x1) != E_SImode)
    return -1;
  x2 = XEXP (x1, 1);
  if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
    return -1;
  x3 = XEXP (x1, 0);
  if (!rtx_equal_p (x3, operands[5]))
    return -1;
  return 0;
}

static int
pattern670 (rtx x1, int i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != PLUS
      || GET_MODE (x1) != E_SImode)
    return -1;
  x2 = XEXP (x1, 1);
  if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
    return -1;
  x3 = XEXP (x1, 0);
  if (!rtx_equal_p (x3, operands[5]))
    return -1;
  return 0;
}

static int
pattern671 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 0);
  operands[2] = x5;
  if (!register_operand (operands[2], E_V4HImode))
    return -1;
  x6 = XEXP (x2, 1);
  x7 = XEXP (x6, 0);
  x8 = XEXP (x7, 0);
  operands[3] = x8;
  if (!register_operand (operands[3], E_V4HImode))
    return -1;
  x9 = XEXP (x1, 1);
  x10 = XEXP (x9, 0);
  x11 = XEXP (x10, 0);
  x12 = XEXP (x11, 0);
  if (!rtx_equal_p (x12, operands[2]))
    return -1;
  x13 = XEXP (x9, 1);
  x14 = XEXP (x13, 0);
  x15 = XEXP (x14, 0);
  if (!rtx_equal_p (x15, operands[3]))
    return -1;
  x16 = XEXP (x4, 1);
  x17 = XVECEXP (x16, 0, 0);
  switch (XWINT (x17, 0))
    {
    case 0L:
      x18 = XEXP (x11, 1);
      x19 = XVECEXP (x18, 0, 0);
      if (XWINT (x19, 0) != 2L)
        return -1;
      x20 = XEXP (x7, 1);
      x21 = XVECEXP (x20, 0, 0);
      switch (XWINT (x21, 0))
        {
        case 0L:
          x22 = XEXP (x14, 1);
          x23 = XVECEXP (x22, 0, 0);
          if (XWINT (x23, 0) != 2L)
            return -1;
          return 0;

        case 1L:
          x22 = XEXP (x14, 1);
          x23 = XVECEXP (x22, 0, 0);
          if (XWINT (x23, 0) != 3L)
            return -1;
          return 1;

        default:
          return -1;
        }

    case 1L:
      x18 = XEXP (x11, 1);
      x19 = XVECEXP (x18, 0, 0);
      if (XWINT (x19, 0) != 3L)
        return -1;
      x20 = XEXP (x7, 1);
      x21 = XVECEXP (x20, 0, 0);
      switch (XWINT (x21, 0))
        {
        case 0L:
          x22 = XEXP (x14, 1);
          x23 = XVECEXP (x22, 0, 0);
          if (XWINT (x23, 0) != 2L)
            return -1;
          return 2;

        case 1L:
          x22 = XEXP (x14, 1);
          x23 = XVECEXP (x22, 0, 0);
          if (XWINT (x23, 0) != 3L)
            return -1;
          return 3;

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_1 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 1);
  operands[2] = x4;
  if (arm_addimm_operand (operands[2], E_SImode))
    {
      x5 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x5) == SET)
        {
          x6 = XEXP (x5, 1);
          if (GET_CODE (x6) == PLUS
              && GET_MODE (x6) == E_SImode
              && pattern452 (x1) == 0)
            {
              x7 = XEXP (x6, 1);
              operands[3] = x7;
              if (arm_addimm_operand (operands[3], E_SImode))
                {
                  x8 = XEXP (x6, 0);
                  if (rtx_equal_p (x8, operands[1])
                      && 
#line 1163 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (INTVAL (operands[2])
       == trunc_int_for_mode (-INTVAL (operands[3]), SImode))))
                    return 16; /* cmpsi2_addneg */
                }
            }
        }
    }
  if (XWINT (x4, 0) != 0L)
    return -1;
  x5 = XVECEXP (x1, 0, 1);
  switch (GET_CODE (x5))
    {
    case SET:
      if (pattern452 (x1) != 0)
        return -1;
      x6 = XEXP (x5, 1);
      if (!rtx_equal_p (x6, operands[1])
          || !
#line 6820 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 264; /* *movsi_compare0 */

    case CLOBBER:
      x9 = XEXP (x2, 0);
      if (GET_MODE (x9) != E_CC_Zmode
          || GET_MODE (x3) != E_CC_Zmode)
        return -1;
      x10 = XEXP (x3, 0);
      operands[0] = x10;
      if (!s_register_operand (operands[0], E_DImode))
        return -1;
      x11 = XEXP (x5, 0);
      operands[1] = x11;
      if (!scratch_operand (operands[1], E_SImode)
          || !
#line 1688 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 977; /* *thumb_cmpdi_zero */

    default:
      return -1;
    }
}

static int
recog_2 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 1);
  operands[2] = x4;
  if (!register_operand (operands[2], E_SImode)
      || pattern453 (x1, E_CCmode, MINUS) != 0)
    return -1;
  x5 = XEXP (x3, 0);
  operands[1] = x5;
  if (!register_operand (operands[1], E_SImode))
    return -1;
  x6 = XVECEXP (x1, 0, 1);
  x7 = XEXP (x6, 0);
  operands[0] = x7;
  if (!register_operand (operands[0], E_SImode))
    return -1;
  x8 = XEXP (x6, 1);
  x9 = XEXP (x8, 0);
  if (!rtx_equal_p (x9, operands[1]))
    return -1;
  x10 = XEXP (x8, 1);
  if (!rtx_equal_p (x10, operands[2])
      || !
#line 1640 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
    return -1;
  return 26; /* subsi3_compare1 */
}

static int
recog_3 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != E_CC_RSBmode)
    return -1;
  x4 = XEXP (x2, 1);
  if (GET_MODE (x4) != E_CC_RSBmode)
    return -1;
  x5 = XVECEXP (x1, 0, 1);
  switch (GET_CODE (x5))
    {
    case SET:
      x6 = XEXP (x5, 1);
      if (GET_CODE (x6) != MINUS
          || GET_MODE (x6) != E_SImode)
        return -1;
      x7 = XEXP (x4, 1);
      operands[3] = x7;
      if (!const_int_operand (operands[3], E_VOIDmode))
        return -1;
      x8 = XEXP (x5, 0);
      operands[0] = x8;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x9 = XEXP (x6, 0);
      operands[1] = x9;
      if (!arm_immediate_operand (operands[1], E_VOIDmode))
        return -1;
      x10 = XEXP (x6, 1);
      if (!rtx_equal_p (x10, operands[2])
          || !
#line 2087 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && ~UINTVAL (operands[1]) == UINTVAL (operands[3])))
        return -1;
      return 48; /* rsb_imm_compare */

    case CLOBBER:
      x7 = XEXP (x4, 1);
      operands[1] = x7;
      if (!arm_not_immediate_operand (operands[1], E_VOIDmode))
        return -1;
      x8 = XEXP (x5, 0);
      operands[0] = x8;
      if (!scratch_operand (operands[0], E_SImode)
          || !
#line 2099 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 49; /* rsb_imm_compare_scratch */

    default:
      return -1;
    }
}

static int
recog_4 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != MULT
      || GET_MODE (x4) != E_SImode)
    return -1;
  x5 = XEXP (x4, 1);
  operands[1] = x5;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x6 = XVECEXP (x1, 0, 1);
  switch (pattern578 (x6, MULT))
    {
    case 0:
      x7 = XEXP (x6, 0);
      operands[0] = x7;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x8 = XEXP (x6, 1);
      x9 = XEXP (x8, 0);
      if (!rtx_equal_p (x9, operands[2]))
        return -1;
      x10 = XEXP (x8, 1);
      if (!rtx_equal_p (x10, operands[1]))
        return -1;
      if (
#line 2292 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && !arm_arch6))
        return 59; /* *mulsi3_compare0 */
      if (!
#line 2306 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch6 && optimize_size))
        return -1;
      return 60; /* *mulsi3_compare0_v6 */

    case 1:
      if (
#line 2319 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && !arm_arch6))
        return 61; /* *mulsi_compare0_scratch */
      if (!
#line 2332 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch6 && optimize_size))
        return -1;
      return 62; /* *mulsi_compare0_scratch_v6 */

    default:
      return -1;
    }
}

static int
recog_5 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 0);
  operands[2] = x5;
  res = recog_4 (x1, insn, pnum_clobbers);
  if (res >= 0)
    return res;
  operands[1] = x5;
  operands[3] = x4;
  if (!shift_operator (operands[3], E_SImode))
    return -1;
  x6 = XEXP (x4, 1);
  operands[2] = x6;
  if (!arm_rhs_operand (operands[2], E_SImode))
    return -1;
  x7 = XVECEXP (x1, 0, 1);
  switch (GET_CODE (x7))
    {
    case SET:
      x8 = XEXP (x7, 1);
      switch (GET_CODE (x8))
        {
        case MULT:
        case ASHIFT:
        case ROTATE:
        case ASHIFTRT:
        case LSHIFTRT:
        case ROTATERT:
          if (!rtx_equal_p (x8, operands[3]))
            return -1;
          x9 = XEXP (x7, 0);
          operands[0] = x9;
          if (!s_register_operand (operands[0], E_SImode)
              || !
#line 4757 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 152; /* *shiftsi3_compare0 */

        default:
          return -1;
        }

    case CLOBBER:
      x9 = XEXP (x7, 0);
      operands[0] = x9;
      if (!scratch_operand (operands[0], E_SImode)
          || !
#line 4771 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 153; /* *shiftsi3_compare0_scratch */

    default:
      return -1;
    }
}

static int
recog_6 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != 100)
    return -1;
  x4 = XEXP (x2, 1);
  x5 = XEXP (x4, 0);
  x6 = XEXP (x5, 0);
  switch (GET_CODE (x6))
    {
    case PLUS:
      if (GET_MODE (x6) != E_DImode)
        return -1;
      x7 = XVECEXP (x1, 0, 1);
      if (pattern454 (x7, PLUS) != 0
          || GET_MODE (x5) != E_DImode)
        return -1;
      x8 = XEXP (x6, 0);
      operands[3] = x8;
      if (!arm_carry_operation (operands[3], E_DImode))
        return -1;
      x9 = XEXP (x6, 1);
      if (GET_MODE (x9) != E_DImode)
        return -1;
      x10 = XEXP (x7, 0);
      operands[0] = x10;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      switch (GET_CODE (x9))
        {
        case SIGN_EXTEND:
          x11 = XEXP (x4, 1);
          if (pattern509 (x11, PLUS) != 0
              || GET_MODE (x3) != E_CC_Vmode
              || GET_MODE (x4) != E_CC_Vmode)
            return -1;
          x12 = XEXP (x9, 0);
          operands[1] = x12;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x13 = XEXP (x11, 0);
          x14 = XEXP (x13, 0);
          x15 = XEXP (x14, 0);
          operands[4] = x15;
          if (!arm_carry_operation (operands[4], E_SImode))
            return -1;
          x16 = XEXP (x14, 1);
          if (!rtx_equal_p (x16, operands[1]))
            return -1;
          x17 = XEXP (x7, 1);
          x18 = XEXP (x17, 0);
          x19 = XEXP (x18, 0);
          if (!rtx_equal_p (x19, operands[4]))
            return -1;
          x20 = XEXP (x18, 1);
          if (!rtx_equal_p (x20, operands[1]))
            return -1;
          x21 = XEXP (x5, 1);
          switch (GET_CODE (x21))
            {
            case SIGN_EXTEND:
              if (GET_MODE (x21) != E_DImode)
                return -1;
              x22 = XEXP (x21, 0);
              operands[2] = x22;
              if (!s_register_operand (operands[2], E_SImode))
                return -1;
              x23 = XEXP (x13, 1);
              if (!rtx_equal_p (x23, operands[2]))
                return -1;
              x24 = XEXP (x17, 1);
              if (!rtx_equal_p (x24, operands[2])
                  || !
#line 629 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 1; /* *addsi3_cin_vout_reg_insn */

            case CONST_INT:
              operands[2] = x21;
              if (!arm_adcimm_operand (operands[2], E_VOIDmode))
                return -1;
              x23 = XEXP (x13, 1);
              if (!rtx_equal_p (x23, operands[2]))
                return -1;
              x24 = XEXP (x17, 1);
              if (!rtx_equal_p (x24, operands[2])
                  || !
#line 675 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 2; /* *addsi3_cin_vout_imm_insn */

            default:
              return -1;
            }

        case ZERO_EXTEND:
          x11 = XEXP (x4, 1);
          if (GET_CODE (x11) != CONST_INT
              || XWINT (x11, 0) != 4294967296L
              || GET_MODE (x3) != E_CC_ADCmode
              || GET_MODE (x4) != E_CC_ADCmode)
            return -1;
          x12 = XEXP (x9, 0);
          operands[1] = x12;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x17 = XEXP (x7, 1);
          x18 = XEXP (x17, 0);
          x19 = XEXP (x18, 0);
          operands[4] = x19;
          if (!arm_carry_operation (operands[4], E_SImode))
            return -1;
          x20 = XEXP (x18, 1);
          if (!rtx_equal_p (x20, operands[1]))
            return -1;
          x21 = XEXP (x5, 1);
          switch (GET_CODE (x21))
            {
            case ZERO_EXTEND:
              if (GET_MODE (x21) != E_DImode)
                return -1;
              x22 = XEXP (x21, 0);
              operands[2] = x22;
              if (!s_register_operand (operands[2], E_SImode))
                return -1;
              x24 = XEXP (x17, 1);
              if (!rtx_equal_p (x24, operands[2])
                  || !
#line 807 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 4; /* *addsi3_cin_cout_reg_insn */

            case CONST_INT:
              operands[5] = x21;
              if (!const_int_operand (operands[5], E_DImode))
                return -1;
              x24 = XEXP (x17, 1);
              operands[2] = x24;
              if (!arm_adcimm_operand (operands[2], E_SImode)
                  || !
#line 851 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (UINTVAL (operands[2]) & 0xffffffff) == UINTVAL (operands[5])))
                return -1;
              return 5; /* *addsi3_cin_cout_imm_insn */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case GEU:
    case LTU:
      operands[2] = x6;
      if (!arm_carry_operation (operands[2], E_DImode)
          || pattern480 (x1, E_DImode) != 0)
        return -1;
      x21 = XEXP (x5, 1);
      if (GET_MODE (x21) != E_DImode)
        return -1;
      x7 = XVECEXP (x1, 0, 1);
      x10 = XEXP (x7, 0);
      operands[0] = x10;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      switch (GET_CODE (x21))
        {
        case SIGN_EXTEND:
          x11 = XEXP (x4, 1);
          if (GET_CODE (x11) != SIGN_EXTEND
              || GET_MODE (x11) != E_DImode)
            return -1;
          x13 = XEXP (x11, 0);
          if (GET_CODE (x13) != PLUS
              || GET_MODE (x13) != E_SImode
              || GET_MODE (x3) != E_CC_Vmode
              || GET_MODE (x4) != E_CC_Vmode)
            return -1;
          x22 = XEXP (x21, 0);
          operands[1] = x22;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x14 = XEXP (x13, 0);
          operands[3] = x14;
          if (!arm_carry_operation (operands[3], E_SImode))
            return -1;
          x23 = XEXP (x13, 1);
          if (!rtx_equal_p (x23, operands[1]))
            return -1;
          x17 = XEXP (x7, 1);
          x18 = XEXP (x17, 0);
          if (!rtx_equal_p (x18, operands[3]))
            return -1;
          x24 = XEXP (x17, 1);
          if (!rtx_equal_p (x24, operands[1])
              || !
#line 711 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 3; /* *addsi3_cin_vout_0_insn */

        case ZERO_EXTEND:
          x11 = XEXP (x4, 1);
          if (GET_CODE (x11) != CONST_INT
              || XWINT (x11, 0) != 4294967296L
              || GET_MODE (x3) != E_CC_ADCmode
              || GET_MODE (x4) != E_CC_ADCmode)
            return -1;
          x22 = XEXP (x21, 0);
          operands[1] = x22;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x17 = XEXP (x7, 1);
          x18 = XEXP (x17, 0);
          operands[3] = x18;
          if (!arm_carry_operation (operands[3], E_SImode))
            return -1;
          x24 = XEXP (x17, 1);
          if (!rtx_equal_p (x24, operands[1])
              || !
#line 886 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 6; /* *addsi3_cin_cout_0_insn */

        default:
          return -1;
        }

    case SIGN_EXTEND:
      if (GET_MODE (x6) != E_DImode
          || GET_MODE (x5) != E_DImode)
        return -1;
      x21 = XEXP (x5, 1);
      switch (GET_CODE (x21))
        {
        case SIGN_EXTEND:
          if (GET_MODE (x21) != E_DImode
              || pattern508 (x1) != 0)
            return -1;
          x22 = XEXP (x21, 0);
          operands[2] = x22;
          if (!register_operand (operands[2], E_SImode))
            return -1;
          x7 = XVECEXP (x1, 0, 1);
          x10 = XEXP (x7, 0);
          operands[0] = x10;
          if (!register_operand (operands[0], E_SImode)
              || pattern634 (x1) != 0
              || !
#line 978 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 8; /* addsi3_compareV_reg */

        case CONST_INT:
          if (pattern508 (x1) != 0)
            return -1;
          x7 = XVECEXP (x1, 0, 1);
          x10 = XEXP (x7, 0);
          operands[0] = x10;
          if (!register_operand (operands[0], E_SImode))
            return -1;
          x11 = XEXP (x4, 1);
          x13 = XEXP (x11, 0);
          x14 = XEXP (x13, 0);
          if (!rtx_equal_p (x14, operands[1]))
            return -1;
          x17 = XEXP (x7, 1);
          x18 = XEXP (x17, 0);
          if (!rtx_equal_p (x18, operands[1]))
            return -1;
          if (XWINT (x21, 0) == 2147483648L)
            {
              x23 = XEXP (x13, 1);
              if (GET_CODE (x23) == CONST_INT
                  && XWINT (x23, 0) == -2147483648L)
                {
                  x24 = XEXP (x17, 1);
                  if (GET_CODE (x24) == CONST_INT
                      && XWINT (x24, 0) == -2147483648L
                      && 
#line 1011 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                    return 10; /* subvsi3_intmin */
                }
            }
          operands[2] = x21;
          if (!arm_addimm_operand (operands[2], E_VOIDmode))
            return -1;
          x23 = XEXP (x13, 1);
          if (!rtx_equal_p (x23, operands[2]))
            return -1;
          x24 = XEXP (x17, 1);
          if (!rtx_equal_p (x24, operands[2])
              || !
#line 1027 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && INTVAL (operands[2]) == ARM_SIGN_EXTEND (INTVAL (operands[2]))))
            return -1;
          return 11; /* addsi3_compareV_imm */

        case GEU:
        case LTU:
          operands[3] = x21;
          if (!arm_borrow_operation (operands[3], E_DImode))
            return -1;
          x7 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x7) != CLOBBER
              || GET_MODE (x3) != E_CC_SWPmode
              || GET_MODE (x4) != E_CC_SWPmode)
            return -1;
          x8 = XEXP (x6, 0);
          operands[2] = x8;
          if (!s_register_operand (operands[2], E_SImode))
            return -1;
          x11 = XEXP (x4, 1);
          operands[1] = x11;
          if (!arm_immediate_operand (operands[1], E_VOIDmode))
            return -1;
          x10 = XEXP (x7, 0);
          operands[0] = x10;
          if (!scratch_operand (operands[0], E_SImode)
              || !
#line 2114 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 50; /* rscsi3_CC_NVout_scratch */

        default:
          return -1;
        }

    case REG:
    case SUBREG:
      operands[1] = x6;
      if (!s_register_operand (operands[1], E_SImode)
          || pattern480 (x1, E_SImode) != 0)
        return -1;
      x21 = XEXP (x5, 1);
      operands[2] = x21;
      if (!arm_add_operand (operands[2], E_SImode))
        return -1;
      x7 = XVECEXP (x1, 0, 1);
      x10 = XEXP (x7, 0);
      operands[0] = x10;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x17 = XEXP (x7, 1);
      x18 = XEXP (x17, 0);
      if (!rtx_equal_p (x18, operands[1]))
        return -1;
      x24 = XEXP (x17, 1);
      if (!rtx_equal_p (x24, operands[2]))
        return -1;
      x11 = XEXP (x4, 1);
      switch (GET_CODE (x11))
        {
        case CONST_INT:
          if (XWINT (x11, 0) == 0L
              && GET_MODE (x3) == E_CC_NZmode
              && GET_MODE (x4) == E_CC_NZmode)
            {
              if (
#line 1113 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return 13; /* addsi3_compare0 */
              if (
#line 1371 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
                return 1052; /* thumb2_addsi3_compare0 */
            }
          break;

        case REG:
        case SUBREG:
          if (rtx_equal_p (x11, operands[1])
              && GET_MODE (x3) == E_CC_Cmode
              && GET_MODE (x4) == E_CC_Cmode
              && 
#line 1231 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return 17; /* addsi3_compare_op1 */
          break;

        default:
          break;
        }
      if (GET_MODE (x3) != E_CC_Cmode
          || GET_MODE (x4) != E_CC_Cmode
          || !rtx_equal_p (x11, operands[2])
          || !
#line 1256 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 18; /* *addsi3_compare_op2 */

    case ZERO_EXTEND:
      if (GET_MODE (x6) != E_DImode)
        return -1;
      x7 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x7) != CLOBBER
          || pattern481 (x2, E_DImode, E_CC_SWPmode) != 0)
        return -1;
      x21 = XEXP (x5, 1);
      operands[3] = x21;
      if (!arm_borrow_operation (operands[3], E_DImode))
        return -1;
      x11 = XEXP (x4, 1);
      operands[1] = x11;
      if (!arm_immediate_operand (operands[1], E_VOIDmode))
        return -1;
      x10 = XEXP (x7, 0);
      operands[0] = x10;
      if (!scratch_operand (operands[0], E_SImode)
          || !
#line 2114 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      return 51; /* rscsi3_CC_Bout_scratch */

    case MULT:
      if (GET_MODE (x6) != E_SImode)
        return -1;
      x11 = XEXP (x4, 1);
      if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
          || pattern481 (x2, E_SImode, E_CC_NZmode) != 0)
        return -1;
      x9 = XEXP (x6, 1);
      operands[1] = x9;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      x21 = XEXP (x5, 1);
      operands[3] = x21;
      if (!s_register_operand (operands[3], E_SImode))
        return -1;
      x7 = XVECEXP (x1, 0, 1);
      switch (pattern612 (x7, MULT, PLUS))
        {
        case 0:
          x17 = XEXP (x7, 1);
          x18 = XEXP (x17, 0);
          x20 = XEXP (x18, 1);
          if (!rtx_equal_p (x20, operands[1]))
            return -1;
          x24 = XEXP (x17, 1);
          if (!rtx_equal_p (x24, operands[3]))
            return -1;
          if (
#line 2349 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch6))
            return 63; /* *mulsi3addsi_compare0 */
          if (!
#line 2366 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch6 && optimize_size))
            return -1;
          return 64; /* *mulsi3addsi_compare0_v6 */

        case 1:
          if (
#line 2381 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && !arm_arch6))
            return 65; /* *mulsi3addsi_compare0_scratch */
          if (!
#line 2396 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch6 && optimize_size))
            return -1;
          return 66; /* *mulsi3addsi_compare0_scratch_v6 */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_7 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24, x25;
  rtx x26;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != 100)
    return -1;
  x4 = XEXP (x2, 1);
  x5 = XEXP (x4, 0);
  x6 = XEXP (x5, 0);
  switch (GET_CODE (x6))
    {
    case SIGN_EXTEND:
      if (GET_MODE (x6) != E_DImode)
        return -1;
      x7 = XEXP (x5, 1);
      if (GET_CODE (x7) != SIGN_EXTEND
          || pattern483 (x1) != 0)
        return -1;
      x8 = XEXP (x6, 0);
      operands[1] = x8;
      if (!s_register_operand (operands[1], E_SImode)
          || pattern635 (x1) != 0
          || !
#line 1655 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 27; /* subvsi3 */

    case CONST_INT:
    case REG:
    case SUBREG:
      operands[1] = x6;
      x7 = XEXP (x5, 1);
      switch (GET_CODE (x7))
        {
        case SIGN_EXTEND:
          if (pattern483 (x1) != 0
              || !arm_immediate_operand (operands[1], E_VOIDmode)
              || pattern635 (x1) != 0
              || !
#line 1672 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 28; /* subvsi3_imm1 */

        case CONST_INT:
        case REG:
        case SUBREG:
          operands[2] = x7;
          if (!arm_rhs_operand (operands[2], E_SImode))
            return -1;
          x9 = XEXP (x4, 1);
          if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
              || pattern482 (x1, E_SImode, E_CC_NZmode) != 0
              || !arm_rhs_operand (operands[1], E_SImode))
            return -1;
          x10 = XVECEXP (x1, 0, 1);
          x11 = XEXP (x10, 0);
          operands[0] = x11;
          if (!s_register_operand (operands[0], E_SImode))
            return -1;
          x12 = XEXP (x10, 1);
          x13 = XEXP (x12, 0);
          if (!rtx_equal_p (x13, operands[1]))
            return -1;
          x14 = XEXP (x12, 1);
          if (!rtx_equal_p (x14, operands[2])
              || !
#line 2053 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 46; /* subsi3_compare0 */

        case MULT:
        case ASHIFT:
        case ROTATE:
        case ASHIFTRT:
        case LSHIFTRT:
        case ROTATERT:
          operands[2] = x7;
          if (!shift_operator (operands[2], E_SImode))
            return -1;
          x9 = XEXP (x4, 1);
          if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
              || GET_MODE (x3) != E_CC_NZmode
              || GET_MODE (x4) != E_CC_NZmode
              || GET_MODE (x5) != E_SImode
              || !s_register_operand (operands[1], E_SImode))
            return -1;
          x15 = XEXP (x7, 0);
          operands[3] = x15;
          if (!s_register_operand (operands[3], E_SImode))
            return -1;
          x16 = XEXP (x7, 1);
          operands[4] = x16;
          if (!shift_amount_operand (operands[4], E_SImode))
            return -1;
          x10 = XVECEXP (x1, 0, 1);
          switch (pattern578 (x10, MINUS))
            {
            case 0:
              x12 = XEXP (x10, 1);
              x14 = XEXP (x12, 1);
              switch (GET_CODE (x14))
                {
                case MULT:
                case ASHIFT:
                case ROTATE:
                case ASHIFTRT:
                case LSHIFTRT:
                case ROTATERT:
                  if (!rtx_equal_p (x14, operands[2]))
                    return -1;
                  x11 = XEXP (x10, 0);
                  operands[0] = x11;
                  if (!s_register_operand (operands[0], E_SImode))
                    return -1;
                  x13 = XEXP (x12, 0);
                  if (!rtx_equal_p (x13, operands[1])
                      || !
#line 9769 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                    return -1;
                  return 332; /* *sub_shiftsi_compare0 */

                default:
                  return -1;
                }

            case 1:
              if (!
#line 9785 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 333; /* *sub_shiftsi_compare0_scratch */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case MINUS:
      if (GET_MODE (x6) != E_DImode)
        return -1;
      x8 = XEXP (x6, 0);
      if (GET_CODE (x8) != SIGN_EXTEND
          || GET_MODE (x8) != E_DImode)
        return -1;
      x9 = XEXP (x4, 1);
      if (pattern509 (x9, MINUS) != 0)
        return -1;
      x10 = XVECEXP (x1, 0, 1);
      if (pattern454 (x10, MINUS) != 0
          || GET_MODE (x3) != E_CC_Vmode
          || GET_MODE (x4) != E_CC_Vmode
          || GET_MODE (x5) != E_DImode)
        return -1;
      x17 = XEXP (x8, 0);
      operands[1] = x17;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      x7 = XEXP (x5, 1);
      operands[4] = x7;
      if (!arm_borrow_operation (operands[4], E_DImode))
        return -1;
      x18 = XEXP (x9, 0);
      x19 = XEXP (x18, 1);
      operands[3] = x19;
      if (!arm_borrow_operation (operands[3], E_SImode))
        return -1;
      x11 = XEXP (x10, 0);
      operands[0] = x11;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x20 = XEXP (x18, 0);
      x21 = XEXP (x20, 0);
      if (!rtx_equal_p (x21, operands[1]))
        return -1;
      x12 = XEXP (x10, 1);
      x13 = XEXP (x12, 0);
      x22 = XEXP (x13, 0);
      if (!rtx_equal_p (x22, operands[1]))
        return -1;
      x14 = XEXP (x12, 1);
      if (!rtx_equal_p (x14, operands[3]))
        return -1;
      x23 = XEXP (x6, 1);
      switch (GET_CODE (x23))
        {
        case SIGN_EXTEND:
          if (GET_MODE (x23) != E_DImode)
            return -1;
          x24 = XEXP (x23, 0);
          operands[2] = x24;
          if (!s_register_operand (operands[2], E_SImode))
            return -1;
          x25 = XEXP (x20, 1);
          if (!rtx_equal_p (x25, operands[2]))
            return -1;
          x26 = XEXP (x13, 1);
          if (!rtx_equal_p (x26, operands[2])
              || !
#line 2171 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 54; /* subvsi3_borrow */

        case CONST_INT:
          operands[2] = x23;
          if (!arm_adcimm_operand (operands[2], E_VOIDmode))
            return -1;
          x25 = XEXP (x20, 1);
          if (!rtx_equal_p (x25, operands[2]))
            return -1;
          x26 = XEXP (x13, 1);
          if (!rtx_equal_p (x26, operands[2])
              || !
#line 2192 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && INTVAL (operands[2]) == ARM_SIGN_EXTEND (INTVAL (operands[2]))))
            return -1;
          return 55; /* subvsi3_borrow_imm */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_8 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) != E_SImode)
    return -1;
  x5 = XEXP (x3, 1);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x6 = XEXP (x4, 0);
  switch (GET_CODE (x6))
    {
    case REG:
    case SUBREG:
      if (!s_register_operand (x6, E_SImode)
          || pattern324 (x2) != 0)
        return -1;
      x7 = XEXP (x4, 1);
      if (!arm_not_operand (x7, E_SImode))
        return -1;
      x8 = XVECEXP (x1, 0, 1);
      switch (GET_CODE (x8))
        {
        case SET:
          x9 = XEXP (x8, 1);
          if (GET_CODE (x9) != AND
              || GET_MODE (x9) != E_SImode)
            return -1;
          operands[1] = x6;
          operands[2] = x7;
          x10 = XEXP (x8, 0);
          operands[0] = x10;
          if (!s_register_operand (operands[0], E_SImode))
            return -1;
          x11 = XEXP (x9, 0);
          if (!rtx_equal_p (x11, operands[1]))
            return -1;
          x12 = XEXP (x9, 1);
          if (!rtx_equal_p (x12, operands[2])
              || !
#line 3046 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 91; /* *andsi3_compare0 */

        case CLOBBER:
          operands[0] = x6;
          operands[1] = x7;
          x10 = XEXP (x8, 0);
          operands[2] = x10;
          if (!scratch_operand (operands[2], E_SImode)
              || !
#line 3062 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 92; /* *andsi3_compare0_scratch */

        default:
          return -1;
        }

    case NOT:
      if (GET_MODE (x6) != E_SImode
          || pattern324 (x2) != 0)
        return -1;
      x7 = XEXP (x4, 1);
      if (!s_register_operand (x7, E_SImode))
        return -1;
      x13 = XEXP (x6, 0);
      switch (GET_CODE (x13))
        {
        case MULT:
        case ASHIFT:
        case ROTATE:
        case ASHIFTRT:
        case LSHIFTRT:
        case ROTATERT:
          operands[0] = x13;
          if (!shift_operator (operands[0], E_SImode))
            return -1;
          x14 = XEXP (x13, 0);
          operands[1] = x14;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x15 = XEXP (x13, 1);
          operands[2] = x15;
          if (!shift_amount_operand (operands[2], E_SImode))
            return -1;
          operands[3] = x7;
          x8 = XVECEXP (x1, 0, 1);
          switch (GET_CODE (x8))
            {
            case CLOBBER:
              x10 = XEXP (x8, 0);
              operands[4] = x10;
              if (!scratch_operand (operands[4], E_SImode)
                  || !
#line 3623 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 106; /* andsi_not_shiftsi_si_scc_no_reuse */

            case SET:
              x9 = XEXP (x8, 1);
              if (pattern17 (x9, NOT, AND, E_SImode) != 0)
                return -1;
              x11 = XEXP (x9, 0);
              x16 = XEXP (x11, 0);
              switch (GET_CODE (x16))
                {
                case MULT:
                case ASHIFT:
                case ROTATE:
                case ASHIFTRT:
                case LSHIFTRT:
                case ROTATERT:
                  if (!rtx_equal_p (x16, operands[0]))
                    return -1;
                  x10 = XEXP (x8, 0);
                  operands[4] = x10;
                  if (!s_register_operand (operands[4], E_SImode))
                    return -1;
                  x12 = XEXP (x9, 1);
                  if (!rtx_equal_p (x12, operands[3])
                      || !
#line 3647 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                    return -1;
                  return 107; /* andsi_not_shiftsi_si_scc */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case REG:
        case SUBREG:
          operands[2] = x13;
          if (!s_register_operand (operands[2], E_SImode))
            return -1;
          operands[1] = x7;
          x8 = XVECEXP (x1, 0, 1);
          switch (pattern612 (x8, NOT, AND))
            {
            case 0:
              x9 = XEXP (x8, 1);
              x12 = XEXP (x9, 1);
              if (!rtx_equal_p (x12, operands[1])
                  || !
#line 3664 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 108; /* *andsi_notsi_si_compare0 */

            case 1:
              if (!
#line 3677 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 109; /* *andsi_notsi_si_compare0_scratch */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case NE:
    case EQ:
    case GE:
    case GT:
    case LE:
    case LT:
    case GEU:
    case GTU:
    case LEU:
    case LTU:
    case UNORDERED:
    case ORDERED:
    case UNGE:
    case UNGT:
    case UNLE:
    case UNLT:
      if (pattern424 (x1, AND) != 0
          || !
#line 10577 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 347; /* *and_scc_scc_cmp */

    default:
      return -1;
    }
}

static int
recog_9 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) != E_SImode)
    return -1;
  x5 = XEXP (x3, 1);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x6 = XEXP (x4, 0);
  switch (GET_CODE (x6))
    {
    case REG:
    case SUBREG:
      operands[1] = x6;
      if (!s_register_operand (operands[1], E_SImode)
          || pattern324 (x2) != 0)
        return -1;
      x7 = XEXP (x4, 1);
      operands[2] = x7;
      if (!arm_rhs_operand (operands[2], E_SImode))
        return -1;
      x8 = XVECEXP (x1, 0, 1);
      switch (pattern578 (x8, IOR))
        {
        case 0:
          x9 = XEXP (x8, 0);
          operands[0] = x9;
          if (!s_register_operand (operands[0], E_SImode))
            return -1;
          x10 = XEXP (x8, 1);
          x11 = XEXP (x10, 0);
          if (!rtx_equal_p (x11, operands[1]))
            return -1;
          x12 = XEXP (x10, 1);
          if (!rtx_equal_p (x12, operands[2])
              || !
#line 3768 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 111; /* *iorsi3_compare0 */

        case 1:
          if (!
#line 3783 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 112; /* *iorsi3_compare0_scratch */

        default:
          return -1;
        }

    case NE:
    case EQ:
    case GE:
    case GT:
    case LE:
    case LT:
    case GEU:
    case GTU:
    case LEU:
    case LTU:
    case UNORDERED:
    case ORDERED:
    case UNGE:
    case UNGT:
    case UNLE:
    case UNLT:
      if (pattern424 (x1, IOR) != 0
          || !
#line 10513 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 345; /* *ior_scc_scc_cmp */

    default:
      return -1;
    }
}

static int
recog_10 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  if (pattern325 (x2, E_CC_NZmode) != 0)
    return -1;
  x3 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x3) != SET)
    return -1;
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) != XOR
      || GET_MODE (x4) != E_SImode)
    return -1;
  x5 = XEXP (x2, 1);
  if (GET_MODE (x5) != E_CC_NZmode)
    return -1;
  x6 = XEXP (x5, 0);
  x7 = XEXP (x6, 0);
  operands[1] = x7;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x8 = XEXP (x6, 1);
  operands[2] = x8;
  if (!arm_rhs_operand (operands[2], E_SImode))
    return -1;
  x9 = XEXP (x3, 0);
  operands[0] = x9;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x10 = XEXP (x4, 0);
  if (!rtx_equal_p (x10, operands[1]))
    return -1;
  x11 = XEXP (x4, 1);
  if (!rtx_equal_p (x11, operands[2])
      || !
#line 3857 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
    return -1;
  return 114; /* *xorsi3_compare0 */
}

static int
recog_11 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24, x25;
  rtx x26;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case PLUS:
      if (GET_MODE (x4) != E_SImode)
        return -1;
      x5 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x5) != CLOBBER
          || pattern425 (x1) != 0)
        return -1;
      x6 = XEXP (x3, 1);
      operands[3] = x6;
      if (!arm_carry_operation (operands[3], E_SImode)
          || !
#line 1391 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 25; /* *addsi3_carryin_clobercc */

    case MULT:
      if (GET_MODE (x4) != E_SImode)
        return -1;
      x5 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x5) != SET
          || !s_register_operand (operands[0], E_SImode)
          || GET_MODE (x3) != E_SImode)
        return -1;
      x6 = XEXP (x3, 1);
      if (!s_register_operand (x6, E_SImode))
        return -1;
      x7 = XEXP (x4, 0);
      switch (GET_CODE (x7))
        {
        case REG:
        case SUBREG:
          operands[4] = x7;
          if (!s_register_operand (operands[4], E_SImode))
            return -1;
          x8 = XEXP (x5, 1);
          if (pattern426 (x8, LSHIFTRT, E_SImode, TRUNCATE, PLUS) != 0)
            return -1;
          x9 = XEXP (x8, 0);
          x10 = XEXP (x9, 0);
          x11 = XEXP (x10, 0);
          if (GET_CODE (x11) != PLUS
              || GET_MODE (x11) != E_DImode)
            return -1;
          x12 = XEXP (x11, 0);
          if (GET_CODE (x12) != MULT
              || GET_MODE (x12) != E_DImode)
            return -1;
          x13 = XEXP (x11, 1);
          if (GET_CODE (x13) != ZERO_EXTEND
              || GET_MODE (x13) != E_DImode)
            return -1;
          x14 = XEXP (x10, 1);
          if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 32])
            return -1;
          x15 = XEXP (x4, 1);
          operands[5] = x15;
          if (!s_register_operand (operands[5], E_SImode))
            return -1;
          operands[1] = x6;
          x16 = XEXP (x5, 0);
          operands[2] = x16;
          if (!s_register_operand (operands[2], E_SImode))
            return -1;
          x17 = XEXP (x12, 0);
          if (GET_MODE (x17) != E_DImode)
            return -1;
          x18 = XEXP (x12, 1);
          if (GET_MODE (x18) != E_DImode)
            return -1;
          x19 = XEXP (x8, 1);
          operands[3] = x19;
          if (!s_register_operand (operands[3], E_SImode))
            return -1;
          x20 = XEXP (x13, 0);
          if (!rtx_equal_p (x20, operands[1]))
            return -1;
          switch (GET_CODE (x17))
            {
            case SIGN_EXTEND:
              if (GET_CODE (x18) != SIGN_EXTEND)
                return -1;
              x21 = XEXP (x17, 0);
              if (!rtx_equal_p (x21, operands[4]))
                return -1;
              x22 = XEXP (x18, 0);
              if (!rtx_equal_p (x22, operands[5])
                  || !
#line 2471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 69; /* smlal */

            case ZERO_EXTEND:
              if (GET_CODE (x18) != ZERO_EXTEND)
                return -1;
              x21 = XEXP (x17, 0);
              if (!rtx_equal_p (x21, operands[4]))
                return -1;
              x22 = XEXP (x18, 0);
              if (!rtx_equal_p (x22, operands[5])
                  || !
#line 2471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 70; /* umlal */

            default:
              return -1;
            }

        case SIGN_EXTEND:
          if (GET_MODE (x7) != E_SImode)
            return -1;
          x15 = XEXP (x4, 1);
          if (GET_CODE (x15) != SIGN_EXTEND
              || GET_MODE (x15) != E_SImode
              || pattern579 (x5, E_CCmode, 104, 28) != 0)
            return -1;
          x23 = XEXP (x7, 0);
          operands[1] = x23;
          if (!s_register_operand (operands[1], E_HImode))
            return -1;
          x24 = XEXP (x15, 0);
          operands[2] = x24;
          if (!s_register_operand (operands[2], E_HImode))
            return -1;
          operands[3] = x6;
          if (!
#line 2604 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY))
            return -1;
          return 78; /* arm_smlabb_setq */

        case ASHIFTRT:
          if (GET_MODE (x7) != E_SImode)
            return -1;
          x25 = XEXP (x7, 1);
          if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 16]
              || pattern579 (x5, E_CCmode, 104, 28) != 0)
            return -1;
          x23 = XEXP (x7, 0);
          operands[1] = x23;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x15 = XEXP (x4, 1);
          if (GET_MODE (x15) != E_SImode)
            return -1;
          operands[3] = x6;
          switch (GET_CODE (x15))
            {
            case SIGN_EXTEND:
              x24 = XEXP (x15, 0);
              operands[2] = x24;
              if (!s_register_operand (operands[2], E_HImode)
                  || !
#line 2652 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY))
                return -1;
              return 80; /* arm_smlatb_setq */

            case ASHIFTRT:
              x26 = XEXP (x15, 1);
              if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
                return -1;
              x24 = XEXP (x15, 0);
              operands[2] = x24;
              if (!s_register_operand (operands[2], E_SImode)
                  || !
#line 2702 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY))
                return -1;
              return 82; /* arm_smlatt_setq */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case REG:
    case SUBREG:
      operands[1] = x4;
      if (!register_operand (operands[1], E_DImode))
        return -1;
      x5 = XVECEXP (x1, 0, 1);
      if (pattern293 (x5) != 0
          || !register_operand (operands[0], E_DImode)
          || GET_MODE (x3) != E_DImode)
        return -1;
      x6 = XEXP (x3, 1);
      operands[2] = x6;
      if (!register_operand (operands[2], E_DImode)
          || !
#line 52 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 934; /* *thumb1_adddi3 */

    case MEM:
      switch (pattern329 (x1, pnum_clobbers))
        {
        case 0:
          if (!
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          *pnum_clobbers = 2;
          return 2940; /* atomic_add_fetchqi */

        case 1:
          if (!
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          *pnum_clobbers = 2;
          return 2945; /* atomic_add_fetchhi */

        case 2:
          if (!
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          *pnum_clobbers = 2;
          return 2950; /* atomic_add_fetchsi */

        case 3:
          if (!
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          *pnum_clobbers = 2;
          return 2955; /* atomic_add_fetchdi */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_12 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  operands[1] = x4;
  switch (GET_CODE (operands[1]))
    {
    case REG:
    case SUBREG:
      x5 = XVECEXP (x1, 0, 1);
      if (pattern293 (x5) != 0)
        return -1;
      x6 = XEXP (x3, 1);
      switch (GET_CODE (x6))
        {
        case SMIN:
        case SMAX:
        case UMIN:
        case UMAX:
          operands[4] = x6;
          if (!minmax_operator (operands[4], E_SImode)
              || pattern580 (x3) != 0
              || !
#line 4287 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && !arm_eliminable_register (operands[1])
   && !(arm_restrict_it && CONST_INT_P (operands[3]))))
            return -1;
          return 126; /* *minmax_arithsi_non_canon */

        case NE:
        case EQ:
        case GE:
        case GT:
        case LE:
        case LT:
        case GEU:
        case GTU:
        case LEU:
        case LTU:
        case UNORDERED:
        case ORDERED:
        case UNGE:
        case UNGT:
        case UNLE:
        case UNLT:
          operands[4] = x6;
          if (!arm_comparison_operator (operands[4], E_SImode)
              || pattern580 (x3) != 0)
            return -1;
          if (
#line 10119 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return 339; /* *cond_sub */
          if (!
#line 868 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
            return -1;
          return 1031; /* *thumb2_cond_sub */

        case REG:
        case SUBREG:
          operands[2] = x6;
          if (!register_operand (operands[2], E_DImode)
              || !register_operand (operands[0], E_DImode)
              || GET_MODE (x3) != E_DImode
              || !register_operand (operands[1], E_DImode)
              || !
#line 132 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return -1;
          return 936; /* *thumb_subdi3 */

        default:
          return -1;
        }

    case MEM:
      if (pnum_clobbers == NULL)
        return -1;
      switch (pattern328 (x1))
        {
        case 0:
          if (!
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          *pnum_clobbers = 2;
          return 2941; /* atomic_sub_fetchqi */

        case 1:
          if (!
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          *pnum_clobbers = 2;
          return 2946; /* atomic_sub_fetchhi */

        case 2:
          if (!
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          *pnum_clobbers = 2;
          return 2951; /* atomic_sub_fetchsi */

        case 3:
          if (!
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          *pnum_clobbers = 2;
          return 2956; /* atomic_sub_fetchdi */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_13 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x2) != CLOBBER)
    return -1;
  x3 = XVECEXP (x1, 0, 0);
  x4 = XEXP (x3, 1);
  x5 = XEXP (x4, 0);
  switch (GET_CODE (x5))
    {
    case SMIN:
    case SMAX:
    case UMIN:
    case UMAX:
      operands[5] = x5;
      if (!minmax_operator (operands[5], E_SImode))
        return -1;
      x6 = XEXP (x2, 0);
      if (GET_CODE (x6) != REG
          || REGNO (x6) != 100
          || GET_MODE (x6) != E_CCmode)
        return -1;
      operands[4] = x4;
      if (!shiftable_operator (operands[4], E_SImode))
        return -1;
      x7 = XEXP (x5, 0);
      operands[2] = x7;
      if (!s_register_operand (operands[2], E_SImode))
        return -1;
      x8 = XEXP (x5, 1);
      operands[3] = x8;
      if (!arm_rhs_operand (operands[3], E_SImode))
        return -1;
      x9 = XEXP (x4, 1);
      operands[1] = x9;
      if (!s_register_operand (operands[1], E_SImode)
          || !
#line 4242 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && !arm_eliminable_register (operands[1]) && !arm_restrict_it))
        return -1;
      return 125; /* *minmax_arithsi */

    case NE:
    case EQ:
    case GE:
    case GT:
    case LE:
    case LT:
    case GEU:
    case GTU:
    case LEU:
    case LTU:
    case UNORDERED:
    case ORDERED:
    case UNGE:
    case UNGT:
    case UNLE:
    case UNLT:
      operands[4] = x5;
      if (!arm_comparison_operator (operands[4], E_SImode))
        return -1;
      x6 = XEXP (x2, 0);
      if (GET_CODE (x6) != REG
          || REGNO (x6) != 100
          || GET_MODE (x6) != E_CCmode)
        return -1;
      operands[5] = x4;
      if (!shiftable_operator (operands[5], E_SImode))
        return -1;
      x7 = XEXP (x5, 0);
      operands[2] = x7;
      if (!s_register_operand (operands[2], E_SImode))
        return -1;
      x8 = XEXP (x5, 1);
      operands[3] = x8;
      if (!arm_rhs_operand (operands[3], E_SImode))
        return -1;
      x9 = XEXP (x4, 1);
      operands[1] = x9;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      if (
#line 10093 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
        return 338; /* *cond_arith */
      if (!
#line 756 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !arm_restrict_it))
        return -1;
      return 1029; /* *thumb2_cond_arith */

    case REG:
    case SUBREG:
    case MEM:
      operands[2] = x5;
      if (memory_operand (operands[2], E_SImode))
        {
          operands[1] = x4;
          if (shiftable_operator (operands[1], E_SImode))
            {
              x9 = XEXP (x4, 1);
              operands[3] = x9;
              if (memory_operand (operands[3], E_SImode))
                {
                  x6 = XEXP (x2, 0);
                  operands[4] = x6;
                  if (scratch_operand (operands[4], E_SImode)
                      && 
#line 11455 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && adjacent_mem_locations (operands[2], operands[3])))
                    return 380; /* *arith_adjacentmem */
                }
            }
        }
      operands[1] = x5;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      x6 = XEXP (x2, 0);
      if (GET_CODE (x6) != REG
          || REGNO (x6) != 100
          || GET_MODE (x6) != E_CCmode)
        return -1;
      operands[3] = x4;
      if (!thumb_16bit_operator (operands[3], E_SImode))
        return -1;
      x9 = XEXP (x4, 1);
      operands[2] = x9;
      if (!s_register_operand (operands[2], E_SImode)
          || !
#line 1256 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed
   && GET_CODE(operands[3]) != PLUS
   && GET_CODE(operands[3]) != MINUS))
        return -1;
      return 1045; /* *thumb2_alusi3_short */

    default:
      return -1;
    }
}

static int
recog_14 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != MULT
      || GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x4) != SET)
    return -1;
  x5 = XEXP (x4, 1);
  if (pattern426 (x5, MULT, E_DImode, LSHIFTRT, TRUNCATE) != 0)
    return -1;
  x6 = XEXP (x5, 0);
  x7 = XEXP (x6, 1);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 32])
    return -1;
  x8 = XEXP (x3, 0);
  operands[2] = x8;
  if (!s_register_operand (operands[2], E_SImode))
    return -1;
  x9 = XEXP (x3, 1);
  operands[3] = x9;
  if (!s_register_operand (operands[3], E_SImode))
    return -1;
  x10 = XEXP (x4, 0);
  operands[1] = x10;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x11 = XEXP (x6, 0);
  x12 = XEXP (x11, 0);
  if (GET_MODE (x12) != E_DImode)
    return -1;
  x13 = XEXP (x11, 1);
  if (GET_MODE (x13) != E_DImode)
    return -1;
  switch (GET_CODE (x12))
    {
    case SIGN_EXTEND:
      if (GET_CODE (x13) != SIGN_EXTEND)
        return -1;
      x14 = XEXP (x12, 0);
      if (!rtx_equal_p (x14, operands[2]))
        return -1;
      x15 = XEXP (x13, 0);
      if (!rtx_equal_p (x15, operands[3])
          || !
#line 2430 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 67; /* smull */

    case ZERO_EXTEND:
      if (GET_CODE (x13) != ZERO_EXTEND)
        return -1;
      x14 = XEXP (x12, 0);
      if (!rtx_equal_p (x14, operands[2]))
        return -1;
      x15 = XEXP (x13, 0);
      if (!rtx_equal_p (x15, operands[3])
          || !
#line 2430 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 68; /* umull */

    default:
      return -1;
    }
}

static int
recog_15 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 0);
  operands[0] = x3;
  x4 = XEXP (x2, 1);
  switch (XINT (x4, 1))
    {
    case 82:
      if (pattern358 (x1, 29, E_SImode, E_CCmode, 105) != 0
          || !
#line 6086 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 226; /* arm_sadd8 */

    case 83:
      if (pattern358 (x1, 29, E_SImode, E_CCmode, 105) != 0
          || !
#line 6086 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 227; /* arm_ssub8 */

    case 84:
      if (pattern358 (x1, 29, E_SImode, E_CCmode, 105) != 0
          || !
#line 6086 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 228; /* arm_uadd8 */

    case 85:
      if (pattern358 (x1, 29, E_SImode, E_CCmode, 105) != 0
          || !
#line 6086 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 229; /* arm_usub8 */

    case 86:
      if (pattern358 (x1, 29, E_SImode, E_CCmode, 105) != 0
          || !
#line 6086 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 230; /* arm_sadd16 */

    case 87:
      if (pattern358 (x1, 29, E_SImode, E_CCmode, 105) != 0
          || !
#line 6086 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 231; /* arm_sasx */

    case 88:
      if (pattern358 (x1, 29, E_SImode, E_CCmode, 105) != 0
          || !
#line 6086 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 232; /* arm_ssax */

    case 89:
      if (pattern358 (x1, 29, E_SImode, E_CCmode, 105) != 0
          || !
#line 6086 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 233; /* arm_ssub16 */

    case 90:
      if (pattern358 (x1, 29, E_SImode, E_CCmode, 105) != 0
          || !
#line 6086 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 234; /* arm_uadd16 */

    case 91:
      if (pattern358 (x1, 29, E_SImode, E_CCmode, 105) != 0
          || !
#line 6086 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 235; /* arm_uasx */

    case 92:
      if (pattern358 (x1, 29, E_SImode, E_CCmode, 105) != 0
          || !
#line 6086 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 236; /* arm_usax */

    case 93:
      if (pattern358 (x1, 29, E_SImode, E_CCmode, 105) != 0
          || !
#line 6086 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 237; /* arm_usub16 */

    case 98:
      if (pattern358 (x1, 28, E_SImode, E_CCmode, 104) != 0
          || !
#line 6125 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && ARM_Q_BIT_READ))
        return -1;
      return 247; /* arm_smuad_setq_insn */

    case 99:
      if (pattern358 (x1, 28, E_SImode, E_CCmode, 104) != 0
          || !
#line 6125 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && ARM_Q_BIT_READ))
        return -1;
      return 249; /* arm_smuadx_setq_insn */

    case 100:
      if (pattern359 (x1) != 0
          || !ssat16_imm (operands[2], E_SImode)
          || !
#line 6152 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && ARM_Q_BIT_READ))
        return -1;
      return 251; /* arm_ssat16_setq_insn */

    case 101:
      if (pattern359 (x1) != 0
          || !usat16_imm (operands[2], E_SImode)
          || !
#line 6152 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && ARM_Q_BIT_READ))
        return -1;
      return 253; /* arm_usat16_setq_insn */

    case 177:
      if (pattern360 (x1) != 0
          || !
#line 1941 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
        return -1;
      return 871; /* neon_vcvths_nhf_unspec */

    case 178:
      if (pattern360 (x1) != 0
          || !
#line 1941 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
        return -1;
      return 872; /* neon_vcvthu_nhf_unspec */

    case 41:
      if (GET_MODE (x4) != E_SImode)
        return -1;
      x5 = XVECEXP (x4, 0, 1);
      if (GET_CODE (x5) != MEM
          || GET_MODE (x5) != E_SImode)
        return -1;
      x6 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x6) != CLOBBER
          || !register_operand (operands[0], E_SImode))
        return -1;
      x7 = XVECEXP (x4, 0, 0);
      operands[1] = x7;
      if (!memory_operand (operands[1], E_SImode))
        return -1;
      x8 = XEXP (x5, 0);
      operands[2] = x8;
      if (!register_operand (operands[2], E_SImode))
        return -1;
      x9 = XEXP (x6, 0);
      if (!rtx_equal_p (x9, operands[2])
          || !
#line 2052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 999; /* thumb1_stack_protect_test_insn */

    case 337:
      switch (pattern362 (x1, 338))
        {
        case 0:
          if (!
#line 4888 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2479; /* *neon_vtrnv8qi_insn */

        case 1:
          if (!
#line 4888 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2480; /* *neon_vtrnv16qi_insn */

        case 2:
          if (!
#line 4888 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2481; /* *neon_vtrnv4hi_insn */

        case 3:
          if (!
#line 4888 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2482; /* *neon_vtrnv8hi_insn */

        case 4:
          if (!
#line 4888 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2483; /* *neon_vtrnv2si_insn */

        case 5:
          if (!
#line 4888 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2484; /* *neon_vtrnv4si_insn */

        case 6:
          if (!
#line 4888 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2485; /* *neon_vtrnv2sf_insn */

        case 7:
          if (!
#line 4888 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2486; /* *neon_vtrnv4sf_insn */

        case 8:
          if (!
#line 4888 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2487; /* *neon_vtrnv8hf_insn */

        case 9:
          if (!
#line 4888 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2488; /* *neon_vtrnv4hf_insn */

        default:
          return -1;
        }

    case 342:
      switch (pattern362 (x1, 343))
        {
        case 0:
          if (!
#line 4914 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2489; /* *neon_vzipv8qi_insn */

        case 1:
          if (!
#line 4914 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2490; /* *neon_vzipv16qi_insn */

        case 2:
          if (!
#line 4914 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2491; /* *neon_vzipv4hi_insn */

        case 3:
          if (!
#line 4914 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2492; /* *neon_vzipv8hi_insn */

        case 4:
          if (!
#line 4914 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2493; /* *neon_vzipv2si_insn */

        case 5:
          if (!
#line 4914 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2494; /* *neon_vzipv4si_insn */

        case 6:
          if (!
#line 4914 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2495; /* *neon_vzipv2sf_insn */

        case 7:
          if (!
#line 4914 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2496; /* *neon_vzipv4sf_insn */

        case 8:
          if (!
#line 4914 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2497; /* *neon_vzipv8hf_insn */

        case 9:
          if (!
#line 4914 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2498; /* *neon_vzipv4hf_insn */

        default:
          return -1;
        }

    case 340:
      switch (pattern362 (x1, 341))
        {
        case 0:
          if (!
#line 4940 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2499; /* *neon_vuzpv8qi_insn */

        case 1:
          if (!
#line 4940 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2500; /* *neon_vuzpv16qi_insn */

        case 2:
          if (!
#line 4940 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2501; /* *neon_vuzpv4hi_insn */

        case 3:
          if (!
#line 4940 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2502; /* *neon_vuzpv8hi_insn */

        case 4:
          if (!
#line 4940 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2503; /* *neon_vuzpv2si_insn */

        case 5:
          if (!
#line 4940 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2504; /* *neon_vuzpv4si_insn */

        case 6:
          if (!
#line 4940 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2505; /* *neon_vuzpv2sf_insn */

        case 7:
          if (!
#line 4940 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2506; /* *neon_vuzpv4sf_insn */

        case 8:
          if (!
#line 4940 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2507; /* *neon_vuzpv8hf_insn */

        case 9:
          if (!
#line 4940 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2508; /* *neon_vuzpv4hf_insn */

        default:
          return -1;
        }

    case 1060:
      if (pattern363 (x1, PLUS) != 0
          || !mve_imm_selective_upto_8 (operands[3], E_SImode))
        return -1;
      switch (pattern557 (x1))
        {
        case 0:
          if (!
#line 8986 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4827; /* mve_vidupq_uv16qi_insn */

        case 1:
          if (!
#line 8986 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4828; /* mve_vidupq_uv8hi_insn */

        case 2:
          if (!
#line 8986 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4829; /* mve_vidupq_uv4si_insn */

        default:
          return -1;
        }

    case 1056:
      if (pattern363 (x1, MINUS) != 0
          || !immediate_operand (operands[3], E_SImode))
        return -1;
      switch (pattern557 (x1))
        {
        case 0:
          if (!
#line 9054 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4833; /* mve_vddupq_uv16qi_insn */

        case 1:
          if (!
#line 9054 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4834; /* mve_vddupq_uv8hi_insn */

        case 2:
          if (!
#line 9054 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4835; /* mve_vddupq_uv4si_insn */

        default:
          return -1;
        }

    case 1086:
      if (pattern364 (x1, 1086) != 0
          || !
#line 9853 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4875; /* mve_vadciq_uv4si */

    case 1088:
      if (pattern364 (x1, 1088) != 0
          || !
#line 9853 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4876; /* mve_vadciq_sv4si */

    case 1074:
      if (pattern358 (x1, 1074, E_V4SImode, E_SImode, 101) != 0
          || !
#line 9889 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4879; /* mve_vadcq_uv4si */

    case 1076:
      if (pattern358 (x1, 1076, E_V4SImode, E_SImode, 101) != 0
          || !
#line 9889 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4880; /* mve_vadcq_sv4si */

    case 1078:
      if (pattern364 (x1, 1078) != 0
          || !
#line 9926 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4883; /* mve_vsbciq_uv4si */

    case 1079:
      if (pattern364 (x1, 1079) != 0
          || !
#line 9926 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4884; /* mve_vsbciq_sv4si */

    case 1082:
      if (pattern358 (x1, 1082, E_V4SImode, E_SImode, 101) != 0
          || !
#line 9962 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4887; /* mve_vsbcq_uv4si */

    case 1083:
      if (pattern358 (x1, 1083, E_V4SImode, E_SImode, 101) != 0
          || !
#line 9962 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4888; /* mve_vsbcq_sv4si */

    default:
      return -1;
    }
}

static int
recog_16 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x2) != CLOBBER)
    return -1;
  x3 = XVECEXP (x1, 0, 0);
  x4 = XEXP (x3, 0);
  operands[0] = x4;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x5 = XEXP (x3, 1);
  if (GET_MODE (x5) != E_SImode)
    return -1;
  switch (GET_CODE (x5))
    {
    case NE:
      x6 = XEXP (x5, 0);
      switch (GET_CODE (x6))
        {
        case ZERO_EXTRACT:
          if (GET_MODE (x6) != E_SImode)
            return -1;
          x7 = XEXP (x6, 2);
          if (GET_CODE (x7) != CONST_INT)
            return -1;
          operands[3] = x7;
          if (const_int_operand (operands[3], E_SImode)
              && pattern558 (x1) == 0
              && 
#line 3102 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (INTVAL (operands[3]) >= 0 && INTVAL (operands[3]) < 32
       && INTVAL (operands[2]) > 0 
       && INTVAL (operands[2]) + (INTVAL (operands[3]) & 1) <= 8
       && INTVAL (operands[2]) + INTVAL (operands[3]) <= 32)))
            return 94; /* *ne_zeroextractsi */
          if (XWINT (x7, 0) != 0L
              || pattern558 (x1) != 0
              || !
#line 3140 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 95; /* *ne_zeroextractsi_shifted */

        case REG:
        case SUBREG:
          operands[1] = x6;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x8 = XEXP (x2, 0);
          operands[2] = x8;
          if (!s_register_operand (operands[2], E_SImode)
              || !
#line 1733 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return -1;
          return 979; /* *cstoresi_ne0_thumb1_insn */

        default:
          return -1;
        }

    case EQ:
      x6 = XEXP (x5, 0);
      operands[1] = x6;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      x8 = XEXP (x2, 0);
      operands[2] = x8;
      if (!s_register_operand (operands[2], E_SImode)
          || !
#line 1720 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 978; /* *cstoresi_eq0_thumb1_insn */

    default:
      return -1;
    }
}

static int
recog_17 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 0);
  switch (GET_CODE (x5))
    {
    case ZERO_EXTRACT:
      if (GET_MODE (x5) != E_SImode)
        return -1;
      x6 = XEXP (x5, 2);
      if (GET_CODE (x6) != CONST_INT)
        return -1;
      operands[3] = x6;
      if (const_int_operand (operands[3], E_SImode)
          && pattern530 (x1) == 0)
        {
          x7 = XEXP (x5, 0);
          operands[1] = x7;
          if (s_register_operand (operands[1], E_SImode))
            {
              x8 = XEXP (x5, 1);
              operands[2] = x8;
              if (const_int_operand (operands[2], E_SImode))
                {
                  x9 = XEXP (x3, 1);
                  operands[4] = x9;
                  if (arm_not_operand (operands[4], E_SImode)
                      && 
#line 3168 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM
   && (INTVAL (operands[3]) >= 0 && INTVAL (operands[3]) < 32
       && INTVAL (operands[2]) > 0 
       && INTVAL (operands[2]) + (INTVAL (operands[3]) & 1) <= 8
       && INTVAL (operands[2]) + INTVAL (operands[3]) <= 32)
   && !reg_overlap_mentioned_p (operands[0], operands[4])))
                    return 96; /* *ite_ne_zeroextractsi */
                }
            }
        }
      if (XWINT (x6, 0) != 0L
          || pattern530 (x1) != 0)
        return -1;
      x7 = XEXP (x5, 0);
      operands[1] = x7;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      x8 = XEXP (x5, 1);
      operands[2] = x8;
      if (!const_int_operand (operands[2], E_SImode))
        return -1;
      x9 = XEXP (x3, 1);
      operands[3] = x9;
      if (!arm_not_operand (operands[3], E_SImode)
          || !
#line 3207 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && !reg_overlap_mentioned_p (operands[0], operands[3])))
        return -1;
      return 97; /* *ite_ne_zeroextractsi_shifted */

    case REG:
    case SUBREG:
      operands[0] = x5;
      if (s_register_operand (operands[0], E_SImode)
          && pattern427 (x1) == 0)
        {
          x9 = XEXP (x3, 1);
          x10 = XEXP (x9, 0);
          operands[1] = x10;
          if (
#line 1491 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
            return 1058; /* *thumb2_cbnz */
        }
      if (pnum_clobbers == NULL
          || GET_CODE (x5) != REG
          || REGNO (x5) != 14
          || GET_MODE (x5) != E_SImode)
        return -1;
      x11 = XEXP (x4, 1);
      if (XWINT (x11, 0) != 1L)
        return -1;
      x9 = XEXP (x3, 1);
      if (GET_CODE (x9) != LABEL_REF)
        return -1;
      x12 = XEXP (x3, 2);
      if (GET_CODE (x12) != PC)
        return -1;
      x13 = XEXP (x2, 0);
      if (GET_CODE (x13) != PC)
        return -1;
      x14 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x14) != SET)
        return -1;
      x15 = XEXP (x14, 1);
      if (GET_CODE (x15) != PLUS
          || GET_MODE (x15) != E_SImode)
        return -1;
      x16 = XEXP (x15, 0);
      if (GET_CODE (x16) != REG
          || REGNO (x16) != 14
          || GET_MODE (x16) != E_SImode)
        return -1;
      x17 = XEXP (x15, 1);
      if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + -1])
        return -1;
      x18 = XEXP (x14, 0);
      if (GET_CODE (x18) != REG
          || REGNO (x18) != 14
          || GET_MODE (x18) != E_SImode)
        return -1;
      x10 = XEXP (x9, 0);
      operands[0] = x10;
      if (!
#line 1737 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_32BIT && TARGET_HAVE_LOB))
        return -1;
      *pnum_clobbers = 1;
      return 1068; /* *doloop_end_internal */

    default:
      return -1;
    }
}

static int
recog_18 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != CONST_INT)
    return -1;
  switch (GET_CODE (x4))
    {
    case NE:
      res = recog_17 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    case EQ:
      if (pattern427 (x1) == 0)
        {
          x6 = XEXP (x4, 0);
          operands[0] = x6;
          if (s_register_operand (operands[0], E_SImode))
            {
              x7 = XEXP (x3, 1);
              x8 = XEXP (x7, 0);
              operands[1] = x8;
              if (
#line 1467 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
                return 1057; /* *thumb2_cbz */
            }
        }
      break;

    default:
      break;
    }
  if (XWINT (x5, 0) != 0L)
    return -1;
  x7 = XEXP (x3, 1);
  if (GET_CODE (x7) != LABEL_REF)
    return -1;
  x9 = XEXP (x3, 2);
  if (GET_CODE (x9) != PC)
    return -1;
  x10 = XEXP (x2, 0);
  if (GET_CODE (x10) != PC
      || !equality_operator (x4, E_VOIDmode))
    return -1;
  x6 = XEXP (x4, 0);
  switch (GET_CODE (x6))
    {
    case ZERO_EXTRACT:
      if (GET_MODE (x6) != E_SImode)
        return -1;
      x11 = XEXP (x6, 1);
      if (GET_CODE (x11) != CONST_INT)
        return -1;
      x12 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x12) != CLOBBER)
        return -1;
      operands[0] = x4;
      x13 = XEXP (x6, 0);
      operands[1] = x13;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      x8 = XEXP (x7, 0);
      operands[3] = x8;
      x14 = XEXP (x12, 0);
      operands[4] = x14;
      if (!scratch_operand (operands[4], E_SImode))
        return -1;
      if (XWINT (x11, 0) == 1L)
        {
          x15 = XEXP (x6, 2);
          operands[2] = x15;
          if (const_int_operand (operands[2], E_SImode)
              && 
#line 1311 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return 971; /* *tbit_cbranch */
        }
      x15 = XEXP (x6, 2);
      if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      operands[2] = x11;
      if (!const_int_operand (operands[2], E_SImode)
          || !
#line 1356 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 972; /* *tlobits_cbranch */

    case REG:
    case SUBREG:
      if (pnum_clobbers == NULL)
        return -1;
      operands[2] = x6;
      if (!s_register_operand (operands[2], E_SImode))
        return -1;
      x12 = XVECEXP (x1, 0, 1);
      if (pattern512 (x12) != 0)
        return -1;
      operands[3] = x4;
      x8 = XEXP (x7, 0);
      operands[4] = x8;
      x14 = XEXP (x12, 0);
      operands[0] = x14;
      if (!thumb_cbrch_target_operand (operands[0], E_SImode))
        return -1;
      x16 = XEXP (x12, 1);
      x17 = XEXP (x16, 0);
      if (!rtx_equal_p (x17, operands[2])
          || !
#line 1438 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      *pnum_clobbers = 1;
      return 974; /* *cbranchne_decr1 */

    default:
      return -1;
    }
}

static int
recog_19 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) != PLUS
      || GET_MODE (x4) != E_SImode)
    return -1;
  x5 = XEXP (x3, 0);
  operands[6] = x5;
  x6 = XEXP (x5, 0);
  operands[4] = x6;
  x7 = XEXP (x4, 0);
  operands[2] = x7;
  if (!s_register_operand (operands[2], E_SImode))
    return -1;
  x8 = XEXP (x4, 1);
  operands[3] = x8;
  if (!arm_add_operand (operands[3], E_SImode))
    return -1;
  x9 = XEXP (x3, 2);
  operands[1] = x9;
  if (!arm_rhs_operand (operands[1], E_SImode)
      || !
#line 10857 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
    return -1;
  return 352; /* *ifcompare_plus_move */
}

static int
recog_20 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case NE:
    case EQ:
      res = recog_18 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    default:
      break;
    }
  if (!arm_comparison_operator (x4, E_VOIDmode))
    return -1;
  x5 = XEXP (x4, 0);
  switch (GET_CODE (x5))
    {
    case REG:
    case SUBREG:
      if (!s_register_operand (x5, E_SImode))
        return -1;
      x6 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x6) != CLOBBER)
        return -1;
      x7 = XEXP (x3, 1);
      switch (GET_CODE (x7))
        {
        case CONST_INT:
        case REG:
        case SUBREG:
          operands[1] = x7;
          if (pattern484 (x1) != 0)
            return -1;
          x8 = XEXP (x3, 2);
          switch (GET_CODE (x8))
            {
            case CONST_INT:
            case REG:
            case SUBREG:
              operands[2] = x8;
              if (!arm_rhs_operand (operands[2], E_SImode))
                return -1;
              operands[5] = x4;
              operands[3] = x5;
              x9 = XEXP (x4, 1);
              operands[4] = x9;
              if (!arm_rhs_operand (operands[1], E_SImode))
                return -1;
              if (
#line 10790 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return 351; /* movcond */
              if (!
#line 1012 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !TARGET_COND_ARITH))
                return -1;
              return 1036; /* *thumb2_movcond */

            case PLUS:
            case MINUS:
            case AND:
            case IOR:
            case XOR:
              operands[6] = x4;
              operands[4] = x5;
              x9 = XEXP (x4, 1);
              operands[5] = x9;
              if (!arm_rhs_operand (operands[1], E_SImode))
                return -1;
              x10 = XEXP (x8, 0);
              operands[2] = x10;
              if (!s_register_operand (operands[2], E_SImode))
                return -1;
              x11 = XEXP (x8, 1);
              operands[3] = x11;
              if (arm_add_operand (operands[3], E_SImode)
                  && GET_CODE (x8) == PLUS
                  && GET_MODE (x8) == E_SImode
                  && 
#line 10900 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return 354; /* *ifcompare_move_plus */
              if (!arm_rhs_operand (operands[3], E_SImode))
                return -1;
              operands[7] = x8;
              if (!shiftable_operator (operands[7], E_SImode)
                  || !
#line 11044 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return -1;
              return 360; /* *ifcompare_move_arith */

            case NOT:
              if (GET_MODE (x8) != E_SImode)
                return -1;
              operands[5] = x4;
              operands[3] = x5;
              x9 = XEXP (x4, 1);
              operands[4] = x9;
              if (!arm_not_operand (operands[1], E_SImode))
                return -1;
              x10 = XEXP (x8, 0);
              operands[2] = x10;
              if (!s_register_operand (operands[2], E_SImode)
                  || !
#line 11111 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return -1;
              return 362; /* *ifcompare_move_not */

            case MULT:
            case ASHIFT:
            case ROTATE:
            case ASHIFTRT:
            case LSHIFTRT:
            case ROTATERT:
              operands[7] = x8;
              if (!shift_operator (operands[7], E_SImode))
                return -1;
              operands[6] = x4;
              operands[4] = x5;
              x9 = XEXP (x4, 1);
              operands[5] = x9;
              if (!arm_not_operand (operands[1], E_SImode))
                return -1;
              x10 = XEXP (x8, 0);
              operands[2] = x10;
              if (!s_register_operand (operands[2], E_SImode))
                return -1;
              x11 = XEXP (x8, 1);
              operands[3] = x11;
              if (!arm_rhs_operand (operands[3], E_SImode)
                  || !
#line 11224 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return -1;
              return 368; /* *ifcompare_move_shift */

            case NEG:
              if (GET_MODE (x8) != E_SImode)
                return -1;
              operands[5] = x4;
              operands[3] = x5;
              x9 = XEXP (x4, 1);
              operands[4] = x9;
              if (!arm_not_operand (operands[1], E_SImode))
                return -1;
              x10 = XEXP (x8, 0);
              operands[2] = x10;
              if (!s_register_operand (operands[2], E_SImode)
                  || !
#line 11412 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return -1;
              return 378; /* *ifcompare_move_neg */

            default:
              return -1;
            }

        case PLUS:
        case MINUS:
        case AND:
        case IOR:
        case XOR:
          if (pattern484 (x1) != 0)
            return -1;
          x9 = XEXP (x4, 1);
          operands[5] = x9;
          res = recog_19 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          if (!shiftable_operator (x7, E_SImode))
            return -1;
          x12 = XEXP (x7, 0);
          if (!s_register_operand (x12, E_SImode))
            return -1;
          x13 = XEXP (x7, 1);
          if (!arm_rhs_operand (x13, E_SImode))
            return -1;
          x8 = XEXP (x3, 2);
          switch (GET_CODE (x8))
            {
            case PLUS:
            case MINUS:
            case AND:
            case IOR:
            case XOR:
              operands[7] = x8;
              if (!shiftable_operator (operands[7], E_SImode))
                return -1;
              operands[9] = x4;
              operands[5] = x5;
              operands[6] = x9;
              operands[8] = x7;
              operands[1] = x12;
              operands[2] = x13;
              x10 = XEXP (x8, 0);
              operands[3] = x10;
              if (!s_register_operand (operands[3], E_SImode))
                return -1;
              x11 = XEXP (x8, 1);
              operands[4] = x11;
              if (!arm_rhs_operand (operands[4], E_SImode)
                  || !
#line 10945 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return -1;
              return 356; /* *ifcompare_arith_arith */

            case CONST_INT:
            case REG:
            case SUBREG:
              operands[1] = x8;
              if (!arm_rhs_operand (operands[1], E_SImode))
                return -1;
              operands[6] = x4;
              operands[2] = x5;
              operands[3] = x9;
              operands[7] = x7;
              operands[4] = x12;
              operands[5] = x13;
              if (!
#line 10979 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return -1;
              return 358; /* *ifcompare_arith_move */

            case NOT:
              if (GET_MODE (x8) != E_SImode)
                return -1;
              operands[6] = x4;
              operands[4] = x5;
              operands[5] = x9;
              operands[7] = x7;
              operands[2] = x12;
              operands[3] = x13;
              x10 = XEXP (x8, 0);
              operands[1] = x10;
              if (!s_register_operand (operands[1], E_SImode)
                  || !
#line 11344 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return -1;
              return 374; /* *ifcompare_arith_not */

            default:
              return -1;
            }

        case NOT:
          if (GET_MODE (x7) != E_SImode
              || pattern484 (x1) != 0)
            return -1;
          x12 = XEXP (x7, 0);
          if (!s_register_operand (x12, E_SImode))
            return -1;
          x8 = XEXP (x3, 2);
          switch (GET_CODE (x8))
            {
            case CONST_INT:
            case REG:
            case SUBREG:
              operands[1] = x8;
              if (!arm_not_operand (operands[1], E_SImode))
                return -1;
              operands[5] = x4;
              operands[3] = x5;
              x9 = XEXP (x4, 1);
              operands[4] = x9;
              operands[2] = x12;
              if (!
#line 11146 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return -1;
              return 364; /* *ifcompare_not_move */

            case PLUS:
            case MINUS:
            case AND:
            case IOR:
            case XOR:
              operands[7] = x8;
              if (!shiftable_operator (operands[7], E_SImode))
                return -1;
              operands[6] = x4;
              operands[4] = x5;
              x9 = XEXP (x4, 1);
              operands[5] = x9;
              operands[1] = x12;
              x10 = XEXP (x8, 0);
              operands[2] = x10;
              if (!s_register_operand (operands[2], E_SImode))
                return -1;
              x11 = XEXP (x8, 1);
              operands[3] = x11;
              if (!arm_rhs_operand (operands[3], E_SImode)
                  || !
#line 11310 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return -1;
              return 372; /* *ifcompare_not_arith */

            default:
              return -1;
            }

        case MULT:
        case ASHIFT:
        case ROTATE:
        case ASHIFTRT:
        case LSHIFTRT:
        case ROTATERT:
          if (!shift_operator (x7, E_SImode)
              || pattern484 (x1) != 0)
            return -1;
          x12 = XEXP (x7, 0);
          if (!s_register_operand (x12, E_SImode))
            return -1;
          x13 = XEXP (x7, 1);
          if (!arm_rhs_operand (x13, E_SImode))
            return -1;
          x8 = XEXP (x3, 2);
          switch (GET_CODE (x8))
            {
            case CONST_INT:
            case REG:
            case SUBREG:
              operands[1] = x8;
              if (!arm_not_operand (operands[1], E_SImode))
                return -1;
              operands[6] = x4;
              operands[4] = x5;
              x9 = XEXP (x4, 1);
              operands[5] = x9;
              operands[7] = x7;
              operands[2] = x12;
              operands[3] = x13;
              if (!
#line 11181 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return -1;
              return 366; /* *ifcompare_shift_move */

            case MULT:
            case ASHIFT:
            case ROTATE:
            case ASHIFTRT:
            case LSHIFTRT:
            case ROTATERT:
              operands[9] = x8;
              if (!shift_operator (operands[9], E_SImode))
                return -1;
              operands[7] = x4;
              operands[5] = x5;
              x9 = XEXP (x4, 1);
              operands[6] = x9;
              operands[8] = x7;
              operands[1] = x12;
              operands[2] = x13;
              x10 = XEXP (x8, 0);
              operands[3] = x10;
              if (!s_register_operand (operands[3], E_SImode))
                return -1;
              x11 = XEXP (x8, 1);
              operands[4] = x11;
              if (!arm_rhs_operand (operands[4], E_SImode)
                  || !
#line 11269 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return -1;
              return 370; /* *ifcompare_shift_shift */

            default:
              return -1;
            }

        case NEG:
          if (GET_MODE (x7) != E_SImode
              || pattern485 (x1) != 0)
            return -1;
          operands[5] = x4;
          operands[3] = x5;
          x9 = XEXP (x4, 1);
          operands[4] = x9;
          if (!arm_add_operand (operands[4], E_SImode))
            return -1;
          x12 = XEXP (x7, 0);
          operands[2] = x12;
          if (!s_register_operand (operands[2], E_SImode))
            return -1;
          x8 = XEXP (x3, 2);
          operands[1] = x8;
          if (!arm_not_operand (operands[1], E_SImode)
              || !
#line 11376 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 376; /* *ifcompare_neg_move */

        case LABEL_REF:
          x8 = XEXP (x3, 2);
          if (GET_CODE (x8) != PC)
            return -1;
          x14 = XEXP (x2, 0);
          if (GET_CODE (x14) != PC)
            return -1;
          operands[4] = x4;
          operands[1] = x5;
          x9 = XEXP (x4, 1);
          operands[2] = x9;
          if (!thumb1_cmpneg_operand (operands[2], E_SImode))
            return -1;
          x12 = XEXP (x7, 0);
          operands[3] = x12;
          x15 = XEXP (x6, 0);
          operands[0] = x15;
          if (!scratch_operand (operands[0], E_SImode)
              || !
#line 1235 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return -1;
          return 969; /* cbranchsi4_scratch */

        default:
          return -1;
        }

    case PLUS:
      if (GET_MODE (x5) != E_SImode)
        return -1;
      x9 = XEXP (x4, 1);
      if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x7 = XEXP (x3, 1);
      if (GET_CODE (x7) != LABEL_REF)
        return -1;
      x8 = XEXP (x3, 2);
      if (GET_CODE (x8) != PC)
        return -1;
      x14 = XEXP (x2, 0);
      if (GET_CODE (x14) != PC)
        return -1;
      x16 = XEXP (x5, 0);
      if (!s_register_operand (x16, E_SImode))
        return -1;
      x17 = XEXP (x5, 1);
      if (!reg_or_int_operand (x17, E_SImode))
        return -1;
      x6 = XVECEXP (x1, 0, 1);
      switch (GET_CODE (x6))
        {
        case SET:
          if (pnum_clobbers == NULL)
            return -1;
          x18 = XEXP (x6, 1);
          if (GET_CODE (x18) != PLUS
              || GET_MODE (x18) != E_SImode)
            return -1;
          operands[4] = x4;
          operands[2] = x16;
          operands[3] = x17;
          x12 = XEXP (x7, 0);
          operands[5] = x12;
          x15 = XEXP (x6, 0);
          operands[0] = x15;
          if (!thumb_cbrch_target_operand (operands[0], E_SImode))
            return -1;
          x19 = XEXP (x18, 0);
          if (!rtx_equal_p (x19, operands[2]))
            return -1;
          x20 = XEXP (x18, 1);
          if (!rtx_equal_p (x20, operands[3])
              || !
#line 1546 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1
   && (GET_CODE (operands[4]) == EQ
       || GET_CODE (operands[4]) == NE
       || GET_CODE (operands[4]) == GE
       || GET_CODE (operands[4]) == LT)))
            return -1;
          *pnum_clobbers = 1;
          return 975; /* *addsi3_cbranch */

        case CLOBBER:
          operands[3] = x4;
          operands[1] = x16;
          operands[2] = x17;
          x12 = XEXP (x7, 0);
          operands[4] = x12;
          x15 = XEXP (x6, 0);
          operands[0] = x15;
          if (!scratch_operand (operands[0], E_SImode)
              || !
#line 1625 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1
   && (GET_CODE (operands[3]) == EQ
       || GET_CODE (operands[3]) == NE
       || GET_CODE (operands[3]) == GE
       || GET_CODE (operands[3]) == LT)))
            return -1;
          return 976; /* *addsi3_cbranch_scratch */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_21 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x2) != SET)
    return -1;
  x3 = XEXP (x2, 1);
  if (pattern17 (x3, PLUS, MEM, E_SImode) != 0
      || !s_register_operand (operands[0], E_SImode))
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 1);
  x6 = XEXP (x5, 0);
  x7 = XEXP (x6, 0);
  operands[1] = x7;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x8 = XEXP (x2, 0);
  operands[3] = x8;
  if (!s_register_operand (operands[3], E_SImode))
    return -1;
  x9 = XEXP (x3, 0);
  x10 = XEXP (x9, 1);
  operands[4] = x10;
  if (!const_int_operand (operands[4], E_SImode))
    return -1;
  x11 = XEXP (x9, 0);
  if (!rtx_equal_p (x11, operands[1])
      || !
#line 12617 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_LDRD && TARGET_THUMB2 && reload_completed
     && ((INTVAL (operands[2]) + 4) == INTVAL (operands[4]))
     && (operands_ok_ldrd_strd (operands[0], operands[3],
                                  operands[1], INTVAL (operands[2]),
                                  false, true))))
    return -1;
  return 416; /* *thumb2_ldrd */
}

static int
recog_22 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 0);
  operands[0] = x3;
  x4 = XEXP (x2, 1);
  x5 = XEXP (x4, 0);
  switch (GET_CODE (x5))
    {
    case PLUS:
      if (GET_MODE (x5) != E_SImode)
        return -1;
      x6 = XEXP (x5, 1);
      if (GET_CODE (x6) != CONST_INT)
        return -1;
      operands[2] = x6;
      if (ldrd_strd_offset_operand (operands[2], E_SImode))
        {
          res = recog_21 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      if (XWINT (x6, 0) != -4L)
        return -1;
      x7 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x7) != SET)
        return -1;
      x8 = XEXP (x7, 1);
      if (GET_CODE (x8) != MEM
          || GET_MODE (x8) != E_SImode
          || !s_register_operand (operands[0], E_SImode))
        return -1;
      x9 = XEXP (x5, 0);
      operands[1] = x9;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      x10 = XEXP (x7, 0);
      operands[2] = x10;
      if (!s_register_operand (operands[2], E_SImode))
        return -1;
      x11 = XEXP (x8, 0);
      if (!rtx_equal_p (x11, operands[1])
          || !
#line 12645 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_LDRD && TARGET_THUMB2 && reload_completed
     && (operands_ok_ldrd_strd (operands[0], operands[2],
                                  operands[1], -4, false, true))))
        return -1;
      return 418; /* *thumb2_ldrd_base_neg */

    case REG:
    case SUBREG:
      operands[1] = x5;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      x7 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x7) != SET)
        return -1;
      x8 = XEXP (x7, 1);
      if (pattern486 (x8, 4) != 0
          || !s_register_operand (operands[0], E_SImode))
        return -1;
      x10 = XEXP (x7, 0);
      operands[2] = x10;
      if (!s_register_operand (operands[2], E_SImode))
        return -1;
      x11 = XEXP (x8, 0);
      x12 = XEXP (x11, 0);
      if (!rtx_equal_p (x12, operands[1])
          || !
#line 12632 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_LDRD && TARGET_THUMB2 && reload_completed
     && (operands_ok_ldrd_strd (operands[0], operands[2],
                                  operands[1], 0, false, true))))
        return -1;
      return 417; /* *thumb2_ldrd_base */

    case UNSPEC:
      if (XVECLEN (x5, 0) != 3
          || XINT (x5, 1) != 2
          || GET_MODE (x5) != E_SImode)
        return -1;
      x13 = XVECEXP (x5, 0, 1);
      if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
        return -1;
      x7 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x7) != CLOBBER
          || !register_operand (operands[0], E_SImode))
        return -1;
      x14 = XVECEXP (x5, 0, 0);
      operands[2] = x14;
      if (!register_operand (operands[2], E_SImode))
        return -1;
      x15 = XVECEXP (x5, 0, 2);
      operands[3] = x15;
      x10 = XEXP (x7, 0);
      operands[1] = x10;
      if (!scratch_operand (operands[1], E_SImode)
          || !
#line 274 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return -1;
      return 1008; /* tls_load_dot_plus_four */

    default:
      return -1;
    }
}

static int
recog_23 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) == E_SImode)
    {
      res = recog_22 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  if (pnum_clobbers == NULL)
    return -1;
  operands[1] = x3;
  x4 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x4) != SET)
    return -1;
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != UNSPEC_VOLATILE
      || XVECLEN (x5, 0) != 2)
    return -1;
  x6 = XEXP (x2, 0);
  operands[0] = x6;
  x7 = XVECEXP (x5, 0, 1);
  operands[3] = x7;
  if (!const_int_operand (operands[3], E_SImode))
    return -1;
  x8 = XEXP (x4, 0);
  if (!rtx_equal_p (x8, operands[1]))
    return -1;
  switch (XINT (x5, 1))
    {
    case 18:
      x9 = XVECEXP (x5, 0, 0);
      operands[2] = x9;
      switch (GET_MODE (operands[0]))
        {
        case E_QImode:
          if (pattern602 (x5, E_QImode) != 0
              || !
#line 255 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          *pnum_clobbers = 2;
          return 2888; /* atomic_exchangeqi */

        case E_HImode:
          if (pattern602 (x5, E_HImode) != 0
              || !
#line 255 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          *pnum_clobbers = 2;
          return 2889; /* atomic_exchangehi */

        case E_DImode:
          if (pattern602 (x5, E_DImode) != 0
              || !
#line 255 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          *pnum_clobbers = 2;
          return 2891; /* atomic_exchangedi */

        default:
          return -1;
        }

    case 19:
      x9 = XVECEXP (x5, 0, 0);
      switch (GET_CODE (x9))
        {
        case PLUS:
          switch (pattern593 (x5))
            {
            case 0:
              if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2916; /* atomic_fetch_addqi */

            case 1:
              if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2921; /* atomic_fetch_addhi */

            case 2:
              if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2931; /* atomic_fetch_adddi */

            default:
              return -1;
            }

        case MINUS:
          switch (pattern593 (x5))
            {
            case 0:
              if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2917; /* atomic_fetch_subqi */

            case 1:
              if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2922; /* atomic_fetch_subhi */

            case 2:
              if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2932; /* atomic_fetch_subdi */

            default:
              return -1;
            }

        case IOR:
          switch (pattern593 (x5))
            {
            case 0:
              if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2918; /* atomic_fetch_orqi */

            case 1:
              if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2923; /* atomic_fetch_orhi */

            case 2:
              if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2933; /* atomic_fetch_ordi */

            default:
              return -1;
            }

        case XOR:
          switch (pattern593 (x5))
            {
            case 0:
              if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2919; /* atomic_fetch_xorqi */

            case 1:
              if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2924; /* atomic_fetch_xorhi */

            case 2:
              if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2934; /* atomic_fetch_xordi */

            default:
              return -1;
            }

        case AND:
          switch (pattern593 (x5))
            {
            case 0:
              if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2920; /* atomic_fetch_andqi */

            case 1:
              if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2925; /* atomic_fetch_andhi */

            case 2:
              if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2935; /* atomic_fetch_anddi */

            default:
              return -1;
            }

        case NOT:
          x10 = XEXP (x9, 0);
          if (GET_CODE (x10) != AND)
            return -1;
          x11 = XEXP (x10, 1);
          operands[2] = x11;
          x12 = XEXP (x10, 0);
          if (!rtx_equal_p (x12, operands[1]))
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case E_QImode:
              if (pattern622 (x5, E_QImode) != 0
                  || !
#line 386 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2936; /* atomic_fetch_nandqi */

            case E_HImode:
              if (pattern622 (x5, E_HImode) != 0
                  || !
#line 386 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2937; /* atomic_fetch_nandhi */

            case E_DImode:
              if (!s_register_operand (operands[0], E_DImode)
                  || !mem_noofs_operand (operands[1], E_DImode)
                  || GET_MODE (x5) != E_DImode
                  || GET_MODE (x9) != E_DImode
                  || GET_MODE (x10) != E_DImode
                  || !s_register_operand (operands[2], E_DImode)
                  || !
#line 386 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2939; /* atomic_fetch_nanddi */

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_24 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != PLUS
      || GET_MODE (x4) != E_SImode)
    return -1;
  x5 = XVECEXP (x1, 0, 0);
  x6 = XEXP (x5, 0);
  x7 = XEXP (x6, 0);
  x8 = XEXP (x7, 0);
  operands[0] = x8;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x9 = XEXP (x5, 1);
  operands[2] = x9;
  x10 = XEXP (x4, 1);
  operands[3] = x10;
  if (!const_int_operand (operands[3], E_SImode))
    return -1;
  x11 = XEXP (x2, 1);
  operands[4] = x11;
  x12 = XEXP (x4, 0);
  if (!rtx_equal_p (x12, operands[0])
      || !
#line 12659 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_LDRD && TARGET_THUMB2 && reload_completed
     && ((INTVAL (operands[1]) + 4) == INTVAL (operands[3]))
     && (operands_ok_ldrd_strd (operands[2], operands[4],
                                  operands[0], INTVAL (operands[1]),
                                  false, false))))
    return -1;
  return 419; /* *thumb2_strd */
}

static int
recog_25 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x4) != SET)
    return -1;
  x5 = XEXP (x4, 0);
  if (GET_CODE (x5) != MEM
      || GET_MODE (x5) != E_SImode)
    return -1;
  x6 = XEXP (x2, 1);
  if (!s_register_operand (x6, E_SImode))
    return -1;
  x7 = XEXP (x4, 1);
  if (!s_register_operand (x7, E_SImode))
    return -1;
  x8 = XEXP (x3, 0);
  switch (GET_CODE (x8))
    {
    case PLUS:
      if (GET_MODE (x8) != E_SImode)
        return -1;
      x9 = XEXP (x8, 1);
      if (GET_CODE (x9) != CONST_INT)
        return -1;
      operands[1] = x9;
      if (ldrd_strd_offset_operand (operands[1], E_SImode))
        {
          res = recog_24 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      if (XWINT (x9, 0) != -4L)
        return -1;
      x10 = XEXP (x8, 0);
      operands[0] = x10;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      operands[1] = x6;
      operands[2] = x7;
      x11 = XEXP (x5, 0);
      if (!rtx_equal_p (x11, operands[0])
          || !
#line 12687 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_LDRD && TARGET_THUMB2 && reload_completed
     && (operands_ok_ldrd_strd (operands[1], operands[2],
                                  operands[0], -4, false, false))))
        return -1;
      return 421; /* *thumb2_strd_base_neg */

    case REG:
    case SUBREG:
      operands[0] = x8;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x11 = XEXP (x5, 0);
      if (GET_CODE (x11) != PLUS
          || GET_MODE (x11) != E_SImode)
        return -1;
      x12 = XEXP (x11, 1);
      if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
        return -1;
      operands[1] = x6;
      operands[2] = x7;
      x13 = XEXP (x11, 0);
      if (!rtx_equal_p (x13, operands[0])
          || !
#line 12674 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_LDRD && TARGET_THUMB2 && reload_completed
     && (operands_ok_ldrd_strd (operands[1], operands[2],
                                  operands[0], 0, false, false))))
        return -1;
      return 420; /* *thumb2_strd_base */

    default:
      return -1;
    }
}

static int
recog_26 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 0);
  operands[0] = x3;
  x4 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x4) != SET)
    return -1;
  x5 = XEXP (x2, 1);
  operands[1] = x5;
  x6 = XEXP (x4, 1);
  if (!rtx_equal_p (x6, operands[0]))
    return -1;
  x7 = XEXP (x4, 0);
  if (!rtx_equal_p (x7, operands[1]))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_V8QImode:
      if (!s_register_operand (operands[0], E_V8QImode)
          || !s_register_operand (operands[1], E_V8QImode)
          || !
#line 3594 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 2066; /* *neon_vswpv8qi */

    case E_V16QImode:
      if (!s_register_operand (operands[0], E_V16QImode)
          || !s_register_operand (operands[1], E_V16QImode)
          || !
#line 3594 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 2067; /* *neon_vswpv16qi */

    case E_V4HImode:
      if (!s_register_operand (operands[0], E_V4HImode)
          || !s_register_operand (operands[1], E_V4HImode)
          || !
#line 3594 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 2068; /* *neon_vswpv4hi */

    case E_V8HImode:
      if (!s_register_operand (operands[0], E_V8HImode)
          || !s_register_operand (operands[1], E_V8HImode)
          || !
#line 3594 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 2069; /* *neon_vswpv8hi */

    case E_V2SImode:
      if (!s_register_operand (operands[0], E_V2SImode)
          || !s_register_operand (operands[1], E_V2SImode)
          || !
#line 3594 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 2070; /* *neon_vswpv2si */

    case E_V4SImode:
      if (!s_register_operand (operands[0], E_V4SImode)
          || !s_register_operand (operands[1], E_V4SImode)
          || !
#line 3594 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 2071; /* *neon_vswpv4si */

    case E_V4HFmode:
      if (!s_register_operand (operands[0], E_V4HFmode)
          || !s_register_operand (operands[1], E_V4HFmode)
          || !
#line 3594 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 2072; /* *neon_vswpv4hf */

    case E_V8HFmode:
      if (!s_register_operand (operands[0], E_V8HFmode)
          || !s_register_operand (operands[1], E_V8HFmode)
          || !
#line 3594 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 2073; /* *neon_vswpv8hf */

    case E_V4BFmode:
      if (!s_register_operand (operands[0], E_V4BFmode)
          || !s_register_operand (operands[1], E_V4BFmode)
          || !
#line 3594 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 2074; /* *neon_vswpv4bf */

    case E_V8BFmode:
      if (!s_register_operand (operands[0], E_V8BFmode)
          || !s_register_operand (operands[1], E_V8BFmode)
          || !
#line 3594 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 2075; /* *neon_vswpv8bf */

    case E_V2SFmode:
      if (!s_register_operand (operands[0], E_V2SFmode)
          || !s_register_operand (operands[1], E_V2SFmode)
          || !
#line 3594 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 2076; /* *neon_vswpv2sf */

    case E_V4SFmode:
      if (!s_register_operand (operands[0], E_V4SFmode)
          || !s_register_operand (operands[1], E_V4SFmode)
          || !
#line 3594 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 2077; /* *neon_vswpv4sf */

    case E_DImode:
      if (!s_register_operand (operands[0], E_DImode)
          || !s_register_operand (operands[1], E_DImode)
          || !
#line 3594 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 2078; /* *neon_vswpdi */

    case E_V2DImode:
      if (!s_register_operand (operands[0], E_V2DImode)
          || !s_register_operand (operands[1], E_V2DImode)
          || !
#line 3594 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 2079; /* *neon_vswpv2di */

    default:
      return -1;
    }
}

static int
recog_27 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 0);
  switch (GET_CODE (x3))
    {
    case MEM:
      res = recog_25 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    case PC:
      x4 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x4) == USE)
        {
          x5 = XEXP (x4, 0);
          if (GET_CODE (x5) == LABEL_REF)
            {
              x6 = XEXP (x2, 1);
              operands[0] = x6;
              if (register_operand (operands[0], E_SImode))
                {
                  x7 = XEXP (x5, 0);
                  operands[1] = x7;
                  if (
#line 2022 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                    return 997; /* *thumb1_tablejump */
                }
            }
        }
      break;

    case REG:
    case SUBREG:
      res = recog_26 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    default:
      break;
    }
  x6 = XEXP (x2, 1);
  if (GET_CODE (x6) != SUBREG
      || maybe_ne (SUBREG_BYTE (x6), 0)
      || GET_MODE (x6) != E_CCmode)
    return -1;
  x8 = XEXP (x6, 0);
  if (GET_CODE (x8) != UNSPEC
      || pattern294 (x1, UNSPEC, E_CCmode, 100) != 0)
    return -1;
  x4 = XVECEXP (x1, 0, 1);
  if (XVECLEN (x4, 0) != 1
      || GET_MODE (x4) != E_CCmode)
    return -1;
  x9 = XVECEXP (x4, 0, 0);
  if (GET_CODE (x9) != REG
      || REGNO (x9) != 15
      || GET_MODE (x9) != E_SImode)
    return -1;
  switch (XVECLEN (x8, 0))
    {
    case 1:
      x10 = XVECEXP (x8, 0, 0);
      if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      switch (XINT (x8, 1))
        {
        case 116:
          if (XINT (x4, 1) != 116)
            return -1;
          switch (GET_MODE (x8))
            {
            case E_V2SImode:
              if (!
#line 868 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 734; /* iwmmxt_tandcv2si3 */

            case E_V4HImode:
              if (!
#line 868 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 735; /* iwmmxt_tandcv4hi3 */

            case E_V8QImode:
              if (!
#line 868 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 736; /* iwmmxt_tandcv8qi3 */

            default:
              return -1;
            }

        case 117:
          if (XINT (x4, 1) != 117)
            return -1;
          switch (GET_MODE (x8))
            {
            case E_V2SImode:
              if (!
#line 878 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 737; /* iwmmxt_torcv2si3 */

            case E_V4HImode:
              if (!
#line 878 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 738; /* iwmmxt_torcv4hi3 */

            case E_V8QImode:
              if (!
#line 878 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 739; /* iwmmxt_torcv8qi3 */

            default:
              return -1;
            }

        case 118:
          if (XINT (x4, 1) != 118)
            return -1;
          switch (GET_MODE (x8))
            {
            case E_V2SImode:
              if (!
#line 888 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 740; /* iwmmxt_torvscv2si3 */

            case E_V4HImode:
              if (!
#line 888 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 741; /* iwmmxt_torvscv4hi3 */

            case E_V8QImode:
              if (!
#line 888 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 742; /* iwmmxt_torvscv8qi3 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 2:
      if (XINT (x8, 1) != 119)
        return -1;
      x10 = XVECEXP (x8, 0, 0);
      if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
          || XINT (x4, 1) != 119)
        return -1;
      x11 = XVECEXP (x8, 0, 1);
      operands[0] = x11;
      if (!immediate_operand (operands[0], E_SImode))
        return -1;
      switch (GET_MODE (x8))
        {
        case E_V2SImode:
          if (!
#line 899 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 743; /* iwmmxt_textrcv2si3 */

        case E_V4HImode:
          if (!
#line 899 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 744; /* iwmmxt_textrcv4hi3 */

        case E_V8QImode:
          if (!
#line 899 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 745; /* iwmmxt_textrcv8qi3 */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_28 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  switch (XVECLEN (x3, 0))
    {
    case 3:
      x4 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x4) != SET)
        return -1;
      x5 = XEXP (x4, 1);
      if (GET_CODE (x5) != UNSPEC)
        return -1;
      switch (XINT (x3, 1))
        {
        case 79:
          if (pattern401 (x1) != 0
              || !
#line 2778 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY && ARM_Q_BIT_READ))
            return -1;
          return 87; /* arm_smlawb_setq_insn */

        case 80:
          if (pattern401 (x1) != 0
              || !
#line 2778 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY && ARM_Q_BIT_READ))
            return -1;
          return 89; /* arm_smlawt_setq_insn */

        case 94:
          if (pattern401 (x1) != 0
              || !
#line 6097 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && ARM_Q_BIT_READ))
            return -1;
          return 239; /* arm_smlad_setq_insn */

        case 95:
          if (pattern401 (x1) != 0
              || !
#line 6097 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && ARM_Q_BIT_READ))
            return -1;
          return 241; /* arm_smladx_setq_insn */

        case 96:
          if (pattern401 (x1) != 0
              || !
#line 6097 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && ARM_Q_BIT_READ))
            return -1;
          return 243; /* arm_smlsd_setq_insn */

        case 97:
          if (pattern401 (x1) != 0
              || !
#line 6097 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && ARM_Q_BIT_READ))
            return -1;
          return 245; /* arm_smlsdx_setq_insn */

        case 611:
          switch (pattern402 (x1, 611))
            {
            case 0:
              if (!
#line 2716 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 3717; /* mve_vshlcq_sv16qi */

            case 1:
              if (!
#line 2716 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 3719; /* mve_vshlcq_sv8hi */

            case 2:
              if (!
#line 2716 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 3721; /* mve_vshlcq_sv4si */

            default:
              return -1;
            }

        case 612:
          switch (pattern402 (x1, 612))
            {
            case 0:
              if (!
#line 2716 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 3718; /* mve_vshlcq_uv16qi */

            case 1:
              if (!
#line 2716 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 3720; /* mve_vshlcq_uv8hi */

            case 2:
              if (!
#line 2716 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 3722; /* mve_vshlcq_uv4si */

            default:
              return -1;
            }

        case 1058:
          switch (pattern404 (x1, 1058))
            {
            case 0:
              if (!
#line 9143 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4839; /* mve_vdwdupq_wb_uv16qi_insn */

            case 1:
              if (!
#line 9143 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4840; /* mve_vdwdupq_wb_uv8hi_insn */

            case 2:
              if (!
#line 9143 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4841; /* mve_vdwdupq_wb_uv4si_insn */

            default:
              return -1;
            }

        case 1062:
          switch (pattern404 (x1, 1062))
            {
            case 0:
              if (!
#line 9260 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4845; /* mve_viwdupq_wb_uv16qi_insn */

            case 1:
              if (!
#line 9260 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4846; /* mve_viwdupq_wb_uv8hi_insn */

            case 2:
              if (!
#line 9260 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4847; /* mve_viwdupq_wb_uv4si_insn */

            default:
              return -1;
            }

        case 1064:
          if (pattern405 (x1, 1064, E_V4SImode) != 0
              || !
#line 9342 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4851; /* mve_vstrwq_scatter_base_wb_sv4si */

        case 1065:
          if (pattern405 (x1, 1065, E_V4SImode) != 0
              || !
#line 9342 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4852; /* mve_vstrwq_scatter_base_wb_uv4si */

        case 1068:
          if (pattern369 (x2) != 0
              || pattern510 (x1) != 0
              || !mve_vldrd_immediate (operands[2], E_SImode))
            return -1;
          x6 = XVECEXP (x3, 0, 2);
          operands[3] = x6;
          if (!s_register_operand (operands[3], E_V4SFmode))
            return -1;
          x7 = XEXP (x4, 0);
          operands[0] = x7;
          if (!s_register_operand (operands[0], E_V4SImode))
            return -1;
          x8 = XVECEXP (x5, 0, 0);
          if (!rtx_equal_p (x8, operands[1]))
            return -1;
          x9 = XVECEXP (x5, 0, 1);
          if (!rtx_equal_p (x9, operands[2])
              || !
#line 9393 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4855; /* mve_vstrwq_scatter_base_wb_fv4sf */

        case 1070:
          if (pattern405 (x1, 1070, E_V2DImode) != 0
              || !
#line 9444 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4857; /* mve_vstrdq_scatter_base_wb_sv2di */

        case 1071:
          if (pattern405 (x1, 1071, E_V2DImode) != 0
              || !
#line 9444 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4858; /* mve_vstrdq_scatter_base_wb_uv2di */

        case 1066:
          if (pattern407 (x1, 1066, E_V4SImode) != 0
              || !
#line 9522 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4861; /* mve_vldrwq_gather_base_wb_sv4si_insn */

        case 1067:
          if (pattern407 (x1, 1067, E_V4SImode) != 0
              || !
#line 9522 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4862; /* mve_vldrwq_gather_base_wb_uv4si_insn */

        case 1069:
          if (GET_MODE (x3) != E_V4SFmode)
            return -1;
          x6 = XVECEXP (x3, 0, 2);
          if (GET_CODE (x6) != MEM
              || GET_MODE (x6) != E_BLKmode)
            return -1;
          x10 = XEXP (x6, 0);
          if (GET_CODE (x10) != SCRATCH
              || pattern511 (x1) != 0
              || pattern406 (x1, E_V4SImode) != 0
              || !
#line 9630 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4865; /* mve_vldrwq_gather_base_wb_fv4sf_insn */

        case 1072:
          if (pattern407 (x1, 1072, E_V2DImode) != 0
              || !
#line 9740 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4867; /* mve_vldrdq_gather_base_wb_sv2di_insn */

        case 1073:
          if (pattern407 (x1, 1073, E_V2DImode) != 0
              || !
#line 9740 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4868; /* mve_vldrdq_gather_base_wb_uv2di_insn */

        default:
          return -1;
        }

    case 2:
      return recog_15 (x1, insn, pnum_clobbers);

    case 1:
      if (XINT (x3, 1) != 40
          || GET_MODE (x3) != E_SImode)
        return -1;
      x11 = XEXP (x2, 0);
      operands[0] = x11;
      if (!memory_operand (operands[0], E_SImode))
        return -1;
      x12 = XVECEXP (x3, 0, 0);
      if (GET_CODE (x12) == MEM
          && GET_MODE (x12) == E_SImode)
        {
          x4 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x4) == CLOBBER)
            {
              x13 = XEXP (x12, 0);
              operands[1] = x13;
              if (register_operand (operands[1], E_SImode))
                {
                  x7 = XEXP (x4, 0);
                  if (rtx_equal_p (x7, operands[1]))
                    return 309; /* *stack_protect_set_insn */
                }
            }
        }
      x4 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x4) != SET)
        return -1;
      x5 = XEXP (x4, 1);
      if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      operands[1] = x12;
      if (!memory_operand (operands[1], E_SImode))
        return -1;
      x7 = XEXP (x4, 0);
      operands[2] = x7;
      if (!scratch_operand (operands[2], E_SImode))
        return -1;
      return 312; /* stack_protect_set_tls */

    case 4:
      x4 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x4) != SET)
        return -1;
      switch (XINT (x3, 1))
        {
        case 1061:
          switch (pattern366 (x1, PLUS))
            {
            case 0:
              if (!
#line 9022 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4830; /* mve_vidupq_m_wb_uv16qi_insn */

            case 1:
              if (!
#line 9022 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4831; /* mve_vidupq_m_wb_uv8hi_insn */

            case 2:
              if (!
#line 9022 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4832; /* mve_vidupq_m_wb_uv4si_insn */

            default:
              return -1;
            }

        case 1057:
          switch (pattern366 (x1, MINUS))
            {
            case 0:
              if (!
#line 9090 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4836; /* mve_vddupq_m_wb_uv16qi_insn */

            case 1:
              if (!
#line 9090 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4837; /* mve_vddupq_m_wb_uv8hi_insn */

            case 2:
              if (!
#line 9090 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4838; /* mve_vddupq_m_wb_uv4si_insn */

            default:
              return -1;
            }

        case 1064:
          if (pattern368 (x1, 1064, E_V4SImode, E_V4BImode) != 0
              || !
#line 9368 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4853; /* mve_vstrwq_scatter_base_wb_p_sv4si */

        case 1065:
          if (pattern368 (x1, 1065, E_V4SImode, E_V4BImode) != 0
              || !
#line 9368 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4854; /* mve_vstrwq_scatter_base_wb_p_uv4si */

        case 1068:
          if (pattern369 (x2) != 0)
            return -1;
          x5 = XEXP (x4, 1);
          if (GET_CODE (x5) != UNSPEC
              || pattern510 (x1) != 0
              || !mve_vstrw_immediate (operands[2], E_SImode))
            return -1;
          x6 = XVECEXP (x3, 0, 2);
          operands[3] = x6;
          if (!s_register_operand (operands[3], E_V4SFmode)
              || pattern367 (x1, E_V4SImode, E_V4BImode) != 0
              || !
#line 9419 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4856; /* mve_vstrwq_scatter_base_wb_p_fv4sf */

        case 1070:
          if (pattern368 (x1, 1070, E_V2DImode, E_V2QImode) != 0
              || !
#line 9470 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4859; /* mve_vstrdq_scatter_base_wb_p_sv2di */

        case 1071:
          if (pattern368 (x1, 1071, E_V2DImode, E_V2QImode) != 0
              || !
#line 9470 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4860; /* mve_vstrdq_scatter_base_wb_p_uv2di */

        case 1066:
          if (pattern371 (x1, 1066, E_V4SImode, E_V4BImode) != 0
              || !
#line 9578 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4863; /* mve_vldrwq_gather_base_wb_z_sv4si_insn */

        case 1067:
          if (pattern371 (x1, 1067, E_V4SImode, E_V4BImode) != 0
              || !
#line 9578 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4864; /* mve_vldrwq_gather_base_wb_z_uv4si_insn */

        case 1069:
          if (GET_MODE (x3) != E_V4SFmode)
            return -1;
          x14 = XVECEXP (x3, 0, 3);
          if (GET_CODE (x14) != MEM
              || GET_MODE (x14) != E_BLKmode)
            return -1;
          x15 = XEXP (x14, 0);
          if (GET_CODE (x15) != SCRATCH)
            return -1;
          x5 = XEXP (x4, 1);
          if (GET_CODE (x5) != UNSPEC
              || pattern511 (x1) != 0
              || pattern370 (x1, E_V4SImode, E_V4BImode) != 0
              || !
#line 9687 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4866; /* mve_vldrwq_gather_base_wb_z_fv4sf_insn */

        case 1072:
          if (pattern371 (x1, 1072, E_V2DImode, E_V2QImode) != 0
              || !
#line 9812 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4871; /* mve_vldrdq_gather_base_wb_z_sv2di_insn */

        case 1073:
          if (pattern371 (x1, 1073, E_V2DImode, E_V2QImode) != 0
              || !
#line 9812 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4872; /* mve_vldrdq_gather_base_wb_z_uv2di_insn */

        case 1087:
          if (pattern373 (x1, 1087) != 0
              || !
#line 9836 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4873; /* mve_vadciq_m_uv4si */

        case 1089:
          if (pattern373 (x1, 1089) != 0
              || !
#line 9836 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4874; /* mve_vadciq_m_sv4si */

        case 1075:
          if (pattern374 (x1, 1075) != 0
              || !
#line 9872 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4877; /* mve_vadcq_m_uv4si */

        case 1077:
          if (pattern374 (x1, 1077) != 0
              || !
#line 9872 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4878; /* mve_vadcq_m_sv4si */

        case 1080:
          if (pattern373 (x1, 1080) != 0
              || !
#line 9909 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4881; /* mve_vsbciq_m_uv4si */

        case 1081:
          if (pattern373 (x1, 1081) != 0
              || !
#line 9909 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4882; /* mve_vsbciq_m_sv4si */

        case 1084:
          if (pattern374 (x1, 1084) != 0
              || !
#line 9945 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4885; /* mve_vsbcq_m_uv4si */

        case 1085:
          if (pattern374 (x1, 1085) != 0
              || !
#line 9945 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4886; /* mve_vsbcq_m_sv4si */

        case 1094:
          switch (pattern376 (x1, 1094))
            {
            case 0:
              if (!
#line 10362 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4936; /* mve_vshlcq_m_sv16qi */

            case 1:
              if (!
#line 10362 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4938; /* mve_vshlcq_m_sv8hi */

            case 2:
              if (!
#line 10362 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4940; /* mve_vshlcq_m_sv4si */

            default:
              return -1;
            }

        case 1093:
          switch (pattern376 (x1, 1093))
            {
            case 0:
              if (!
#line 10362 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4937; /* mve_vshlcq_m_uv16qi */

            case 1:
              if (!
#line 10362 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4939; /* mve_vshlcq_m_uv8hi */

            case 2:
              if (!
#line 10362 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4941; /* mve_vshlcq_m_uv4si */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 5:
      x6 = XVECEXP (x3, 0, 2);
      if (GET_CODE (x6) != SUBREG
          || maybe_ne (SUBREG_BYTE (x6), 4)
          || GET_MODE (x6) != E_SImode)
        return -1;
      x4 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x4) != SET)
        return -1;
      x5 = XEXP (x4, 1);
      if (GET_CODE (x5) != UNSPEC
          || XVECLEN (x5, 0) != 5
          || GET_MODE (x5) != E_SImode)
        return -1;
      x16 = XVECEXP (x5, 0, 2);
      if (GET_CODE (x16) != SUBREG
          || maybe_ne (SUBREG_BYTE (x16), 4)
          || GET_MODE (x16) != E_SImode)
        return -1;
      x11 = XEXP (x2, 0);
      operands[0] = x11;
      x12 = XVECEXP (x3, 0, 0);
      operands[2] = x12;
      x17 = XVECEXP (x3, 0, 1);
      operands[3] = x17;
      if (!s_register_operand (operands[3], E_SImode))
        return -1;
      x10 = XEXP (x6, 0);
      operands[4] = x10;
      if (!s_register_operand (operands[4], E_DImode))
        return -1;
      x14 = XVECEXP (x3, 0, 3);
      operands[5] = x14;
      if (!mve_imm_selective_upto_8 (operands[5], E_SImode))
        return -1;
      x18 = XVECEXP (x3, 0, 4);
      operands[6] = x18;
      x7 = XEXP (x4, 0);
      operands[1] = x7;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      x8 = XVECEXP (x5, 0, 0);
      if (!rtx_equal_p (x8, operands[2]))
        return -1;
      x9 = XVECEXP (x5, 0, 1);
      if (!rtx_equal_p (x9, operands[3]))
        return -1;
      x19 = XEXP (x16, 0);
      if (!rtx_equal_p (x19, operands[4]))
        return -1;
      x20 = XVECEXP (x5, 0, 3);
      if (!rtx_equal_p (x20, operands[5]))
        return -1;
      x21 = XVECEXP (x5, 0, 4);
      if (!rtx_equal_p (x21, operands[6]))
        return -1;
      switch (XINT (x3, 1))
        {
        case 1059:
          switch (pattern649 (x1, 1059))
            {
            case 0:
              if (!
#line 9206 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4842; /* mve_vdwdupq_m_wb_uv16qi_insn */

            case 1:
              if (!
#line 9206 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4843; /* mve_vdwdupq_m_wb_uv8hi_insn */

            case 2:
              if (!
#line 9206 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4844; /* mve_vdwdupq_m_wb_uv4si_insn */

            default:
              return -1;
            }

        case 1063:
          switch (pattern649 (x1, 1063))
            {
            case 0:
              if (!
#line 9323 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4848; /* mve_viwdupq_m_wb_uv16qi_insn */

            case 1:
              if (!
#line 9323 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4849; /* mve_viwdupq_m_wb_uv8hi_insn */

            case 2:
              if (!
#line 9323 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4850; /* mve_viwdupq_m_wb_uv4si_insn */

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_29 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case CONST_INT:
    case REG:
    case SUBREG:
      x5 = XEXP (x2, 0);
      if (GET_CODE (x5) != REG
          || REGNO (x5) != 100)
        return -1;
      x6 = XEXP (x3, 1);
      switch (GET_CODE (x6))
        {
        case CONST_INT:
          res = recog_1 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        case REG:
        case SUBREG:
          res = recog_2 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        default:
          break;
        }
      if (GET_MODE (x5) != E_CCmode)
        return -1;
      x7 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x7) != SET)
        return -1;
      x8 = XEXP (x7, 1);
      if (GET_CODE (x8) != MINUS
          || GET_MODE (x8) != E_SImode
          || GET_MODE (x3) != E_CCmode)
        return -1;
      operands[1] = x4;
      if (!arm_rhs_operand (operands[1], E_SImode))
        return -1;
      operands[2] = x6;
      if (!arm_rhs_operand (operands[2], E_SImode))
        return -1;
      x9 = XEXP (x7, 0);
      operands[0] = x9;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x10 = XEXP (x8, 0);
      if (!rtx_equal_p (x10, operands[1]))
        return -1;
      x11 = XEXP (x8, 1);
      if (!rtx_equal_p (x11, operands[2])
          || !
#line 2068 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 47; /* subsi3_compare */

    case SIGN_EXTEND:
      if (GET_MODE (x4) != E_DImode
          || pattern294 (x1, CLOBBER, E_CC_NVmode, 100) != 0
          || GET_MODE (x3) != E_CC_NVmode)
        return -1;
      x12 = XEXP (x4, 0);
      operands[1] = x12;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      x7 = XVECEXP (x1, 0, 1);
      x9 = XEXP (x7, 0);
      operands[0] = x9;
      if (!scratch_operand (operands[0], E_SImode))
        return -1;
      x6 = XEXP (x3, 1);
      switch (GET_CODE (x6))
        {
        case PLUS:
          if (GET_MODE (x6) != E_DImode)
            return -1;
          x13 = XEXP (x6, 0);
          operands[3] = x13;
          if (!arm_borrow_operation (operands[3], E_DImode))
            return -1;
          x14 = XEXP (x6, 1);
          switch (GET_CODE (x14))
            {
            case SIGN_EXTEND:
              if (GET_MODE (x14) != E_DImode)
                return -1;
              x15 = XEXP (x14, 0);
              operands[2] = x15;
              if (!s_register_operand (operands[2], E_SImode)
                  || !
#line 1749 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 33; /* cmpsi3_carryin_CC_NVout */

            case CONST_INT:
              operands[2] = x14;
              if (!arm_adcimm_operand (operands[2], E_DImode)
                  || !
#line 1766 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 35; /* cmpsi3_imm_carryin_CC_NVout */

            default:
              return -1;
            }

        case GEU:
        case LTU:
          operands[2] = x6;
          if (!arm_borrow_operation (operands[2], E_DImode)
              || !
#line 1781 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 37; /* cmpsi3_0_carryin_CC_NVout */

        default:
          return -1;
        }

    case ZERO_EXTEND:
      if (GET_MODE (x4) != E_DImode)
        return -1;
      x5 = XEXP (x2, 0);
      if (GET_CODE (x5) != REG
          || REGNO (x5) != 100
          || GET_MODE (x5) != E_CC_Bmode
          || GET_MODE (x3) != E_CC_Bmode)
        return -1;
      x12 = XEXP (x4, 0);
      operands[1] = x12;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      x6 = XEXP (x3, 1);
      switch (GET_CODE (x6))
        {
        case PLUS:
          if (GET_MODE (x6) != E_DImode)
            return -1;
          x13 = XEXP (x6, 0);
          if (!arm_borrow_operation (x13, E_DImode))
            return -1;
          x14 = XEXP (x6, 1);
          switch (GET_CODE (x14))
            {
            case ZERO_EXTEND:
              if (GET_MODE (x14) != E_DImode)
                return -1;
              x15 = XEXP (x14, 0);
              operands[2] = x15;
              if (!s_register_operand (operands[2], E_SImode))
                return -1;
              x7 = XVECEXP (x1, 0, 1);
              switch (GET_CODE (x7))
                {
                case CLOBBER:
                  operands[3] = x13;
                  x9 = XEXP (x7, 0);
                  operands[0] = x9;
                  if (!scratch_operand (operands[0], E_SImode)
                      || !
#line 1749 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                    return -1;
                  return 34; /* cmpsi3_carryin_CC_Bout */

                case SET:
                  x8 = XEXP (x7, 1);
                  if (pattern600 (x8) != 0)
                    return -1;
                  operands[4] = x13;
                  x9 = XEXP (x7, 0);
                  operands[0] = x9;
                  if (!s_register_operand (operands[0], E_SImode))
                    return -1;
                  x11 = XEXP (x8, 1);
                  x16 = XEXP (x11, 0);
                  operands[3] = x16;
                  if (!arm_borrow_operation (operands[3], E_SImode))
                    return -1;
                  x10 = XEXP (x8, 0);
                  if (!rtx_equal_p (x10, operands[1]))
                    return -1;
                  x17 = XEXP (x11, 1);
                  if (!rtx_equal_p (x17, operands[2])
                      || !
#line 2131 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                    return -1;
                  return 52; /* usubvsi3_borrow */

                default:
                  return -1;
                }

            case CONST_INT:
              x7 = XVECEXP (x1, 0, 1);
              switch (GET_CODE (x7))
                {
                case CLOBBER:
                  operands[3] = x13;
                  operands[2] = x14;
                  if (!arm_adcimm_operand (operands[2], E_DImode))
                    return -1;
                  x9 = XEXP (x7, 0);
                  operands[0] = x9;
                  if (!scratch_operand (operands[0], E_SImode)
                      || !
#line 1766 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                    return -1;
                  return 36; /* cmpsi3_imm_carryin_CC_Bout */

                case SET:
                  x8 = XEXP (x7, 1);
                  if (pattern600 (x8) != 0)
                    return -1;
                  operands[5] = x13;
                  operands[3] = x14;
                  if (!const_int_operand (operands[3], E_DImode))
                    return -1;
                  x9 = XEXP (x7, 0);
                  operands[0] = x9;
                  if (!s_register_operand (operands[0], E_SImode))
                    return -1;
                  x11 = XEXP (x8, 1);
                  x16 = XEXP (x11, 0);
                  operands[4] = x16;
                  if (!arm_borrow_operation (operands[4], E_SImode))
                    return -1;
                  x17 = XEXP (x11, 1);
                  operands[2] = x17;
                  if (!arm_adcimm_operand (operands[2], E_SImode))
                    return -1;
                  x10 = XEXP (x8, 0);
                  if (!rtx_equal_p (x10, operands[1])
                      || !
#line 2148 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (UINTVAL (operands[2]) & 0xffffffff) == UINTVAL (operands[3])))
                    return -1;
                  return 53; /* usubvsi3_borrow_imm */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case GEU:
        case LTU:
          operands[2] = x6;
          if (!arm_borrow_operation (operands[2], E_DImode))
            return -1;
          x7 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x7) != CLOBBER)
            return -1;
          x9 = XEXP (x7, 0);
          operands[0] = x9;
          if (!scratch_operand (operands[0], E_SImode)
              || !
#line 1781 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 38; /* cmpsi3_0_carryin_CC_Bout */

        default:
          return -1;
        }

    case NOT:
      if (GET_MODE (x4) != E_SImode)
        return -1;
      x6 = XEXP (x3, 1);
      if (GET_CODE (x6) != CONST_INT)
        return -1;
      x5 = XEXP (x2, 0);
      if (GET_CODE (x5) != REG
          || REGNO (x5) != 100)
        return -1;
      x12 = XEXP (x4, 0);
      switch (GET_CODE (x12))
        {
        case REG:
        case SUBREG:
          operands[2] = x12;
          if (s_register_operand (operands[2], E_SImode))
            {
              res = recog_3 (x1, insn, pnum_clobbers);
              if (res >= 0)
                return res;
            }
          operands[1] = x12;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          switch (XWINT (x6, 0))
            {
            case -1L:
              if (pattern453 (x1, E_CC_RSBmode, NEG) != 0)
                return -1;
              x7 = XVECEXP (x1, 0, 1);
              x9 = XEXP (x7, 0);
              operands[0] = x9;
              if (!s_register_operand (operands[0], E_SImode))
                return -1;
              x8 = XEXP (x7, 1);
              x10 = XEXP (x8, 0);
              if (!rtx_equal_p (x10, operands[1])
                  || !
#line 5183 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 169; /* negsi2_0compare */

            case 0L:
              if (GET_MODE (x5) != E_CC_NZmode
                  || GET_MODE (x3) != E_CC_NZmode)
                return -1;
              x7 = XVECEXP (x1, 0, 1);
              switch (pattern578 (x7, NOT))
                {
                case 0:
                  x9 = XEXP (x7, 0);
                  operands[0] = x9;
                  if (!s_register_operand (operands[0], E_SImode))
                    return -1;
                  x8 = XEXP (x7, 1);
                  x10 = XEXP (x8, 0);
                  if (!rtx_equal_p (x10, operands[1])
                      || !
#line 5403 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                    return -1;
                  return 174; /* *notsi_compare0 */

                case 1:
                  if (!
#line 5414 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                    return -1;
                  return 175; /* *notsi_compare0_scratch */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case MULT:
        case ASHIFT:
        case ROTATE:
        case ASHIFTRT:
        case LSHIFTRT:
        case ROTATERT:
          operands[3] = x12;
          if (!shift_operator (operands[3], E_SImode)
              || XWINT (x6, 0) != 0L
              || GET_MODE (x5) != E_CC_NZmode
              || GET_MODE (x3) != E_CC_NZmode)
            return -1;
          x18 = XEXP (x12, 0);
          operands[1] = x18;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x19 = XEXP (x12, 1);
          operands[2] = x19;
          if (!shift_amount_operand (operands[2], E_SImode))
            return -1;
          x7 = XVECEXP (x1, 0, 1);
          switch (pattern578 (x7, NOT))
            {
            case 0:
              x8 = XEXP (x7, 1);
              x10 = XEXP (x8, 0);
              switch (GET_CODE (x10))
                {
                case MULT:
                case ASHIFT:
                case ROTATE:
                case ASHIFTRT:
                case LSHIFTRT:
                case ROTATERT:
                  if (!rtx_equal_p (x10, operands[3]))
                    return -1;
                  x9 = XEXP (x7, 0);
                  operands[0] = x9;
                  if (!s_register_operand (operands[0], E_SImode)
                      || !
#line 4799 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                    return -1;
                  return 155; /* *not_shiftsi_compare0 */

                default:
                  return -1;
                }

            case 1:
              if (!
#line 4814 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 156; /* *not_shiftsi_compare0_scratch */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case MULT:
    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      x6 = XEXP (x3, 1);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
          || pattern324 (x2) != 0)
        return -1;
      x12 = XEXP (x4, 0);
      if (s_register_operand (x12, E_SImode))
        {
          res = recog_5 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      if (GET_CODE (x4) != MULT
          || GET_MODE (x4) != E_SImode)
        return -1;
      operands[1] = x12;
      if (!register_operand (operands[1], E_SImode))
        return -1;
      x20 = XEXP (x4, 1);
      operands[2] = x20;
      if (!register_operand (operands[2], E_SImode))
        return -1;
      x7 = XVECEXP (x1, 0, 1);
      switch (pattern578 (x7, MULT))
        {
        case 0:
          x9 = XEXP (x7, 0);
          operands[0] = x9;
          if (!register_operand (operands[0], E_SImode))
            return -1;
          x8 = XEXP (x7, 1);
          x10 = XEXP (x8, 0);
          if (!rtx_equal_p (x10, operands[1]))
            return -1;
          x11 = XEXP (x8, 1);
          if (!rtx_equal_p (x11, operands[2])
              || !
#line 1443 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && optimize_size))
            return -1;
          return 1055; /* *thumb2_mulsi_short_compare0 */

        case 1:
          if (!
#line 1455 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && optimize_size))
            return -1;
          return 1056; /* *thumb2_mulsi_short_compare0_scratch */

        default:
          return -1;
        }

    case PLUS:
    case MINUS:
    case AND:
    case IOR:
    case XOR:
      switch (GET_CODE (x4))
        {
        case PLUS:
          res = recog_6 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        case MINUS:
          res = recog_7 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        case AND:
          res = recog_8 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        case IOR:
          res = recog_9 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        case XOR:
          res = recog_10 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        default:
          break;
        }
      operands[1] = x4;
      if (!shiftable_operator (operands[1], E_SImode))
        return -1;
      x12 = XEXP (x4, 0);
      if (!shift_operator (x12, E_SImode))
        return -1;
      operands[3] = x12;
      x6 = XEXP (x3, 1);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
          || pattern324 (x2) != 0)
        return -1;
      x18 = XEXP (x12, 0);
      operands[4] = x18;
      if (!s_register_operand (operands[4], E_SImode))
        return -1;
      x19 = XEXP (x12, 1);
      operands[5] = x19;
      if (!shift_amount_operand (operands[5], E_SImode))
        return -1;
      x20 = XEXP (x4, 1);
      operands[2] = x20;
      if (!s_register_operand (operands[2], E_SImode))
        return -1;
      x7 = XVECEXP (x1, 0, 1);
      switch (GET_CODE (x7))
        {
        case SET:
          x8 = XEXP (x7, 1);
          switch (GET_CODE (x8))
            {
            case PLUS:
            case MINUS:
            case AND:
            case IOR:
            case XOR:
              if (!rtx_equal_p (x8, operands[1]))
                return -1;
              x9 = XEXP (x7, 0);
              operands[0] = x9;
              if (!s_register_operand (operands[0], E_SImode)
                  || !
#line 9720 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 329; /* *arith_shiftsi_compare0 */

            default:
              return -1;
            }

        case CLOBBER:
          x9 = XEXP (x7, 0);
          operands[0] = x9;
          if (!scratch_operand (operands[0], E_SImode)
              || !
#line 9737 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 330; /* *arith_shiftsi_compare0_scratch */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_30 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (XVECLEN (x3, 0) != 1)
    return -1;
  x4 = XVECEXP (x3, 0, 0);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x5 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x5) != SET)
    return -1;
  x6 = XEXP (x5, 1);
  if (GET_CODE (x6) != UNSPEC_VOLATILE
      || XVECLEN (x6, 0) != 1)
    return -1;
  x7 = XEXP (x2, 0);
  operands[0] = x7;
  if (!s_register_operand (operands[0], E_SImode)
      || GET_MODE (x3) != E_SImode)
    return -1;
  x8 = XEXP (x5, 0);
  operands[1] = x8;
  x9 = XVECEXP (x6, 0, 0);
  operands[2] = x9;
  switch (XINT (x3, 1))
    {
    case 22:
      if (XINT (x6, 1) != 22)
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case E_QImode:
          if (!mem_noofs_operand (operands[1], E_QImode)
              || GET_MODE (x6) != E_QImode
              || !s_register_operand (operands[2], E_QImode)
              || !
#line 523 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2972; /* arm_store_exclusiveqi */

        case E_HImode:
          if (!mem_noofs_operand (operands[1], E_HImode)
              || GET_MODE (x6) != E_HImode
              || !s_register_operand (operands[2], E_HImode)
              || !
#line 523 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2973; /* arm_store_exclusivehi */

        case E_SImode:
          if (!mem_noofs_operand (operands[1], E_SImode)
              || GET_MODE (x6) != E_SImode
              || !s_register_operand (operands[2], E_SImode)
              || !
#line 523 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2974; /* arm_store_exclusivesi */

        case E_DImode:
          if (!mem_noofs_operand (operands[1], E_DImode)
              || GET_MODE (x6) != E_DImode
              || !s_register_operand (operands[2], E_DImode)
              || !
#line 523 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2975; /* arm_store_exclusivedi */

        default:
          return -1;
        }

    case 24:
      if (XINT (x6, 1) != 24)
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case E_DImode:
          if (!mem_noofs_operand (operands[1], E_DImode)
              || GET_MODE (x6) != E_DImode
              || !s_register_operand (operands[2], E_DImode)
              || !
#line 549 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQEXD && ARM_DOUBLEWORD_ALIGN))
            return -1;
          return 2976; /* arm_store_release_exclusivedi */

        case E_QImode:
          if (!mem_noofs_operand (operands[1], E_QImode)
              || GET_MODE (x6) != E_QImode
              || !s_register_operand (operands[2], E_QImode)
              || !
#line 564 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ))
            return -1;
          return 2977; /* arm_store_release_exclusiveqi */

        case E_HImode:
          if (!mem_noofs_operand (operands[1], E_HImode)
              || GET_MODE (x6) != E_HImode
              || !s_register_operand (operands[2], E_HImode)
              || !
#line 564 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ))
            return -1;
          return 2978; /* arm_store_release_exclusivehi */

        case E_SImode:
          if (!mem_noofs_operand (operands[1], E_SImode)
              || GET_MODE (x6) != E_SImode
              || !s_register_operand (operands[2], E_SImode)
              || !
#line 564 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ))
            return -1;
          return 2979; /* arm_store_release_exclusivesi */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_31 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 0);
  operands[0] = x3;
  x4 = XEXP (x2, 1);
  switch (GET_CODE (x4))
    {
    case PLUS:
      res = recog_11 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    case MINUS:
      res = recog_12 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    case IOR:
      switch (pattern330 (x1, pnum_clobbers))
        {
        case 0:
          if (
#line 10477 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (arm_select_dominance_cc_mode (operands[3], operands[6], DOM_CC_X_OR_Y)
       != CCmode)))
            return 344; /* *ior_scc_scc */
          break;

        case 1:
          if (
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            {
              *pnum_clobbers = 2;
              return 2942; /* atomic_or_fetchqi */
            }
          break;

        case 2:
          if (
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            {
              *pnum_clobbers = 2;
              return 2947; /* atomic_or_fetchhi */
            }
          break;

        case 3:
          if (
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            {
              *pnum_clobbers = 2;
              return 2952; /* atomic_or_fetchsi */
            }
          break;

        case 4:
          if (
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            {
              *pnum_clobbers = 2;
              return 2957; /* atomic_or_fetchdi */
            }
          break;

        default:
          break;
        }
      break;

    case AND:
      switch (pattern330 (x1, pnum_clobbers))
        {
        case 0:
          if (
#line 10539 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (arm_select_dominance_cc_mode (operands[3], operands[6], DOM_CC_X_AND_Y)
       != CCmode)))
            return 346; /* *and_scc_scc */
          if (
#line 10607 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (arm_select_dominance_cc_mode (operands[3], operands[6], DOM_CC_X_AND_Y)
       == CCmode)))
            return 348; /* *and_scc_scc_nodom */
          break;

        case 1:
          if (
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            {
              *pnum_clobbers = 2;
              return 2944; /* atomic_and_fetchqi */
            }
          break;

        case 2:
          if (
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            {
              *pnum_clobbers = 2;
              return 2949; /* atomic_and_fetchhi */
            }
          break;

        case 3:
          if (
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            {
              *pnum_clobbers = 2;
              return 2954; /* atomic_and_fetchsi */
            }
          break;

        case 4:
          if (
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            {
              *pnum_clobbers = 2;
              return 2959; /* atomic_and_fetchdi */
            }
          break;

        default:
          break;
        }
      break;

    case XOR:
      x5 = XVECEXP (x1, 0, 1);
      if (pattern331 (x5, pnum_clobbers) == 0)
        {
          x6 = XEXP (x4, 0);
          operands[1] = x6;
          switch (pattern327 (x1))
            {
            case 0:
              if (
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                {
                  *pnum_clobbers = 2;
                  return 2943; /* atomic_xor_fetchqi */
                }
              break;

            case 1:
              if (
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                {
                  *pnum_clobbers = 2;
                  return 2948; /* atomic_xor_fetchhi */
                }
              break;

            case 2:
              if (
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                {
                  *pnum_clobbers = 2;
                  return 2953; /* atomic_xor_fetchsi */
                }
              break;

            case 3:
              if (
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                {
                  *pnum_clobbers = 2;
                  return 2958; /* atomic_xor_fetchdi */
                }
              break;

            default:
              break;
            }
        }
      break;

    default:
      break;
    }
  if (s_register_operand (operands[0], E_SImode))
    {
      res = recog_13 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  x5 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x5) != CLOBBER)
    return -1;
  x7 = XEXP (x5, 0);
  if (GET_CODE (x7) != REG
      || REGNO (x7) != 100
      || GET_MODE (x7) != E_CCmode)
    return -1;
  switch (GET_CODE (x4))
    {
    case PLUS:
    case AND:
      operands[5] = x4;
      if (shiftable_operator_strict_it (operands[5], E_SImode))
        {
          x6 = XEXP (x4, 0);
          if (arm_comparison_operator (x6, E_SImode))
            {
              operands[4] = x6;
              if (s_register_operand (operands[0], E_SImode))
                {
                  x8 = XEXP (x6, 0);
                  operands[2] = x8;
                  if (s_register_operand (operands[2], E_SImode))
                    {
                      x9 = XEXP (x6, 1);
                      operands[3] = x9;
                      if (arm_rhs_operand (operands[3], E_SImode))
                        {
                          x10 = XEXP (x4, 1);
                          operands[1] = x10;
                          if (s_register_operand (operands[1], E_SImode)
                              && 
#line 798 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_restrict_it))
                            return 1030; /* *thumb2_cond_arith_strict_it */
                        }
                    }
                }
            }
        }
      if (GET_CODE (x4) != PLUS
          || GET_MODE (x4) != E_SImode
          || !low_register_operand (operands[0], E_SImode))
        return -1;
      x6 = XEXP (x4, 0);
      operands[1] = x6;
      if (!low_register_operand (operands[1], E_SImode))
        return -1;
      x10 = XEXP (x4, 1);
      operands[2] = x10;
      if (!low_reg_or_int_operand (operands[2], E_SImode)
          || !
#line 1301 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
        return -1;
      return 1050; /* *thumb2_addsi_short */

    case MINUS:
      if (GET_MODE (x4) != E_SImode
          || !low_register_operand (operands[0], E_SImode))
        return -1;
      x6 = XEXP (x4, 0);
      operands[1] = x6;
      if (!low_register_operand (operands[1], E_SImode))
        return -1;
      x10 = XEXP (x4, 1);
      operands[2] = x10;
      if (!low_register_operand (operands[2], E_SImode)
          || !
#line 1330 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
        return -1;
      return 1051; /* *thumb2_subsi_short */

    default:
      return -1;
    }
}

static int
recog_32 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 0);
  operands[0] = x3;
  if (s_register_operand (operands[0], E_SImode))
    {
      x4 = XEXP (x2, 1);
      if (GET_MODE (x4) == E_SImode)
        {
          x5 = XEXP (x4, 1);
          operands[2] = x5;
          switch (GET_CODE (x4))
            {
            case SMAX:
              x6 = XEXP (x4, 0);
              switch (GET_CODE (x6))
                {
                case REG:
                case SUBREG:
                  if (pattern455 (x1) == 0
                      && 
#line 4074 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                    return 119; /* *arm_smax_insn */
                  break;

                case SMIN:
                  if (pattern456 (x1) == 0
                      && 
#line 4463 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6 && ARM_Q_BIT_READ
   && arm_sat_operator_match (operands[2], operands[1], NULL, NULL)))
                    return 136; /* satsi_smax_setq */
                  break;

                default:
                  break;
                }
              break;

            case SMIN:
              x6 = XEXP (x4, 0);
              switch (GET_CODE (x6))
                {
                case REG:
                case SUBREG:
                  if (pattern455 (x1) == 0
                      && 
#line 4124 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                    return 121; /* *arm_smin_insn */
                  break;

                case SMAX:
                  if (pattern456 (x1) == 0
                      && 
#line 4463 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6 && ARM_Q_BIT_READ
   && arm_sat_operator_match (operands[1], operands[2], NULL, NULL)))
                    return 134; /* satsi_smin_setq */
                  break;

                default:
                  break;
                }
              break;

            case UMAX:
              if (pattern428 (x1) == 0
                  && 
#line 4156 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return 122; /* *arm_umaxsi3 */
              break;

            case UMIN:
              if (pattern428 (x1) == 0
                  && 
#line 4189 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return 123; /* *arm_uminsi3 */
              break;

            default:
              break;
            }
        }
    }
  if (memory_operand (operands[0], E_SImode))
    {
      x7 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x7) == CLOBBER)
        {
          x8 = XEXP (x7, 0);
          if (GET_CODE (x8) == REG
              && REGNO (x8) == 100
              && GET_MODE (x8) == E_CCmode)
            {
              x4 = XEXP (x2, 1);
              operands[3] = x4;
              if (minmax_operator (operands[3], E_SImode))
                {
                  x6 = XEXP (x4, 0);
                  operands[1] = x6;
                  if (s_register_operand (operands[1], E_SImode))
                    {
                      x5 = XEXP (x4, 1);
                      operands[2] = x5;
                      if (s_register_operand (operands[2], E_SImode)
                          && 
#line 4213 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && optimize_function_for_size_p (cfun) && !arm_restrict_it))
                        return 124; /* *store_minmaxsi */
                    }
                }
            }
        }
    }
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x7 = XVECEXP (x1, 0, 1);
  if (pattern293 (x7) != 0)
    return -1;
  x4 = XEXP (x2, 1);
  if (GET_MODE (x4) != E_SImode)
    return -1;
  x6 = XEXP (x4, 0);
  operands[1] = x6;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x5 = XEXP (x4, 1);
  operands[2] = x5;
  if (!arm_rhs_operand (operands[2], E_SImode))
    return -1;
  switch (GET_CODE (x4))
    {
    case SMAX:
      if (!
#line 34 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return -1;
      return 1000; /* *thumb2_smaxsi3 */

    case SMIN:
      if (!
#line 55 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return -1;
      return 1001; /* *thumb2_sminsi3 */

    case UMAX:
      if (!
#line 76 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return -1;
      return 1002; /* *thumb32_umaxsi3 */

    case UMIN:
      if (!
#line 97 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return -1;
      return 1003; /* *thumb2_uminsi3 */

    default:
      return -1;
    }
}

static int
recog_33 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  switch (GET_CODE (x3))
    {
    case COMPARE:
      return recog_29 (x1, insn, pnum_clobbers);

    case PLUS:
    case MINUS:
    case AND:
    case IOR:
    case XOR:
      return recog_31 (x1, insn, pnum_clobbers);

    case MULT:
    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      x4 = XEXP (x2, 0);
      operands[0] = x4;
      if (s_register_operand (operands[0], E_SImode))
        {
          res = recog_14 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      if (!low_register_operand (operands[0], E_SImode))
        return -1;
      x5 = XVECEXP (x1, 0, 1);
      if (pattern332 (x5) != 0)
        return -1;
      x6 = XEXP (x3, 0);
      operands[1] = x6;
      if (!low_register_operand (operands[1], E_SImode))
        return -1;
      x7 = XEXP (x3, 1);
      operands[2] = x7;
      if (low_reg_or_int_operand (operands[2], E_SImode))
        {
          operands[3] = x3;
          if (shift_operator (operands[3], E_SImode)
              && 
#line 1271 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed
   && ((GET_CODE(operands[3]) != ROTATE && GET_CODE(operands[3]) != ROTATERT)
       || REG_P (operands[2]))))
            return 1046; /* *thumb2_shiftsi3_short */
        }
      if (!low_register_operand (operands[2], E_SImode)
          || GET_CODE (x3) != MULT
          || GET_MODE (x3) != E_SImode
          || !
#line 1429 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && optimize_size && reload_completed))
        return -1;
      return 1054; /* *thumb2_mulsi_short */

    case TRUNCATE:
      if (GET_MODE (x3) != E_SImode)
        return -1;
      x6 = XEXP (x3, 0);
      if (GET_CODE (x6) != LSHIFTRT
          || GET_MODE (x6) != E_DImode)
        return -1;
      x8 = XEXP (x6, 0);
      if (GET_CODE (x8) != MULT
          || GET_MODE (x8) != E_DImode)
        return -1;
      x9 = XEXP (x6, 1);
      if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 32])
        return -1;
      x5 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x5) != CLOBBER)
        return -1;
      x4 = XEXP (x2, 0);
      operands[0] = x4;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x10 = XEXP (x8, 0);
      if (GET_MODE (x10) != E_DImode)
        return -1;
      x11 = XEXP (x8, 1);
      if (GET_MODE (x11) != E_DImode)
        return -1;
      x12 = XEXP (x5, 0);
      operands[3] = x12;
      if (!scratch_operand (operands[3], E_SImode))
        return -1;
      switch (GET_CODE (x10))
        {
        case SIGN_EXTEND:
          if (GET_CODE (x11) != SIGN_EXTEND)
            return -1;
          x13 = XEXP (x10, 0);
          operands[1] = x13;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x14 = XEXP (x11, 0);
          operands[2] = x14;
          if (!s_register_operand (operands[2], E_SImode)
              || !
#line 2501 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 71; /* *smull_high */

        case ZERO_EXTEND:
          if (GET_CODE (x11) != ZERO_EXTEND)
            return -1;
          x13 = XEXP (x10, 0);
          operands[1] = x13;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x14 = XEXP (x11, 0);
          operands[2] = x14;
          if (!s_register_operand (operands[2], E_SImode)
              || !
#line 2501 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 72; /* *umull_high */

        default:
          return -1;
        }

    case UNSPEC:
      return recog_28 (x1, insn, pnum_clobbers);

    case NE:
    case EQ:
    case GE:
    case GT:
    case LE:
    case LT:
    case GEU:
    case GTU:
    case LEU:
    case LTU:
    case UNORDERED:
    case ORDERED:
    case UNGE:
    case UNGT:
    case UNLE:
    case UNLT:
      x7 = XEXP (x3, 1);
      if (x7 == const_int_rtx[MAX_SAVED_CONST_INT + 0])
        {
          res = recog_16 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      operands[1] = x3;
      if (!arm_comparison_operator (operands[1], E_SImode)
          || pattern291 (x1) != 0)
        return -1;
      x6 = XEXP (x3, 0);
      operands[2] = x6;
      if (!s_register_operand (operands[2], E_SImode))
        return -1;
      operands[3] = x7;
      if (!arm_add_operand (operands[3], E_SImode)
          || !
#line 9935 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 336; /* *compare_scc */

    case IF_THEN_ELSE:
      x6 = XEXP (x3, 0);
      switch (GET_CODE (x6))
        {
        case NE:
        case EQ:
        case GE:
        case GT:
        case LE:
        case LT:
        case LTGT:
        case GEU:
        case GTU:
        case LEU:
        case LTU:
        case UNORDERED:
        case ORDERED:
        case UNEQ:
        case UNGE:
        case UNGT:
        case UNLE:
        case UNLT:
          switch (GET_CODE (x6))
            {
            case NE:
            case EQ:
            case GE:
            case GT:
            case LE:
            case LT:
            case GEU:
            case GTU:
            case LEU:
            case LTU:
            case UNORDERED:
            case ORDERED:
            case UNGE:
            case UNGT:
            case UNLE:
            case UNLT:
              res = recog_20 (x1, insn, pnum_clobbers);
              if (res >= 0)
                return res;
              break;

            default:
              break;
            }
          operands[5] = x6;
          if (!comparison_operator (operands[5], E_VOIDmode))
            return -1;
          x8 = XEXP (x6, 0);
          if (GET_CODE (x8) != PLUS
              || GET_MODE (x8) != E_SImode)
            return -1;
          x9 = XEXP (x6, 1);
          if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x5 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x5) != CLOBBER
              || pattern485 (x1) != 0
              || pattern601 (x3) != 0
              || !
#line 10750 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 350; /* movcond_addsi */

        default:
          return -1;
        }

    case SMIN:
    case SMAX:
    case UMIN:
    case UMAX:
      return recog_32 (x1, insn, pnum_clobbers);

    case SS_PLUS:
      if (pattern14 (x1) != 0
          || !
#line 4346 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY && ARM_Q_BIT_READ))
        return -1;
      return 128; /* arm_qadd_setq_insn */

    case SS_MINUS:
      if (pattern14 (x1) != 0
          || !
#line 4346 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY && ARM_Q_BIT_READ))
        return -1;
      return 130; /* arm_qsub_setq_insn */

    case ABS:
      if (pattern15 (x1) != 0)
        return -1;
      x5 = XVECEXP (x1, 0, 1);
      x12 = XEXP (x5, 0);
      if (GET_CODE (x12) == REG
          && REGNO (x12) == 100
          && GET_MODE (x12) == E_CCmode)
        {
          if (
#line 5241 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return 171; /* *arm_abssi2 */
          if (
#line 117 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
            return 1004; /* *thumb2_abssi2 */
        }
      operands[2] = x12;
      if (!scratch_operand (operands[2], E_SImode)
          || !
#line 334 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 950; /* *thumb1_abssi2 */

    case NEG:
      x5 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x5) != CLOBBER)
        return -1;
      x4 = XEXP (x2, 0);
      operands[0] = x4;
      x6 = XEXP (x3, 0);
      switch (GET_CODE (x6))
        {
        case ABS:
          if (GET_MODE (x6) != E_SImode
              || !s_register_operand (operands[0], E_SImode)
              || GET_MODE (x3) != E_SImode)
            return -1;
          x8 = XEXP (x6, 0);
          operands[1] = x8;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x12 = XEXP (x5, 0);
          if (GET_CODE (x12) == REG
              && REGNO (x12) == 100
              && GET_MODE (x12) == E_CCmode)
            {
              if (
#line 5305 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return 172; /* *arm_neg_abssi2 */
              if (
#line 170 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
                return 1005; /* *thumb2_neg_abssi2 */
            }
          operands[2] = x12;
          if (!scratch_operand (operands[2], E_SImode)
              || !
#line 349 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return -1;
          return 951; /* *thumb1_neg_abssi2 */

        case NE:
        case EQ:
        case GE:
        case GT:
        case LE:
        case LT:
        case GEU:
        case GTU:
        case LEU:
        case LTU:
        case UNORDERED:
        case ORDERED:
        case UNGE:
        case UNGT:
        case UNLE:
        case UNLT:
          operands[3] = x6;
          if (!arm_comparison_operator (operands[3], E_VOIDmode)
              || pattern425 (x1) != 0)
            return -1;
          if (
#line 10675 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return 349; /* *negscc */
          if (!
#line 899 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !TARGET_COND_ARITH))
            return -1;
          return 1032; /* *thumb2_negscc */

        case REG:
        case SUBREG:
          operands[1] = x6;
          x12 = XEXP (x5, 0);
          if (GET_CODE (x12) != REG
              || REGNO (x12) != 100
              || GET_MODE (x12) != E_CCmode)
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case E_DImode:
              if (!register_operand (operands[0], E_DImode)
                  || GET_MODE (x3) != E_DImode
                  || !register_operand (operands[1], E_DImode)
                  || !
#line 315 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                return -1;
              return 948; /* *thumb1_negdi2 */

            case E_SImode:
              if (!low_register_operand (operands[0], E_SImode)
                  || GET_MODE (x3) != E_SImode
                  || !low_register_operand (operands[1], E_SImode)
                  || !
#line 1523 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
                return -1;
              return 1060; /* *thumb2_negsi2_short */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case CALL:
      if (pnum_clobbers == NULL)
        return -1;
      x5 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x5) != USE)
        return -1;
      switch (pattern19 (x2))
        {
        case 0:
          x7 = XEXP (x3, 1);
          operands[2] = x7;
          x12 = XEXP (x5, 0);
          operands[3] = x12;
          if (s_register_operand (operands[1], E_SImode))
            {
              if (
#line 8812 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch5t && !SIBLING_CALL_P (insn)))
                {
                  *pnum_clobbers = 1;
                  return 292; /* *call_value_reg_armv5 */
                }
              if (
#line 8823 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && !arm_arch5t && !SIBLING_CALL_P (insn)))
                {
                  *pnum_clobbers = 1;
                  return 293; /* *call_value_reg_arm */
                }
            }
          if (
#line 8863 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && !SIBLING_CALL_P (insn)
   && (GET_CODE (operands[1]) == SYMBOL_REF)
   && !arm_is_long_call_p (SYMBOL_REF_DECL (operands[1]))))
            {
              *pnum_clobbers = 1;
              return 295; /* *call_value_symbol */
            }
          if (register_operand (operands[1], E_SImode))
            {
              if (
#line 1850 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && arm_arch5t))
                {
                  *pnum_clobbers = 1;
                  return 987; /* *call_value_reg_thumb1_v5 */
                }
              if (
#line 1876 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && !arm_arch5t))
                {
                  *pnum_clobbers = 1;
                  return 989; /* *call_value_reg_thumb1 */
                }
            }
          if (
#line 1910 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1
   && GET_CODE (operands[1]) == SYMBOL_REF
   && !arm_is_long_call_p (SYMBOL_REF_DECL (operands[1]))))
            {
              *pnum_clobbers = 1;
              return 991; /* *call_value_insn */
            }
          if (!register_operand (operands[1], E_SImode)
              || !
#line 569 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
            return -1;
          *pnum_clobbers = 1;
          return 1021; /* *call_value_reg_thumb2 */

        case 1:
          x6 = XEXP (x3, 0);
          x15 = XVECEXP (x6, 0, 0);
          x16 = XEXP (x15, 0);
          if (GET_CODE (x16) == REG
              && REGNO (x16) == 4
              && GET_MODE (x16) == E_SImode)
            {
              x7 = XEXP (x3, 1);
              operands[1] = x7;
              x12 = XEXP (x5, 0);
              operands[2] = x12;
              if (
#line 1864 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && use_cmse))
                {
                  *pnum_clobbers = 1;
                  return 988; /* *nonsecure_call_value_reg_thumb1_v5 */
                }
            }
          operands[1] = x16;
          if (register_operand (operands[1], E_SImode))
            {
              x7 = XEXP (x3, 1);
              operands[2] = x7;
              x12 = XEXP (x5, 0);
              operands[3] = x12;
              if (
#line 582 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && use_cmse && TARGET_HAVE_FPCXT_CMSE))
                {
                  *pnum_clobbers = 1;
                  return 1022; /* *nonsecure_call_value_reg_thumb2_fpcxt */
                }
            }
          if (GET_CODE (x16) != REG
              || REGNO (x16) != 4
              || GET_MODE (x16) != E_SImode)
            return -1;
          x7 = XEXP (x3, 1);
          operands[1] = x7;
          x12 = XEXP (x5, 0);
          operands[2] = x12;
          if (!
#line 595 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && use_cmse && !TARGET_HAVE_FPCXT_CMSE))
            return -1;
          *pnum_clobbers = 1;
          return 1023; /* *nonsecure_call_value_reg_thumb2 */

        default:
          return -1;
        }

    case SIGN_EXTRACT:
      if (GET_MODE (x3) != E_SImode)
        return -1;
      x7 = XEXP (x3, 1);
      if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x5 = XVECEXP (x1, 0, 1);
      if (pattern332 (x5) != 0)
        return -1;
      x4 = XEXP (x2, 0);
      operands[0] = x4;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x6 = XEXP (x3, 0);
      operands[1] = x6;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      x17 = XEXP (x3, 2);
      operands[2] = x17;
      if (!const_int_operand (operands[2], E_SImode)
          || !
#line 11822 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      return 382; /* *sign_extract_onebit */

    case NOT:
      x4 = XEXP (x2, 0);
      operands[0] = x4;
      x6 = XEXP (x3, 0);
      switch (GET_CODE (x6))
        {
        case SIGN_EXTRACT:
          if (GET_MODE (x6) != E_SImode)
            return -1;
          x9 = XEXP (x6, 1);
          if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
            return -1;
          x5 = XVECEXP (x1, 0, 1);
          if (pattern293 (x5) != 0
              || !s_register_operand (operands[0], E_SImode)
              || GET_MODE (x3) != E_SImode)
            return -1;
          x8 = XEXP (x6, 0);
          operands[1] = x8;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x18 = XEXP (x6, 2);
          operands[2] = x18;
          if (!const_int_operand (operands[2], E_SImode)
              || !
#line 11840 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 383; /* *not_signextract_onebit */

        case REG:
          operands[1] = x6;
          if (!low_register_operand (operands[1], E_SImode))
            return -1;
          x5 = XVECEXP (x1, 0, 1);
          if (pattern293 (x5) != 0
              || !low_register_operand (operands[0], E_SImode)
              || GET_MODE (x3) != E_SImode
              || !
#line 1512 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
            return -1;
          return 1059; /* *thumb2_one_cmplsi2_short */

        case AND:
          x5 = XVECEXP (x1, 0, 1);
          if (pattern331 (x5, pnum_clobbers) != 0)
            return -1;
          x8 = XEXP (x6, 0);
          operands[1] = x8;
          x9 = XEXP (x6, 1);
          operands[2] = x9;
          x19 = XEXP (x5, 1);
          x20 = XVECEXP (x19, 0, 2);
          operands[3] = x20;
          if (!const_int_operand (operands[3], E_SImode))
            return -1;
          switch (pattern560 (x1))
            {
            case 0:
              if (!
#line 437 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 2;
              return 2960; /* atomic_nand_fetchqi */

            case 1:
              if (!
#line 437 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 2;
              return 2961; /* atomic_nand_fetchhi */

            case 2:
              if (!
#line 437 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 2;
              return 2962; /* atomic_nand_fetchsi */

            case 3:
              if (!
#line 437 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 2;
              return 2963; /* atomic_nand_fetchdi */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case REG:
    case SUBREG:
    case MEM:
      switch (GET_CODE (x3))
        {
        case MEM:
          res = recog_23 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        case REG:
        case SUBREG:
          res = recog_27 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        default:
          break;
        }
      operands[2] = x3;
      if (memory_operand (operands[2], E_SImode))
        {
          x5 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x5) == SET)
            {
              x4 = XEXP (x2, 0);
              operands[0] = x4;
              if (s_register_operand (operands[0], E_SImode))
                {
                  x12 = XEXP (x5, 0);
                  operands[1] = x12;
                  if (s_register_operand (operands[1], E_SImode))
                    {
                      x19 = XEXP (x5, 1);
                      operands[3] = x19;
                      if (memory_operand (operands[3], E_SImode)
                          && 
#line 164 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldrdstrd.md"
(TARGET_LDRD && TARGET_ARM && reload_completed
  && valid_operands_ldrd_strd (operands, true)))
                        return 428; /* *arm_ldrd */
                    }
                }
            }
        }
      operands[0] = x3;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x5 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x5) != SET)
        return -1;
      x4 = XEXP (x2, 0);
      operands[2] = x4;
      if (!memory_operand (operands[2], E_SImode))
        return -1;
      x12 = XEXP (x5, 0);
      operands[3] = x12;
      if (!memory_operand (operands[3], E_SImode))
        return -1;
      x19 = XEXP (x5, 1);
      operands[1] = x19;
      if (!s_register_operand (operands[1], E_SImode)
          || !
#line 184 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldrdstrd.md"
(TARGET_LDRD && TARGET_ARM && reload_completed
  && valid_operands_ldrd_strd (operands, false)))
        return -1;
      return 429; /* *arm_strd */

    case CONST_DOUBLE:
      switch (pattern16 (x1))
        {
        case 0:
          if (!
#line 2142 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(arm_disable_literal_pool
   && TARGET_VFP_BASE
   && !arm_const_double_rtx (operands[1])
   && !(TARGET_VFP_DOUBLE && vfp3_const_double_rtx (operands[1]))))
            return -1;
          return 920; /* no_literal_pool_df_immediate */

        case 1:
          if (!
#line 2169 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(arm_disable_literal_pool
   && TARGET_VFP_BASE
   && !vfp3_const_double_rtx (operands[1])))
            return -1;
          return 921; /* no_literal_pool_sf_immediate */

        default:
          return -1;
        }

    case SIGN_EXTEND:
      if (GET_MODE (x3) != E_SImode)
        return -1;
      x5 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x5) != CLOBBER)
        return -1;
      x4 = XEXP (x2, 0);
      operands[0] = x4;
      if (!register_operand (operands[0], E_SImode))
        return -1;
      x6 = XEXP (x3, 0);
      operands[1] = x6;
      if (!nonimmediate_operand (operands[1], E_HImode))
        return -1;
      x12 = XEXP (x5, 0);
      operands[2] = x12;
      if (!scratch_operand (operands[2], E_SImode)
          || !
#line 446 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 956; /* thumb1_extendhisi2 */

    case CONST_INT:
      operands[1] = x3;
      x5 = XVECEXP (x1, 0, 1);
      if (pattern293 (x5) != 0)
        return -1;
      x4 = XEXP (x2, 0);
      operands[0] = x4;
      switch (GET_MODE (operands[0]))
        {
        case E_QImode:
          if (!low_register_operand (operands[0], E_QImode)
              || !const_int_operand (operands[1], E_QImode)
              || !
#line 1289 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
            return -1;
          return 1047; /* *thumb2_movqi_shortim */

        case E_HImode:
          if (!low_register_operand (operands[0], E_HImode)
              || !const_int_operand (operands[1], E_HImode)
              || !
#line 1289 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
            return -1;
          return 1048; /* *thumb2_movhi_shortim */

        case E_SImode:
          if (!low_register_operand (operands[0], E_SImode)
              || !const_int_operand (operands[1], E_SImode)
              || !
#line 1289 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
            return -1;
          return 1049; /* *thumb2_movsi_shortim */

        default:
          return -1;
        }

    case UNSPEC_VOLATILE:
      return recog_30 (x1, insn, pnum_clobbers);

    default:
      return -1;
    }
}

static int
recog_34 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  switch (GET_CODE (x2))
    {
    case SET:
      return recog_33 (x1, insn, pnum_clobbers);

    case CALL:
      if (pnum_clobbers == NULL)
        return -1;
      x3 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x3) != USE)
        return -1;
      x4 = XEXP (x2, 0);
      switch (pattern7 (x4))
        {
        case 0:
          x5 = XEXP (x2, 1);
          operands[1] = x5;
          x6 = XEXP (x3, 0);
          operands[2] = x6;
          if (s_register_operand (operands[0], E_SImode))
            {
              if (
#line 8700 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch5t && !SIBLING_CALL_P (insn)))
                {
                  *pnum_clobbers = 1;
                  return 290; /* *call_reg_armv5 */
                }
              if (
#line 8710 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && !arm_arch5t && !SIBLING_CALL_P (insn)))
                {
                  *pnum_clobbers = 1;
                  return 291; /* *call_reg_arm */
                }
            }
          if (
#line 8839 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && !SIBLING_CALL_P (insn)
   && (GET_CODE (operands[0]) == SYMBOL_REF)
   && !arm_is_long_call_p (SYMBOL_REF_DECL (operands[0]))))
            {
              *pnum_clobbers = 1;
              return 294; /* *call_symbol */
            }
          if (register_operand (operands[0], E_SImode))
            {
              if (
#line 1806 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && arm_arch5t && !SIBLING_CALL_P (insn)))
                {
                  *pnum_clobbers = 1;
                  return 984; /* *call_reg_thumb1_v5 */
                }
              if (
#line 1829 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && !arm_arch5t && !SIBLING_CALL_P (insn)))
                {
                  *pnum_clobbers = 1;
                  return 986; /* *call_reg_thumb1 */
                }
            }
          if (
#line 1896 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1
   && GET_CODE (operands[0]) == SYMBOL_REF
   && !arm_is_long_call_p (SYMBOL_REF_DECL (operands[0]))))
            {
              *pnum_clobbers = 1;
              return 990; /* *call_insn */
            }
          if (!s_register_operand (operands[0], E_SImode)
              || !
#line 534 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
            return -1;
          *pnum_clobbers = 1;
          return 1018; /* *call_reg_thumb2 */

        case 1:
          x7 = XVECEXP (x4, 0, 0);
          x8 = XEXP (x7, 0);
          if (GET_CODE (x8) == REG
              && REGNO (x8) == 4
              && GET_MODE (x8) == E_SImode)
            {
              x5 = XEXP (x2, 1);
              operands[0] = x5;
              x6 = XEXP (x3, 0);
              operands[1] = x6;
              if (
#line 1818 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && use_cmse && !SIBLING_CALL_P (insn)))
                {
                  *pnum_clobbers = 1;
                  return 985; /* *nonsecure_call_reg_thumb1_v5 */
                }
            }
          operands[0] = x8;
          if (s_register_operand (operands[0], E_SImode))
            {
              x5 = XEXP (x2, 1);
              operands[1] = x5;
              x6 = XEXP (x3, 0);
              operands[2] = x6;
              if (
#line 545 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && use_cmse && TARGET_HAVE_FPCXT_CMSE))
                {
                  *pnum_clobbers = 1;
                  return 1019; /* *nonsecure_call_reg_thumb2_fpcxt */
                }
            }
          if (GET_CODE (x8) != REG
              || REGNO (x8) != 4
              || GET_MODE (x8) != E_SImode)
            return -1;
          x5 = XEXP (x2, 1);
          operands[0] = x5;
          x6 = XEXP (x3, 0);
          operands[1] = x6;
          if (!
#line 557 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && use_cmse && !TARGET_HAVE_FPCXT_CMSE))
            return -1;
          *pnum_clobbers = 1;
          return 1020; /* *nonsecure_call_reg_thumb2 */

        default:
          return -1;
        }

    case RETURN:
      x3 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x3) != SET)
        return -1;
      x9 = XEXP (x3, 1);
      if (pattern17 (x9, POST_INC, MEM, E_SImode) != 0)
        return -1;
      x6 = XEXP (x3, 0);
      if (GET_CODE (x6) != REG
          || REGNO (x6) != 15
          || GET_MODE (x6) != E_SImode)
        return -1;
      x10 = XEXP (x9, 0);
      x11 = XEXP (x10, 0);
      operands[0] = x11;
      if (!s_register_operand (operands[0], E_SImode)
          || !
#line 12001 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && (reload_in_progress || reload_completed)))
        return -1;
      return 389; /* *ldr_with_return */

    case UNSPEC_VOLATILE:
      switch (XVECLEN (x2, 0))
        {
        case 1:
          x3 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x3) != CLOBBER)
            return -1;
          switch (XINT (x2, 1))
            {
            case 16:
              x12 = XVECEXP (x2, 0, 0);
              operands[0] = x12;
              if (!s_register_operand (operands[0], E_SImode))
                return -1;
              x6 = XEXP (x3, 0);
              operands[1] = x6;
              if (!scratch_operand (operands[1], E_SImode))
                return -1;
              if (
#line 12260 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return 404; /* arm_eh_return */
              if (
#line 2032 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                return 998; /* thumb_eh_return */
              if (!
#line 1239 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
                return -1;
              return 1044; /* thumb2_eh_return */

            case 52:
              if (GET_MODE (x2) != E_SImode)
                return -1;
              x12 = XVECEXP (x2, 0, 0);
              if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x6 = XEXP (x3, 0);
              if (GET_CODE (x6) != REG
                  || REGNO (x6) != 100
                  || GET_MODE (x6) != E_CCmode
                  || !
#line 1665 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && TARGET_HAVE_FPCXT_CMSE && use_cmse))
                return -1;
              return 1063; /* *clear_apsr */

            default:
              return -1;
            }

        case 6:
          if (pattern18 (x1, E_SImode) != 0)
            return -1;
          x13 = XVECEXP (x2, 0, 4);
          operands[4] = x13;
          if (!immediate_operand (operands[4], E_SImode))
            return -1;
          x14 = XVECEXP (x2, 0, 5);
          operands[5] = x14;
          if (!immediate_operand (operands[5], E_SImode))
            return -1;
          x3 = XVECEXP (x1, 0, 1);
          x6 = XEXP (x3, 0);
          if (!rtx_equal_p (x6, operands[2]))
            return -1;
          switch (XINT (x2, 1))
            {
            case 41:
              if (!
#line 12901 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_MCR)))
                return -1;
              return 498; /* arm_mcr */

            case 42:
              if (!
#line 12901 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_MCR2)))
                return -1;
              return 499; /* arm_mcr2 */

            default:
              return -1;
            }

        case 4:
          if (pattern18 (x1, E_DImode) != 0)
            return -1;
          x3 = XVECEXP (x1, 0, 1);
          x6 = XEXP (x3, 0);
          if (!rtx_equal_p (x6, operands[2]))
            return -1;
          switch (XINT (x2, 1))
            {
            case 45:
              if (!
#line 12938 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_MCRR)))
                return -1;
              return 502; /* arm_mcrr */

            case 46:
              if (!
#line 12938 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_MCRR2)))
                return -1;
              return 503; /* arm_mcrr2 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_35 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (pattern304 (x3) != 0)
    return -1;
  x4 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x4) != CLOBBER)
    return -1;
  x5 = XEXP (x4, 0);
  if (GET_CODE (x5) != REG
      || REGNO (x5) != 100
      || GET_MODE (x5) != E_CCmode)
    return -1;
  x6 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x6) != USE)
    return -1;
  x7 = XEXP (x6, 0);
  if (GET_CODE (x7) != LABEL_REF
      || GET_MODE (x7) != E_SImode)
    return -1;
  x8 = XEXP (x3, 0);
  x9 = XEXP (x8, 0);
  operands[0] = x9;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x10 = XEXP (x8, 1);
  operands[1] = x10;
  if (!arm_rhs_operand (operands[1], E_SImode))
    return -1;
  x11 = XEXP (x3, 1);
  x12 = XEXP (x11, 0);
  x13 = XEXP (x12, 1);
  x14 = XEXP (x13, 0);
  operands[2] = x14;
  x15 = XEXP (x3, 2);
  x16 = XEXP (x15, 0);
  operands[3] = x16;
  x17 = XEXP (x12, 0);
  x18 = XEXP (x17, 0);
  if (!rtx_equal_p (x18, operands[0]))
    return -1;
  x19 = XEXP (x7, 0);
  if (!rtx_equal_p (x19, operands[2])
      || !
#line 9580 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
    return -1;
  return 314; /* *arm_casesi_internal */
}

static int
recog_36 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 1);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x6 = XEXP (x3, 1);
  if (GET_CODE (x6) != LABEL_REF)
    return -1;
  x7 = XEXP (x3, 2);
  if (GET_CODE (x7) != PC)
    return -1;
  x8 = XVECEXP (x1, 0, 1);
  if (pattern512 (x8) != 0)
    return -1;
  x9 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x9) != CLOBBER)
    return -1;
  x10 = XEXP (x4, 0);
  operands[2] = x10;
  if (!s_register_operand (operands[2], E_SImode))
    return -1;
  x11 = XEXP (x6, 0);
  operands[4] = x11;
  x12 = XEXP (x8, 0);
  operands[0] = x12;
  if (!thumb_cbrch_target_operand (operands[0], E_SImode))
    return -1;
  x13 = XEXP (x9, 0);
  operands[1] = x13;
  if (!scratch_operand (operands[1], E_SImode))
    return -1;
  x14 = XEXP (x8, 1);
  x15 = XEXP (x14, 0);
  if (!rtx_equal_p (x15, operands[2])
      || !
#line 1438 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
    return -1;
  return 974; /* *cbranchne_decr1 */
}

static int
recog_37 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  operands[3] = x4;
  if (equality_operator (operands[3], E_VOIDmode))
    {
      res = recog_36 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  if (GET_CODE (x4) != NE)
    return -1;
  x5 = XEXP (x4, 0);
  if (GET_CODE (x5) != REG
      || REGNO (x5) != 14
      || pattern377 (x3, 1) != 0)
    return -1;
  x6 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x6) != SET)
    return -1;
  x7 = XEXP (x6, 1);
  if (GET_CODE (x7) != PLUS
      || GET_MODE (x7) != E_SImode)
    return -1;
  x8 = XEXP (x7, 0);
  if (GET_CODE (x8) != REG
      || REGNO (x8) != 14
      || GET_MODE (x8) != E_SImode)
    return -1;
  x9 = XEXP (x7, 1);
  if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + -1]
      || pattern513 (x1, E_CCmode, 100, 14) != 0)
    return -1;
  x10 = XEXP (x3, 1);
  x11 = XEXP (x10, 0);
  operands[0] = x11;
  if (!
#line 1737 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_32BIT && TARGET_HAVE_LOB))
    return -1;
  return 1068; /* *doloop_end_internal */
}

static int
recog_38 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24, x25;
  rtx x26, x27, x28, x29, x30, x31, x32;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  switch (GET_CODE (x2))
    {
    case CALL:
      x3 = XEXP (x2, 0);
      switch (pattern7 (x3))
        {
        case 0:
          x4 = XEXP (x2, 1);
          operands[1] = x4;
          x5 = XVECEXP (x1, 0, 1);
          switch (GET_CODE (x5))
            {
            case USE:
              x6 = XVECEXP (x1, 0, 2);
              if (pattern353 (x6, E_SImode, 14) != 0)
                return -1;
              x7 = XEXP (x5, 0);
              operands[2] = x7;
              if (s_register_operand (operands[0], E_SImode))
                {
                  if (
#line 8700 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch5t && !SIBLING_CALL_P (insn)))
                    return 290; /* *call_reg_armv5 */
                  if (
#line 8710 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && !arm_arch5t && !SIBLING_CALL_P (insn)))
                    return 291; /* *call_reg_arm */
                }
              if (
#line 8839 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && !SIBLING_CALL_P (insn)
   && (GET_CODE (operands[0]) == SYMBOL_REF)
   && !arm_is_long_call_p (SYMBOL_REF_DECL (operands[0]))))
                return 294; /* *call_symbol */
              if (register_operand (operands[0], E_SImode))
                {
                  if (
#line 1806 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && arm_arch5t && !SIBLING_CALL_P (insn)))
                    return 984; /* *call_reg_thumb1_v5 */
                  if (
#line 1829 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && !arm_arch5t && !SIBLING_CALL_P (insn)))
                    return 986; /* *call_reg_thumb1 */
                }
              if (
#line 1896 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1
   && GET_CODE (operands[0]) == SYMBOL_REF
   && !arm_is_long_call_p (SYMBOL_REF_DECL (operands[0]))))
                return 990; /* *call_insn */
              if (!s_register_operand (operands[0], E_SImode)
                  || !
#line 534 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
                return -1;
              return 1018; /* *call_reg_thumb2 */

            case RETURN:
              x6 = XVECEXP (x1, 0, 2);
              if (GET_CODE (x6) != USE
                  || !call_insn_operand (operands[0], E_SImode))
                return -1;
              x8 = XEXP (x6, 0);
              operands[2] = x8;
              if (!
#line 8952 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && SIBLING_CALL_P (insn)))
                return -1;
              return 296; /* *sibcall_insn */

            default:
              return -1;
            }

        case 1:
          x5 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x5) != USE)
            return -1;
          x6 = XVECEXP (x1, 0, 2);
          if (pattern353 (x6, E_SImode, 14) != 0)
            return -1;
          x9 = XVECEXP (x3, 0, 0);
          x10 = XEXP (x9, 0);
          if (GET_CODE (x10) == REG
              && REGNO (x10) == 4
              && GET_MODE (x10) == E_SImode)
            {
              x4 = XEXP (x2, 1);
              operands[0] = x4;
              x7 = XEXP (x5, 0);
              operands[1] = x7;
              if (
#line 1818 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && use_cmse && !SIBLING_CALL_P (insn)))
                return 985; /* *nonsecure_call_reg_thumb1_v5 */
            }
          operands[0] = x10;
          if (s_register_operand (operands[0], E_SImode))
            {
              x4 = XEXP (x2, 1);
              operands[1] = x4;
              x7 = XEXP (x5, 0);
              operands[2] = x7;
              if (
#line 545 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && use_cmse && TARGET_HAVE_FPCXT_CMSE))
                return 1019; /* *nonsecure_call_reg_thumb2_fpcxt */
            }
          if (GET_CODE (x10) != REG
              || REGNO (x10) != 4
              || GET_MODE (x10) != E_SImode)
            return -1;
          x4 = XEXP (x2, 1);
          operands[0] = x4;
          x7 = XEXP (x5, 0);
          operands[1] = x7;
          if (!
#line 557 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && use_cmse && !TARGET_HAVE_FPCXT_CMSE))
            return -1;
          return 1020; /* *nonsecure_call_reg_thumb2 */

        default:
          return -1;
        }

    case SET:
      x4 = XEXP (x2, 1);
      switch (GET_CODE (x4))
        {
        case CALL:
          switch (pattern19 (x2))
            {
            case 0:
              x11 = XEXP (x4, 1);
              operands[2] = x11;
              x5 = XVECEXP (x1, 0, 1);
              switch (GET_CODE (x5))
                {
                case USE:
                  x6 = XVECEXP (x1, 0, 2);
                  if (pattern353 (x6, E_SImode, 14) != 0)
                    return -1;
                  x7 = XEXP (x5, 0);
                  operands[3] = x7;
                  if (s_register_operand (operands[1], E_SImode))
                    {
                      if (
#line 8812 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch5t && !SIBLING_CALL_P (insn)))
                        return 292; /* *call_value_reg_armv5 */
                      if (
#line 8823 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && !arm_arch5t && !SIBLING_CALL_P (insn)))
                        return 293; /* *call_value_reg_arm */
                    }
                  if (
#line 8863 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && !SIBLING_CALL_P (insn)
   && (GET_CODE (operands[1]) == SYMBOL_REF)
   && !arm_is_long_call_p (SYMBOL_REF_DECL (operands[1]))))
                    return 295; /* *call_value_symbol */
                  if (register_operand (operands[1], E_SImode))
                    {
                      if (
#line 1850 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && arm_arch5t))
                        return 987; /* *call_value_reg_thumb1_v5 */
                      if (
#line 1876 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && !arm_arch5t))
                        return 989; /* *call_value_reg_thumb1 */
                    }
                  if (
#line 1910 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1
   && GET_CODE (operands[1]) == SYMBOL_REF
   && !arm_is_long_call_p (SYMBOL_REF_DECL (operands[1]))))
                    return 991; /* *call_value_insn */
                  if (!register_operand (operands[1], E_SImode)
                      || !
#line 569 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
                    return -1;
                  return 1021; /* *call_value_reg_thumb2 */

                case RETURN:
                  x6 = XVECEXP (x1, 0, 2);
                  if (GET_CODE (x6) != USE
                      || !call_insn_operand (operands[1], E_SImode))
                    return -1;
                  x8 = XEXP (x6, 0);
                  operands[3] = x8;
                  if (!
#line 8973 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && SIBLING_CALL_P (insn)))
                    return -1;
                  return 297; /* *sibcall_value_insn */

                default:
                  return -1;
                }

            case 1:
              x5 = XVECEXP (x1, 0, 1);
              if (GET_CODE (x5) != USE)
                return -1;
              x6 = XVECEXP (x1, 0, 2);
              if (pattern353 (x6, E_SImode, 14) != 0)
                return -1;
              x12 = XEXP (x4, 0);
              x13 = XVECEXP (x12, 0, 0);
              x14 = XEXP (x13, 0);
              if (GET_CODE (x14) == REG
                  && REGNO (x14) == 4
                  && GET_MODE (x14) == E_SImode)
                {
                  x11 = XEXP (x4, 1);
                  operands[1] = x11;
                  x7 = XEXP (x5, 0);
                  operands[2] = x7;
                  if (
#line 1864 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && use_cmse))
                    return 988; /* *nonsecure_call_value_reg_thumb1_v5 */
                }
              operands[1] = x14;
              if (register_operand (operands[1], E_SImode))
                {
                  x11 = XEXP (x4, 1);
                  operands[2] = x11;
                  x7 = XEXP (x5, 0);
                  operands[3] = x7;
                  if (
#line 582 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && use_cmse && TARGET_HAVE_FPCXT_CMSE))
                    return 1022; /* *nonsecure_call_value_reg_thumb2_fpcxt */
                }
              if (GET_CODE (x14) != REG
                  || REGNO (x14) != 4
                  || GET_MODE (x14) != E_SImode)
                return -1;
              x11 = XEXP (x4, 1);
              operands[1] = x11;
              x7 = XEXP (x5, 0);
              operands[2] = x7;
              if (!
#line 595 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && use_cmse && !TARGET_HAVE_FPCXT_CMSE))
                return -1;
              return 1023; /* *nonsecure_call_value_reg_thumb2 */

            default:
              return -1;
            }

        case UNSPEC:
          x5 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x5) != CLOBBER)
            return -1;
          x6 = XVECEXP (x1, 0, 2);
          if (GET_CODE (x6) != CLOBBER)
            return -1;
          switch (XVECLEN (x4, 0))
            {
            case 1:
              if (pattern322 (x4) != 0
                  || pattern487 (x1) != 0)
                return -1;
              return 308; /* *stack_protect_combined_set_insn */

            case 2:
              if (XINT (x4, 1) != 21)
                return -1;
              x15 = XVECEXP (x4, 0, 0);
              if (GET_CODE (x15) != REG
                  || REGNO (x15) != 0
                  || GET_MODE (x15) != E_SImode)
                return -1;
              x16 = XVECEXP (x4, 0, 1);
              if (GET_CODE (x16) != LABEL_REF)
                return -1;
              x3 = XEXP (x2, 0);
              if (GET_CODE (x3) != PC)
                return -1;
              x7 = XEXP (x5, 0);
              if (GET_CODE (x7) != REG
                  || REGNO (x7) != 12
                  || GET_MODE (x7) != E_SImode)
                return -1;
              x8 = XEXP (x6, 0);
              if (GET_CODE (x8) != REG
                  || REGNO (x8) != 14
                  || GET_MODE (x8) != E_SImode)
                return -1;
              x17 = XEXP (x16, 0);
              operands[0] = x17;
              if (!
#line 1944 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                return -1;
              return 992; /* thumb1_casesi_dispatch */

            default:
              return -1;
            }

        case COMPARE:
          if (GET_MODE (x4) != E_CC_Zmode)
            return -1;
          x12 = XEXP (x4, 0);
          if (GET_CODE (x12) != UNSPEC
              || XVECLEN (x12, 0) != 2
              || XINT (x12, 1) != 41
              || pattern325 (x2, E_CC_Zmode) != 0)
            return -1;
          x5 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x5) != CLOBBER)
            return -1;
          x6 = XVECEXP (x1, 0, 2);
          if (GET_CODE (x6) != CLOBBER)
            return -1;
          x13 = XVECEXP (x12, 0, 0);
          if (!memory_operand (x13, E_SImode))
            return -1;
          operands[1] = x13;
          x18 = XVECEXP (x12, 0, 1);
          if (GET_CODE (x18) == MEM
              && GET_MODE (x18) == E_SImode)
            {
              x19 = XEXP (x18, 0);
              operands[2] = x19;
              if (register_operand (operands[2], E_SImode))
                {
                  x7 = XEXP (x5, 0);
                  operands[0] = x7;
                  if (register_operand (operands[0], E_SImode))
                    {
                      x8 = XEXP (x6, 0);
                      if (rtx_equal_p (x8, operands[2])
                          && 
#line 9445 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                        return 311; /* arm_stack_protect_test_insn */
                    }
                }
            }
          operands[0] = x13;
          operands[1] = x18;
          if (!memory_operand (operands[1], E_SImode))
            return -1;
          x7 = XEXP (x5, 0);
          operands[2] = x7;
          if (!scratch_operand (operands[2], E_SImode))
            return -1;
          x8 = XEXP (x6, 0);
          operands[3] = x8;
          if (!scratch_operand (operands[3], E_SImode))
            return -1;
          return 313; /* stack_protect_test_tls */

        case IF_THEN_ELSE:
          x12 = XEXP (x4, 0);
          switch (GET_CODE (x12))
            {
            case NE:
            case EQ:
            case GE:
            case GT:
            case LE:
            case LT:
            case GEU:
            case GTU:
            case LEU:
            case LTU:
            case UNORDERED:
            case ORDERED:
            case UNGE:
            case UNGT:
            case UNLE:
            case UNLT:
              x3 = XEXP (x2, 0);
              if (GET_CODE (x3) != PC)
                return -1;
              switch (GET_CODE (x12))
                {
                case LEU:
                  res = recog_35 (x1, insn, pnum_clobbers);
                  if (res >= 0)
                    return res;
                  break;

                case NE:
                case EQ:
                  res = recog_37 (x1, insn, pnum_clobbers);
                  if (res >= 0)
                    return res;
                  break;

                default:
                  break;
                }
              x20 = XEXP (x12, 0);
              if (GET_CODE (x20) != PLUS
                  || pattern377 (x4, 0) != 0)
                return -1;
              x5 = XVECEXP (x1, 0, 1);
              if (GET_CODE (x5) != SET)
                return -1;
              x21 = XEXP (x5, 1);
              if (GET_CODE (x21) != PLUS
                  || GET_MODE (x21) != E_SImode)
                return -1;
              x6 = XVECEXP (x1, 0, 2);
              if (GET_CODE (x6) != CLOBBER)
                return -1;
              operands[4] = x12;
              if (!arm_comparison_operator (operands[4], E_VOIDmode))
                return -1;
              x22 = XEXP (x20, 0);
              operands[2] = x22;
              if (!s_register_operand (operands[2], E_SImode))
                return -1;
              x23 = XEXP (x20, 1);
              operands[3] = x23;
              if (!reg_or_int_operand (operands[3], E_SImode))
                return -1;
              x11 = XEXP (x4, 1);
              x24 = XEXP (x11, 0);
              operands[5] = x24;
              x7 = XEXP (x5, 0);
              operands[0] = x7;
              if (!thumb_cbrch_target_operand (operands[0], E_SImode))
                return -1;
              x8 = XEXP (x6, 0);
              operands[1] = x8;
              if (!scratch_operand (operands[1], E_SImode))
                return -1;
              x25 = XEXP (x21, 0);
              if (!rtx_equal_p (x25, operands[2]))
                return -1;
              x26 = XEXP (x21, 1);
              if (!rtx_equal_p (x26, operands[3])
                  || !
#line 1546 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1
   && (GET_CODE (operands[4]) == EQ
       || GET_CODE (operands[4]) == NE
       || GET_CODE (operands[4]) == GE
       || GET_CODE (operands[4]) == LT)))
                return -1;
              return 975; /* *addsi3_cbranch */

            default:
              return -1;
            }

        case UNSPEC_VOLATILE:
          if (pnum_clobbers == NULL
              || XVECLEN (x4, 0) != 1
              || XINT (x4, 1) != 17)
            return -1;
          x15 = XVECEXP (x4, 0, 0);
          if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x5 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x5) != SET)
            return -1;
          x6 = XVECEXP (x1, 0, 2);
          if (GET_CODE (x6) != SET)
            return -1;
          x27 = XEXP (x6, 1);
          if (GET_CODE (x27) != UNSPEC_VOLATILE
              || XVECLEN (x27, 0) != 5
              || XINT (x27, 1) != 17)
            return -1;
          x3 = XEXP (x2, 0);
          operands[0] = x3;
          x7 = XEXP (x5, 0);
          operands[1] = x7;
          x28 = XVECEXP (x27, 0, 0);
          operands[3] = x28;
          x29 = XVECEXP (x27, 0, 1);
          operands[4] = x29;
          x30 = XVECEXP (x27, 0, 2);
          operands[5] = x30;
          if (!const_int_operand (operands[5], E_SImode))
            return -1;
          x31 = XVECEXP (x27, 0, 3);
          operands[6] = x31;
          if (!const_int_operand (operands[6], E_SImode))
            return -1;
          x32 = XVECEXP (x27, 0, 4);
          operands[7] = x32;
          if (!const_int_operand (operands[7], E_SImode))
            return -1;
          switch (pattern299 (x1))
            {
            case 0:
              if (!(
#line 204 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_32BIT)))
                return -1;
              *pnum_clobbers = 1;
              return 2880; /* atomic_compare_and_swap32qi_1 */

            case 1:
              if (!(
#line 204 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_32BIT)))
                return -1;
              *pnum_clobbers = 1;
              return 2881; /* atomic_compare_and_swap32hi_1 */

            case 2:
              if (!(
#line 204 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_THUMB1)))
                return -1;
              *pnum_clobbers = 1;
              return 2882; /* atomic_compare_and_swapt1qi_1 */

            case 3:
              if (!(
#line 204 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_THUMB1)))
                return -1;
              *pnum_clobbers = 1;
              return 2883; /* atomic_compare_and_swapt1hi_1 */

            case 4:
              if (!(
#line 235 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_32BIT)))
                return -1;
              *pnum_clobbers = 1;
              return 2884; /* atomic_compare_and_swap32si_1 */

            case 5:
              if (!(
#line 235 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_32BIT)))
                return -1;
              *pnum_clobbers = 1;
              return 2885; /* atomic_compare_and_swap32di_1 */

            case 6:
              if (!(
#line 235 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_THUMB1)))
                return -1;
              *pnum_clobbers = 1;
              return 2886; /* atomic_compare_and_swapt1si_1 */

            case 7:
              if (!(
#line 235 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_THUMB1)))
                return -1;
              *pnum_clobbers = 1;
              return 2887; /* atomic_compare_and_swapt1di_1 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_39 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24, x25;
  rtx x26, x27, x28, x29, x30;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  if (GET_CODE (x2) != SET)
    return -1;
  x3 = XEXP (x2, 1);
  switch (GET_CODE (x3))
    {
    case IF_THEN_ELSE:
      x4 = XEXP (x2, 0);
      if (GET_CODE (x4) != PC)
        return -1;
      x5 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x5) != CLOBBER)
        return -1;
      x6 = XVECEXP (x1, 0, 2);
      if (GET_CODE (x6) != CLOBBER)
        return -1;
      x7 = XEXP (x6, 0);
      operands[4] = x7;
      if (!scratch_operand (operands[4], E_SImode))
        return -1;
      x8 = XEXP (x3, 0);
      switch (GET_CODE (x8))
        {
        case EQ:
          x9 = XEXP (x8, 1);
          if (GET_CODE (x9) != UNSPEC
              || XVECLEN (x9, 0) != 1
              || XINT (x9, 1) != 41
              || GET_MODE (x9) != E_SImode)
            return -1;
          x10 = XVECEXP (x9, 0, 0);
          if (GET_CODE (x10) != MEM
              || GET_MODE (x10) != E_SImode)
            return -1;
          x11 = XEXP (x3, 1);
          if (GET_CODE (x11) != LABEL_REF)
            return -1;
          x12 = XEXP (x3, 2);
          if (GET_CODE (x12) != PC)
            return -1;
          x13 = XVECEXP (x1, 0, 3);
          if (GET_CODE (x13) != CLOBBER)
            return -1;
          x14 = XEXP (x13, 0);
          if (GET_CODE (x14) != REG
              || REGNO (x14) != 100
              || GET_MODE (x14) != E_CCmode)
            return -1;
          x15 = XEXP (x8, 0);
          operands[0] = x15;
          if (!memory_operand (operands[0], E_SImode))
            return -1;
          x16 = XEXP (x10, 0);
          operands[1] = x16;
          if (!guard_addr_operand (operands[1], E_SImode))
            return -1;
          x17 = XEXP (x11, 0);
          operands[2] = x17;
          x18 = XEXP (x5, 0);
          operands[3] = x18;
          if (!scratch_operand (operands[3], E_SImode))
            return -1;
          return 310; /* *stack_protect_combined_test_insn */

        case LEU:
          if (pattern304 (x3) != 0)
            return -1;
          x18 = XEXP (x5, 0);
          if (GET_CODE (x18) != REG
              || REGNO (x18) != 100
              || GET_MODE (x18) != E_CCmode)
            return -1;
          x13 = XVECEXP (x1, 0, 3);
          if (GET_CODE (x13) != USE)
            return -1;
          x14 = XEXP (x13, 0);
          if (GET_CODE (x14) != LABEL_REF
              || GET_MODE (x14) != E_SImode)
            return -1;
          x15 = XEXP (x8, 0);
          operands[0] = x15;
          if (!s_register_operand (operands[0], E_SImode))
            return -1;
          x9 = XEXP (x8, 1);
          operands[1] = x9;
          if (!arm_rhs_operand (operands[1], E_SImode))
            return -1;
          x11 = XEXP (x3, 1);
          x17 = XEXP (x11, 0);
          x19 = XEXP (x17, 1);
          x20 = XEXP (x19, 0);
          operands[2] = x20;
          x12 = XEXP (x3, 2);
          x21 = XEXP (x12, 0);
          operands[3] = x21;
          x22 = XEXP (x17, 0);
          x23 = XEXP (x22, 0);
          if (!rtx_equal_p (x23, operands[0]))
            return -1;
          x24 = XEXP (x14, 0);
          if (!rtx_equal_p (x24, operands[2])
              || !
#line 1161 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !flag_pic))
            return -1;
          return 1040; /* *thumb2_casesi_internal */

        default:
          return -1;
        }

    case UNSPEC:
      if (XINT (x3, 1) != 17
          || pattern294 (x1, CLOBBER, E_SImode, 0) != 0)
        return -1;
      x5 = XVECEXP (x1, 0, 1);
      x18 = XEXP (x5, 0);
      if (GET_CODE (x18) != REG
          || GET_MODE (x18) != E_SImode)
        return -1;
      x6 = XVECEXP (x1, 0, 2);
      if (GET_CODE (x6) != CLOBBER)
        return -1;
      x7 = XEXP (x6, 0);
      if (GET_CODE (x7) != REG
          || GET_MODE (x7) != E_SImode)
        return -1;
      x13 = XVECEXP (x1, 0, 3);
      if (GET_CODE (x13) != CLOBBER)
        return -1;
      x14 = XEXP (x13, 0);
      if (GET_CODE (x14) != REG
          || REGNO (x14) != 100
          || GET_MODE (x3) != E_SImode)
        return -1;
      switch (XVECLEN (x3, 0))
        {
        case 1:
          x25 = XVECEXP (x3, 0, 0);
          if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
              || REGNO (x18) != 14
              || REGNO (x7) != 12
              || GET_MODE (x14) != E_CCmode
              || !
#line 12311 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_SOFT_TP && !TARGET_FDPIC))
            return -1;
          return 408; /* load_tp_soft */

        case 3:
          x25 = XVECEXP (x3, 0, 0);
          if (GET_CODE (x25) != REG
              || REGNO (x25) != 0
              || GET_MODE (x25) != E_SImode
              || REGNO (x18) != 1
              || REGNO (x7) != 14)
            return -1;
          x26 = XVECEXP (x3, 0, 1);
          operands[0] = x26;
          x27 = XVECEXP (x3, 0, 2);
          operands[1] = x27;
          if (GET_MODE (x14) != E_SImode
              || !
#line 12326 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_GNU2_TLS))
            return -1;
          return 409; /* tlscall */

        default:
          return -1;
        }

    case MEM:
      if (pnum_clobbers != NULL
          && pattern26 (x1) == 0
          && pattern644 (x1) == 0
          && pattern654 (x1) == 0
          && 
#line 1027 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        {
          *pnum_clobbers = 2;
          return 966; /* cpymem8b */
        }
      operands[1] = x3;
      if (pattern296 (x1, 18, 2) != 0)
        return -1;
      x4 = XEXP (x2, 0);
      operands[0] = x4;
      x5 = XVECEXP (x1, 0, 1);
      x28 = XEXP (x5, 1);
      x29 = XVECEXP (x28, 0, 0);
      operands[2] = x29;
      x30 = XVECEXP (x28, 0, 1);
      operands[3] = x30;
      if (!const_int_operand (operands[3], E_SImode))
        return -1;
      x13 = XVECEXP (x1, 0, 3);
      x14 = XEXP (x13, 0);
      operands[4] = x14;
      if (!scratch_operand (operands[4], E_SImode))
        return -1;
      x18 = XEXP (x5, 0);
      if (!rtx_equal_p (x18, operands[1]))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case E_QImode:
          if (pattern602 (x28, E_QImode) != 0
              || !
#line 255 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2888; /* atomic_exchangeqi */

        case E_HImode:
          if (pattern602 (x28, E_HImode) != 0
              || !
#line 255 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2889; /* atomic_exchangehi */

        case E_DImode:
          if (pattern602 (x28, E_DImode) != 0
              || !
#line 255 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2891; /* atomic_exchangedi */

        default:
          return -1;
        }

    case UNSPEC_VOLATILE:
      x13 = XVECEXP (x1, 0, 3);
      if (GET_CODE (x13) != CLOBBER)
        return -1;
      switch (pattern303 (x1))
        {
        case 0:
          if (!(
#line 204 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_32BIT)))
            return -1;
          return 2880; /* atomic_compare_and_swap32qi_1 */

        case 1:
          if (!(
#line 204 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_32BIT)))
            return -1;
          return 2881; /* atomic_compare_and_swap32hi_1 */

        case 2:
          if (!(
#line 204 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_THUMB1)))
            return -1;
          return 2882; /* atomic_compare_and_swapt1qi_1 */

        case 3:
          if (!(
#line 204 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_THUMB1)))
            return -1;
          return 2883; /* atomic_compare_and_swapt1hi_1 */

        case 4:
          if (!(
#line 235 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_32BIT)))
            return -1;
          return 2884; /* atomic_compare_and_swap32si_1 */

        case 5:
          if (!(
#line 235 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_32BIT)))
            return -1;
          return 2885; /* atomic_compare_and_swap32di_1 */

        case 6:
          if (!(
#line 235 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_THUMB1)))
            return -1;
          return 2886; /* atomic_compare_and_swapt1si_1 */

        case 7:
          if (!(
#line 235 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_THUMB1)))
            return -1;
          return 2887; /* atomic_compare_and_swapt1di_1 */

        case 8:
          if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2892; /* atomic_addqi */

        case 9:
          if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2897; /* atomic_addhi */

        case 10:
          if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2902; /* atomic_addsi */

        case 11:
          if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2907; /* atomic_adddi */

        case 12:
          if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2893; /* atomic_subqi */

        case 13:
          if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2898; /* atomic_subhi */

        case 14:
          if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2903; /* atomic_subsi */

        case 15:
          if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2908; /* atomic_subdi */

        case 16:
          if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2894; /* atomic_orqi */

        case 17:
          if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2899; /* atomic_orhi */

        case 18:
          if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2904; /* atomic_orsi */

        case 19:
          if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2909; /* atomic_ordi */

        case 20:
          if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2895; /* atomic_xorqi */

        case 21:
          if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2900; /* atomic_xorhi */

        case 22:
          if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2905; /* atomic_xorsi */

        case 23:
          if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2910; /* atomic_xordi */

        case 24:
          if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2896; /* atomic_andqi */

        case 25:
          if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2901; /* atomic_andhi */

        case 26:
          if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2906; /* atomic_andsi */

        case 27:
          if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2911; /* atomic_anddi */

        case 28:
          if (!
#line 320 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2912; /* atomic_nandqi */

        case 29:
          if (!
#line 320 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2913; /* atomic_nandhi */

        case 30:
          if (!
#line 320 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2914; /* atomic_nandsi */

        case 31:
          if (!
#line 320 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2915; /* atomic_nanddi */

        default:
          return -1;
        }

    case PLUS:
      switch (pattern23 (x1))
        {
        case 0:
          if (!
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2940; /* atomic_add_fetchqi */

        case 1:
          if (!
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2945; /* atomic_add_fetchhi */

        case 2:
          if (!
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2950; /* atomic_add_fetchsi */

        case 3:
          if (!
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2955; /* atomic_add_fetchdi */

        default:
          return -1;
        }

    case MINUS:
      switch (pattern23 (x1))
        {
        case 0:
          if (!
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2941; /* atomic_sub_fetchqi */

        case 1:
          if (!
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2946; /* atomic_sub_fetchhi */

        case 2:
          if (!
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2951; /* atomic_sub_fetchsi */

        case 3:
          if (!
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2956; /* atomic_sub_fetchdi */

        default:
          return -1;
        }

    case IOR:
      switch (pattern23 (x1))
        {
        case 0:
          if (!
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2942; /* atomic_or_fetchqi */

        case 1:
          if (!
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2947; /* atomic_or_fetchhi */

        case 2:
          if (!
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2952; /* atomic_or_fetchsi */

        case 3:
          if (!
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2957; /* atomic_or_fetchdi */

        default:
          return -1;
        }

    case XOR:
      switch (pattern23 (x1))
        {
        case 0:
          if (!
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2943; /* atomic_xor_fetchqi */

        case 1:
          if (!
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2948; /* atomic_xor_fetchhi */

        case 2:
          if (!
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2953; /* atomic_xor_fetchsi */

        case 3:
          if (!
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2958; /* atomic_xor_fetchdi */

        default:
          return -1;
        }

    case AND:
      switch (pattern23 (x1))
        {
        case 0:
          if (!
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2944; /* atomic_and_fetchqi */

        case 1:
          if (!
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2949; /* atomic_and_fetchhi */

        case 2:
          if (!
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2954; /* atomic_and_fetchsi */

        case 3:
          if (!
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2959; /* atomic_and_fetchdi */

        default:
          return -1;
        }

    case NOT:
      x8 = XEXP (x3, 0);
      if (GET_CODE (x8) != AND
          || pattern296 (x1, 19, 3) != 0)
        return -1;
      switch (pattern561 (x1))
        {
        case 0:
          if (!
#line 437 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2960; /* atomic_nand_fetchqi */

        case 1:
          if (!
#line 437 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2961; /* atomic_nand_fetchhi */

        case 2:
          if (!
#line 437 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2962; /* atomic_nand_fetchsi */

        case 3:
          if (!
#line 437 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2963; /* atomic_nand_fetchdi */

        default:
          return -1;
        }

    case SS_MULT:
      if (pattern24 (x1, E_SAmode) != 0
          || !
#line 264 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT && arm_arch6 && !ARM_Q_BIT_READ))
        return -1;
      return 3034; /* *arm_ssmulsa3 */

    case US_MULT:
      if (pattern24 (x1, E_USAmode) != 0
          || !
#line 336 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT && arm_arch6 && !ARM_Q_BIT_READ))
        return -1;
      return 3035; /* *arm_usmulusa3 */

    default:
      return -1;
    }
}

static int
recog_40 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24, x25;
  rtx x26, x27, x28, x29, x30;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  if (GET_CODE (x2) != SET)
    return -1;
  x3 = XEXP (x2, 1);
  switch (GET_CODE (x3))
    {
    case UNSPEC:
      if (XVECLEN (x3, 0) != 1
          || XINT (x3, 1) != 17
          || GET_MODE (x3) != E_SImode)
        return -1;
      x4 = XVECEXP (x3, 0, 0);
      if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
          || pattern294 (x1, CLOBBER, E_SImode, 0) != 0
          || pattern513 (x1, E_SImode, 14, 9) != 0)
        return -1;
      x5 = XVECEXP (x1, 0, 3);
      if (GET_CODE (x5) != CLOBBER)
        return -1;
      x6 = XEXP (x5, 0);
      if (GET_CODE (x6) != REG
          || REGNO (x6) != 12
          || GET_MODE (x6) != E_SImode)
        return -1;
      x7 = XVECEXP (x1, 0, 4);
      if (GET_CODE (x7) != CLOBBER)
        return -1;
      x8 = XEXP (x7, 0);
      if (GET_CODE (x8) != REG
          || REGNO (x8) != 100
          || GET_MODE (x8) != E_CCmode
          || !
#line 12299 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_SOFT_TP && TARGET_FDPIC))
        return -1;
      return 407; /* load_tp_soft_fdpic */

    case MEM:
      if (pnum_clobbers != NULL
          && pattern25 (x1) == 0
          && pattern656 (x1) == 0
          && pattern668 (x1) == 0
          && 
#line 1008 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        {
          *pnum_clobbers = 3;
          return 965; /* cpymem12b */
        }
      operands[1] = x3;
      if (pattern13 (x1) != 0)
        return -1;
      switch (pattern591 (x1))
        {
        case 0:
          x9 = XVECEXP (x1, 0, 1);
          x10 = XEXP (x9, 1);
          switch (pattern636 (x10))
            {
            case 0:
              if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2916; /* atomic_fetch_addqi */

            case 1:
              if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2921; /* atomic_fetch_addhi */

            case 2:
              if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2931; /* atomic_fetch_adddi */

            default:
              return -1;
            }

        case 1:
          x9 = XVECEXP (x1, 0, 1);
          x10 = XEXP (x9, 1);
          switch (pattern636 (x10))
            {
            case 0:
              if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2917; /* atomic_fetch_subqi */

            case 1:
              if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2922; /* atomic_fetch_subhi */

            case 2:
              if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2932; /* atomic_fetch_subdi */

            default:
              return -1;
            }

        case 2:
          x9 = XVECEXP (x1, 0, 1);
          x10 = XEXP (x9, 1);
          switch (pattern636 (x10))
            {
            case 0:
              if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2918; /* atomic_fetch_orqi */

            case 1:
              if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2923; /* atomic_fetch_orhi */

            case 2:
              if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2933; /* atomic_fetch_ordi */

            default:
              return -1;
            }

        case 3:
          x9 = XVECEXP (x1, 0, 1);
          x10 = XEXP (x9, 1);
          switch (pattern636 (x10))
            {
            case 0:
              if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2919; /* atomic_fetch_xorqi */

            case 1:
              if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2924; /* atomic_fetch_xorhi */

            case 2:
              if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2934; /* atomic_fetch_xordi */

            default:
              return -1;
            }

        case 4:
          x9 = XVECEXP (x1, 0, 1);
          x10 = XEXP (x9, 1);
          switch (pattern636 (x10))
            {
            case 0:
              if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2920; /* atomic_fetch_andqi */

            case 1:
              if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2925; /* atomic_fetch_andhi */

            case 2:
              if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2935; /* atomic_fetch_anddi */

            default:
              return -1;
            }

        case 5:
          x9 = XVECEXP (x1, 0, 1);
          x10 = XEXP (x9, 1);
          x11 = XVECEXP (x10, 0, 0);
          x12 = XEXP (x11, 0);
          if (GET_CODE (x12) != AND)
            return -1;
          x13 = XEXP (x12, 1);
          operands[2] = x13;
          x14 = XEXP (x12, 0);
          if (!rtx_equal_p (x14, operands[1]))
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case E_QImode:
              if (pattern642 (x10, E_QImode) != 0
                  || !
#line 386 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2936; /* atomic_fetch_nandqi */

            case E_HImode:
              if (pattern642 (x10, E_HImode) != 0
                  || !
#line 386 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2937; /* atomic_fetch_nandhi */

            case E_DImode:
              if (pattern643 (x10) != 0
                  || !
#line 386 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2939; /* atomic_fetch_nanddi */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case IF_THEN_ELSE:
      x15 = XEXP (x3, 0);
      if (GET_CODE (x15) != LEU
          || pattern304 (x3) != 0)
        return -1;
      x16 = XEXP (x2, 0);
      if (GET_CODE (x16) != PC)
        return -1;
      x9 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x9) != CLOBBER)
        return -1;
      x17 = XEXP (x9, 0);
      if (GET_CODE (x17) != REG
          || REGNO (x17) != 100
          || GET_MODE (x17) != E_CCmode)
        return -1;
      x18 = XVECEXP (x1, 0, 2);
      if (GET_CODE (x18) != CLOBBER)
        return -1;
      x5 = XVECEXP (x1, 0, 3);
      if (GET_CODE (x5) != CLOBBER)
        return -1;
      x7 = XVECEXP (x1, 0, 4);
      if (GET_CODE (x7) != USE)
        return -1;
      x8 = XEXP (x7, 0);
      if (GET_CODE (x8) != LABEL_REF
          || GET_MODE (x8) != E_SImode)
        return -1;
      x19 = XEXP (x15, 0);
      operands[0] = x19;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x20 = XEXP (x15, 1);
      operands[1] = x20;
      if (!arm_rhs_operand (operands[1], E_SImode))
        return -1;
      x21 = XEXP (x3, 1);
      x22 = XEXP (x21, 0);
      x23 = XEXP (x22, 1);
      x24 = XEXP (x23, 0);
      operands[2] = x24;
      x25 = XEXP (x3, 2);
      x26 = XEXP (x25, 0);
      operands[3] = x26;
      x27 = XEXP (x18, 0);
      operands[4] = x27;
      if (!scratch_operand (operands[4], E_SImode))
        return -1;
      x6 = XEXP (x5, 0);
      operands[5] = x6;
      if (!scratch_operand (operands[5], E_SImode))
        return -1;
      x28 = XEXP (x22, 0);
      x29 = XEXP (x28, 0);
      if (!rtx_equal_p (x29, operands[0]))
        return -1;
      x30 = XEXP (x8, 0);
      if (!rtx_equal_p (x30, operands[2])
          || !
#line 1201 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && flag_pic))
        return -1;
      return 1041; /* *thumb2_casesi_internal_pic */

    default:
      return -1;
    }
}

static int
recog_41 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  if (GET_CODE (x2) != SET)
    return -1;
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != MEM
      || pattern25 (x1) != 0)
    return -1;
  x4 = XVECEXP (x1, 0, 5);
  if (GET_CODE (x4) != CLOBBER)
    return -1;
  x5 = XVECEXP (x1, 0, 6);
  if (GET_CODE (x5) != CLOBBER)
    return -1;
  x6 = XVECEXP (x1, 0, 7);
  if (GET_CODE (x6) != CLOBBER
      || pattern656 (x1) != 0)
    return -1;
  x7 = XEXP (x4, 0);
  operands[4] = x7;
  if (!scratch_operand (operands[4], E_SImode))
    return -1;
  x8 = XEXP (x5, 0);
  operands[5] = x8;
  if (!scratch_operand (operands[5], E_SImode))
    return -1;
  x9 = XEXP (x6, 0);
  operands[6] = x9;
  if (!scratch_operand (operands[6], E_SImode)
      || pattern668 (x1) != 0
      || !
#line 1008 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
    return -1;
  return 965; /* cpymem12b */
}

static int
recog_42 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  if (GET_CODE (x2) != SET)
    return -1;
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != MEM
      || pattern26 (x1) != 0)
    return -1;
  x4 = XVECEXP (x1, 0, 4);
  if (GET_CODE (x4) != CLOBBER)
    return -1;
  x5 = XVECEXP (x1, 0, 5);
  if (GET_CODE (x5) != CLOBBER
      || pattern644 (x1) != 0)
    return -1;
  x6 = XEXP (x4, 0);
  operands[4] = x6;
  if (!scratch_operand (operands[4], E_SImode))
    return -1;
  x7 = XEXP (x5, 0);
  operands[5] = x7;
  if (!scratch_operand (operands[5], E_SImode)
      || pattern654 (x1) != 0
      || !
#line 1027 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
    return -1;
  return 966; /* cpymem8b */
}

static int
recog_43 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  switch (GET_CODE (x2))
    {
    case SET:
      x3 = XEXP (x2, 1);
      switch (GET_CODE (x3))
        {
        case UNSPEC:
          if (XVECLEN (x3, 0) != 1
              || XINT (x3, 1) != 0
              || GET_MODE (x3) != E_BLKmode)
            return -1;
          operands[2] = x1;
          if (!multi_register_push (operands[2], E_VOIDmode))
            return -1;
          x4 = XEXP (x2, 0);
          operands[0] = x4;
          x5 = XVECEXP (x3, 0, 0);
          operands[1] = x5;
          if (s_register_operand (operands[1], E_SImode)
              && push_mult_memory_operand (operands[0], E_BLKmode))
            return 384; /* *push_multi */
          if (!vfp_register_operand (operands[1], E_DFmode)
              || !memory_operand (operands[0], E_BLKmode)
              || !
#line 2026 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_VFP_BASE))
            return -1;
          return 883; /* *push_multi_vfp */

        case CONST_INT:
          if (XWINT (x3, 0) != 0L)
            return -1;
          operands[0] = x1;
          if (!clear_multiple_operation (operands[0], E_VOIDmode))
            return -1;
          x4 = XEXP (x2, 0);
          operands[1] = x4;
          if (!register_operand (operands[1], E_SImode)
              || !
#line 1677 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && TARGET_HAVE_FPCXT_CMSE && use_cmse && reload_completed))
            return -1;
          return 1064; /* *clear_multiple */

        default:
          return -1;
        }

    case UNSPEC_VOLATILE:
      if (XVECLEN (x2, 0) != 1
          || XINT (x2, 1) != 53)
        return -1;
      x6 = XVECEXP (x2, 0, 0);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      operands[0] = x1;
      if (!clear_vfp_multiple_operation (operands[0], E_VOIDmode)
          || !
#line 1688 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HAVE_FPCXT_CMSE && use_cmse && reload_completed))
        return -1;
      return 851; /* *clear_vfp_multiple */

    default:
      return -1;
    }
}

static int
recog_44 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x2) != SET)
    return -1;
  x3 = XVECEXP (x1, 0, 0);
  switch (GET_CODE (x3))
    {
    case SET:
      x4 = XEXP (x3, 1);
      switch (GET_CODE (x4))
        {
        case PLUS:
          if (GET_MODE (x4) != E_SImode)
            return -1;
          x5 = XEXP (x2, 1);
          if (GET_CODE (x5) != MEM)
            return -1;
          if (GET_MODE (x5) == E_SImode
              && load_multiple_operation (operands[0], E_VOIDmode))
            {
              x6 = XEXP (x3, 0);
              operands[1] = x6;
              if (s_register_operand (operands[1], E_SImode))
                {
                  x7 = XEXP (x4, 1);
                  operands[2] = x7;
                  if (const_int_I_operand (operands[2], E_SImode))
                    {
                      x8 = XEXP (x2, 0);
                      operands[3] = x8;
                      if (s_register_operand (operands[3], E_SImode))
                        {
                          x9 = XEXP (x4, 0);
                          if (rtx_equal_p (x9, operands[1]))
                            {
                              x10 = XEXP (x5, 0);
                              if (rtx_equal_p (x10, operands[1])
                                  && 
#line 11923 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && (reload_in_progress || reload_completed)))
                                return 386; /* *load_multiple_with_writeback */
                            }
                        }
                    }
                }
            }
          if (GET_MODE (x5) != E_DFmode
              || !pop_multiple_fp (operands[0], E_VOIDmode))
            return -1;
          x6 = XEXP (x3, 0);
          operands[1] = x6;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x7 = XEXP (x4, 1);
          operands[2] = x7;
          if (!const_int_I_operand (operands[2], E_SImode))
            return -1;
          x8 = XEXP (x2, 0);
          operands[3] = x8;
          if (!vfp_hard_register_operand (operands[3], E_DFmode))
            return -1;
          x9 = XEXP (x4, 0);
          if (!rtx_equal_p (x9, operands[1]))
            return -1;
          x10 = XEXP (x5, 0);
          if (!rtx_equal_p (x10, operands[1])
              || !
#line 12014 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && TARGET_VFP_BASE))
            return -1;
          return 390; /* *vfp_pop_multiple_with_writeback */

        case MEM:
          if (pattern333 (x4, -4) != 0)
            return -1;
          x5 = XEXP (x2, 1);
          if (GET_CODE (x5) != MEM
              || GET_MODE (x5) != E_SImode
              || !load_multiple_operation (operands[0], E_VOIDmode))
            return -1;
          x6 = XEXP (x3, 0);
          operands[1] = x6;
          if (!arm_hard_general_register_operand (operands[1], E_SImode))
            return -1;
          x9 = XEXP (x4, 0);
          x11 = XEXP (x9, 0);
          operands[3] = x11;
          if (!s_register_operand (operands[3], E_SImode))
            return -1;
          x8 = XEXP (x2, 0);
          operands[2] = x8;
          if (!arm_hard_general_register_operand (operands[2], E_SImode))
            return -1;
          x10 = XEXP (x5, 0);
          if (!rtx_equal_p (x10, operands[3])
              || !
#line 993 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 2))
            return -1;
          return 479; /* *ldm2_da */

        case REG:
          if (pattern334 (x1, -4) != 0
              || !store_multiple_operation (operands[0], E_VOIDmode))
            return -1;
          x6 = XEXP (x3, 0);
          x12 = XEXP (x6, 0);
          x13 = XEXP (x12, 0);
          operands[3] = x13;
          if (!s_register_operand (operands[3], E_SImode))
            return -1;
          x5 = XEXP (x2, 1);
          operands[2] = x5;
          if (!arm_hard_general_register_operand (operands[2], E_SImode))
            return -1;
          x8 = XEXP (x2, 0);
          x14 = XEXP (x8, 0);
          if (!rtx_equal_p (x14, operands[3])
              || !
#line 1018 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 2))
            return -1;
          return 481; /* *stm2_da */

        default:
          return -1;
        }

    case RETURN:
      x5 = XEXP (x2, 1);
      if (GET_CODE (x5) != MEM
          || GET_MODE (x5) != E_SImode
          || !pop_multiple_return (operands[0], E_VOIDmode))
        return -1;
      x8 = XEXP (x2, 0);
      operands[2] = x8;
      if (!s_register_operand (operands[2], E_SImode))
        return -1;
      x10 = XEXP (x5, 0);
      operands[1] = x10;
      if (!s_register_operand (operands[1], E_SImode)
          || !
#line 11979 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && (reload_in_progress || reload_completed)))
        return -1;
      return 388; /* *pop_multiple_with_return */

    default:
      return -1;
    }
}

static int
recog_45 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24, x25;
  rtx x26, x27, x28;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x2) != SET)
    return -1;
  x3 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x3) != SET)
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  switch (GET_CODE (x4))
    {
    case RETURN:
      x5 = XEXP (x2, 1);
      if (GET_CODE (x5) != PLUS
          || GET_MODE (x5) != E_SImode)
        return -1;
      x6 = XEXP (x3, 1);
      if (GET_CODE (x6) != MEM
          || GET_MODE (x6) != E_SImode
          || !pop_multiple_return (operands[0], E_VOIDmode))
        return -1;
      x7 = XEXP (x2, 0);
      operands[1] = x7;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      x8 = XEXP (x5, 1);
      operands[2] = x8;
      if (!const_int_I_operand (operands[2], E_SImode))
        return -1;
      x9 = XEXP (x3, 0);
      operands[3] = x9;
      if (!s_register_operand (operands[3], E_SImode))
        return -1;
      x10 = XEXP (x5, 0);
      if (!rtx_equal_p (x10, operands[1]))
        return -1;
      x11 = XEXP (x6, 0);
      if (!rtx_equal_p (x11, operands[1])
          || !
#line 11956 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && (reload_in_progress || reload_completed)))
        return -1;
      return 387; /* *pop_multiple_with_writeback_and_return */

    case SET:
      x12 = XEXP (x4, 1);
      switch (GET_CODE (x12))
        {
        case MEM:
          if (pattern333 (x12, -8) != 0)
            return -1;
          x5 = XEXP (x2, 1);
          if (pattern486 (x5, -4) != 0)
            return -1;
          x6 = XEXP (x3, 1);
          if (GET_CODE (x6) != MEM
              || GET_MODE (x6) != E_SImode
              || !load_multiple_operation (operands[0], E_VOIDmode))
            return -1;
          x13 = XEXP (x4, 0);
          operands[1] = x13;
          if (!arm_hard_general_register_operand (operands[1], E_SImode))
            return -1;
          x14 = XEXP (x12, 0);
          x15 = XEXP (x14, 0);
          operands[4] = x15;
          if (!s_register_operand (operands[4], E_SImode))
            return -1;
          x7 = XEXP (x2, 0);
          operands[2] = x7;
          if (!arm_hard_general_register_operand (operands[2], E_SImode))
            return -1;
          x9 = XEXP (x3, 0);
          operands[3] = x9;
          if (!arm_hard_general_register_operand (operands[3], E_SImode))
            return -1;
          x10 = XEXP (x5, 0);
          x16 = XEXP (x10, 0);
          if (!rtx_equal_p (x16, operands[4]))
            return -1;
          x11 = XEXP (x6, 0);
          if (!rtx_equal_p (x11, operands[4])
              || !
#line 643 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3))
            return -1;
          return 460; /* *ldm3_da */

        case REG:
          if (pattern334 (x1, -8) != 0)
            return -1;
          x7 = XEXP (x2, 0);
          x17 = XEXP (x7, 0);
          if (GET_CODE (x17) != PLUS
              || GET_MODE (x17) != E_SImode)
            return -1;
          x18 = XEXP (x17, 1);
          if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + -4])
            return -1;
          x9 = XEXP (x3, 0);
          if (GET_CODE (x9) != MEM
              || GET_MODE (x9) != E_SImode
              || !store_multiple_operation (operands[0], E_VOIDmode))
            return -1;
          x13 = XEXP (x4, 0);
          x19 = XEXP (x13, 0);
          x20 = XEXP (x19, 0);
          operands[4] = x20;
          if (!s_register_operand (operands[4], E_SImode))
            return -1;
          x5 = XEXP (x2, 1);
          operands[2] = x5;
          if (!arm_hard_general_register_operand (operands[2], E_SImode))
            return -1;
          x6 = XEXP (x3, 1);
          operands[3] = x6;
          if (!arm_hard_general_register_operand (operands[3], E_SImode))
            return -1;
          x21 = XEXP (x17, 0);
          if (!rtx_equal_p (x21, operands[4]))
            return -1;
          x22 = XEXP (x9, 0);
          if (!rtx_equal_p (x22, operands[4])
              || !
#line 673 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3))
            return -1;
          return 462; /* *stm3_da */

        case PLUS:
          if (GET_MODE (x12) != E_SImode)
            return -1;
          x23 = XEXP (x12, 1);
          if (GET_CODE (x23) != CONST_INT)
            return -1;
          x13 = XEXP (x4, 0);
          operands[3] = x13;
          if (!s_register_operand (operands[3], E_SImode))
            return -1;
          x14 = XEXP (x12, 0);
          if (!rtx_equal_p (x14, operands[3]))
            return -1;
          switch (XWINT (x23, 0))
            {
            case 8L:
              switch (pattern531 (x2))
                {
                case 0:
                  x6 = XEXP (x3, 1);
                  if (pattern532 (x6) != 0
                      || !load_multiple_operation (operands[0], E_VOIDmode))
                    return -1;
                  x7 = XEXP (x2, 0);
                  operands[1] = x7;
                  x9 = XEXP (x3, 0);
                  operands[2] = x9;
                  x11 = XEXP (x6, 0);
                  x24 = XEXP (x11, 0);
                  if (!rtx_equal_p (x24, operands[3]))
                    return -1;
                  x5 = XEXP (x2, 1);
                  x10 = XEXP (x5, 0);
                  switch (GET_CODE (x10))
                    {
                    case REG:
                    case SUBREG:
                      if (!rtx_equal_p (x10, operands[3]))
                        return -1;
                      x25 = XEXP (x11, 1);
                      if (XWINT (x25, 0) != 4L)
                        return -1;
                      if (arm_hard_general_register_operand (operands[1], E_SImode)
                          && arm_hard_general_register_operand (operands[2], E_SImode)
                          && 
#line 880 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3))
                        return 470; /* *ldm2_ia_update */
                      if (!low_register_operand (operands[1], E_SImode)
                          || !low_register_operand (operands[2], E_SImode)
                          || !
#line 894 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_THUMB1 && XVECLEN (operands[0], 0) == 3))
                        return -1;
                      return 471; /* *thumb_ldm2_ia_update */

                    case PLUS:
                      if (GET_MODE (x10) != E_SImode)
                        return -1;
                      x26 = XEXP (x10, 1);
                      if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
                        return -1;
                      x25 = XEXP (x11, 1);
                      if (XWINT (x25, 0) != 8L
                          || !arm_hard_general_register_operand (operands[1], E_SImode)
                          || !arm_hard_general_register_operand (operands[2], E_SImode))
                        return -1;
                      x16 = XEXP (x10, 0);
                      if (!rtx_equal_p (x16, operands[3])
                          || !
#line 957 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3))
                        return -1;
                      return 476; /* *ldm2_ib_update */

                    default:
                      return -1;
                    }

                case 1:
                  x9 = XEXP (x3, 0);
                  if (pattern594 (x9) != 0
                      || !store_multiple_operation (operands[0], E_VOIDmode))
                    return -1;
                  x6 = XEXP (x3, 1);
                  operands[2] = x6;
                  x22 = XEXP (x9, 0);
                  x27 = XEXP (x22, 0);
                  if (!rtx_equal_p (x27, operands[3]))
                    return -1;
                  x7 = XEXP (x2, 0);
                  x17 = XEXP (x7, 0);
                  switch (GET_CODE (x17))
                    {
                    case REG:
                    case SUBREG:
                      if (!rtx_equal_p (x17, operands[3]))
                        return -1;
                      x28 = XEXP (x22, 1);
                      if (XWINT (x28, 0) != 4L)
                        return -1;
                      if (arm_hard_general_register_operand (operands[1], E_SImode)
                          && arm_hard_general_register_operand (operands[2], E_SImode)
                          && 
#line 917 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3))
                        return 473; /* *stm2_ia_update */
                      if (!low_register_operand (operands[1], E_SImode)
                          || !low_register_operand (operands[2], E_SImode)
                          || !
#line 930 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_THUMB1 && XVECLEN (operands[0], 0) == 3))
                        return -1;
                      return 474; /* *thumb_stm2_ia_update */

                    case PLUS:
                      if (GET_MODE (x17) != E_SImode)
                        return -1;
                      x18 = XEXP (x17, 1);
                      if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
                        return -1;
                      x28 = XEXP (x22, 1);
                      if (XWINT (x28, 0) != 8L
                          || !arm_hard_general_register_operand (operands[1], E_SImode)
                          || !arm_hard_general_register_operand (operands[2], E_SImode))
                        return -1;
                      x21 = XEXP (x17, 0);
                      if (!rtx_equal_p (x21, operands[3])
                          || !
#line 981 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3))
                        return -1;
                      return 478; /* *stm2_ib_update */

                    default:
                      return -1;
                    }

                default:
                  return -1;
                }

            case -8L:
              x5 = XEXP (x2, 1);
              switch (GET_CODE (x5))
                {
                case MEM:
                  if (GET_MODE (x5) != E_SImode)
                    return -1;
                  x10 = XEXP (x5, 0);
                  if (GET_CODE (x10) != PLUS
                      || GET_MODE (x10) != E_SImode)
                    return -1;
                  x26 = XEXP (x10, 1);
                  if (GET_CODE (x26) != CONST_INT)
                    return -1;
                  x6 = XEXP (x3, 1);
                  if (GET_CODE (x6) != MEM
                      || GET_MODE (x6) != E_SImode
                      || !load_multiple_operation (operands[0], E_VOIDmode))
                    return -1;
                  x7 = XEXP (x2, 0);
                  operands[1] = x7;
                  if (!arm_hard_general_register_operand (operands[1], E_SImode))
                    return -1;
                  x9 = XEXP (x3, 0);
                  operands[2] = x9;
                  if (!arm_hard_general_register_operand (operands[2], E_SImode))
                    return -1;
                  x16 = XEXP (x10, 0);
                  if (!rtx_equal_p (x16, operands[3]))
                    return -1;
                  switch (XWINT (x26, 0))
                    {
                    case -4L:
                      x11 = XEXP (x6, 0);
                      if (!rtx_equal_p (x11, operands[3])
                          || !
#line 1007 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3))
                        return -1;
                      return 480; /* *ldm2_da_update */

                    case -8L:
                      x11 = XEXP (x6, 0);
                      if (GET_CODE (x11) != PLUS
                          || GET_MODE (x11) != E_SImode)
                        return -1;
                      x25 = XEXP (x11, 1);
                      if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + -4])
                        return -1;
                      x24 = XEXP (x11, 0);
                      if (!rtx_equal_p (x24, operands[3])
                          || !
#line 1059 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3))
                        return -1;
                      return 484; /* *ldm2_db_update */

                    default:
                      return -1;
                    }

                case REG:
                  operands[1] = x5;
                  if (!arm_hard_general_register_operand (operands[1], E_SImode))
                    return -1;
                  x7 = XEXP (x2, 0);
                  if (GET_CODE (x7) != MEM
                      || GET_MODE (x7) != E_SImode)
                    return -1;
                  x17 = XEXP (x7, 0);
                  if (GET_CODE (x17) != PLUS
                      || GET_MODE (x17) != E_SImode)
                    return -1;
                  x18 = XEXP (x17, 1);
                  if (GET_CODE (x18) != CONST_INT)
                    return -1;
                  x9 = XEXP (x3, 0);
                  if (GET_CODE (x9) != MEM
                      || GET_MODE (x9) != E_SImode
                      || !store_multiple_operation (operands[0], E_VOIDmode))
                    return -1;
                  x6 = XEXP (x3, 1);
                  operands[2] = x6;
                  if (!arm_hard_general_register_operand (operands[2], E_SImode))
                    return -1;
                  x21 = XEXP (x17, 0);
                  if (!rtx_equal_p (x21, operands[3]))
                    return -1;
                  switch (XWINT (x18, 0))
                    {
                    case -4L:
                      x22 = XEXP (x9, 0);
                      if (!rtx_equal_p (x22, operands[3])
                          || !
#line 1031 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3))
                        return -1;
                      return 482; /* *stm2_da_update */

                    case -8L:
                      x22 = XEXP (x9, 0);
                      if (GET_CODE (x22) != PLUS
                          || GET_MODE (x22) != E_SImode)
                        return -1;
                      x28 = XEXP (x22, 1);
                      if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + -4])
                        return -1;
                      x27 = XEXP (x22, 0);
                      if (!rtx_equal_p (x27, operands[3])
                          || !
#line 1083 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3))
                        return -1;
                      return 486; /* *stm2_db_update */

                    default:
                      return -1;
                    }

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_46 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24, x25;
  rtx x26, x27, x28, x29, x30, x31, x32, x33;
  rtx x34, x35, x36, x37, x38;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  if (GET_CODE (x2) != SET)
    return -1;
  x3 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x3) != SET)
    return -1;
  x4 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x4) != SET)
    return -1;
  x5 = XVECEXP (x1, 0, 3);
  if (GET_CODE (x5) != SET)
    return -1;
  x6 = XEXP (x2, 1);
  switch (GET_CODE (x6))
    {
    case MEM:
      if (GET_MODE (x6) != E_SImode)
        return -1;
      x7 = XEXP (x3, 1);
      if (GET_CODE (x7) != MEM
          || pattern458 (x1) != 0
          || !load_multiple_operation (operands[0], E_VOIDmode))
        return -1;
      x8 = XEXP (x2, 0);
      operands[1] = x8;
      x9 = XEXP (x3, 0);
      operands[2] = x9;
      x10 = XEXP (x4, 0);
      operands[3] = x10;
      x11 = XEXP (x5, 0);
      operands[4] = x11;
      x12 = XEXP (x6, 0);
      switch (GET_CODE (x12))
        {
        case REG:
        case SUBREG:
          operands[5] = x12;
          if (!s_register_operand (operands[5], E_SImode))
            return -1;
          x13 = XEXP (x7, 0);
          x14 = XEXP (x13, 1);
          if (XWINT (x14, 0) != 4L)
            return -1;
          x15 = XEXP (x4, 1);
          x16 = XEXP (x15, 0);
          x17 = XEXP (x16, 1);
          if (XWINT (x17, 0) != 8L)
            return -1;
          x18 = XEXP (x5, 1);
          x19 = XEXP (x18, 0);
          if (GET_CODE (x19) != PLUS
              || GET_MODE (x19) != E_SImode)
            return -1;
          x20 = XEXP (x19, 1);
          if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
            return -1;
          x21 = XEXP (x13, 0);
          if (!rtx_equal_p (x21, operands[5]))
            return -1;
          x22 = XEXP (x16, 0);
          if (!rtx_equal_p (x22, operands[5]))
            return -1;
          x23 = XEXP (x19, 0);
          if (!rtx_equal_p (x23, operands[5]))
            return -1;
          if (arm_hard_general_register_operand (operands[1], E_SImode)
              && arm_hard_general_register_operand (operands[2], E_SImode)
              && arm_hard_general_register_operand (operands[3], E_SImode)
              && arm_hard_general_register_operand (operands[4], E_SImode)
              && 
#line 37 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4))
            return 430; /* *ldm4_ */
          if (!low_register_operand (operands[1], E_SImode)
              || !low_register_operand (operands[2], E_SImode)
              || !low_register_operand (operands[3], E_SImode)
              || !low_register_operand (operands[4], E_SImode)
              || !
#line 55 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_THUMB1 && XVECLEN (operands[0], 0) == 4))
            return -1;
          return 431; /* *thumb_ldm4_ia */

        case PLUS:
          if (GET_MODE (x12) != E_SImode)
            return -1;
          x24 = XEXP (x12, 1);
          if (GET_CODE (x24) != CONST_INT
              || !arm_hard_general_register_operand (operands[1], E_SImode))
            return -1;
          x25 = XEXP (x12, 0);
          operands[5] = x25;
          if (!s_register_operand (operands[5], E_SImode)
              || !arm_hard_general_register_operand (operands[2], E_SImode)
              || !arm_hard_general_register_operand (operands[3], E_SImode)
              || !arm_hard_general_register_operand (operands[4], E_SImode))
            return -1;
          x13 = XEXP (x7, 0);
          x21 = XEXP (x13, 0);
          if (!rtx_equal_p (x21, operands[5]))
            return -1;
          x15 = XEXP (x4, 1);
          x16 = XEXP (x15, 0);
          x22 = XEXP (x16, 0);
          if (!rtx_equal_p (x22, operands[5]))
            return -1;
          switch (XWINT (x24, 0))
            {
            case 4L:
              x14 = XEXP (x13, 1);
              if (XWINT (x14, 0) != 8L)
                return -1;
              x17 = XEXP (x16, 1);
              if (XWINT (x17, 0) != 12L)
                return -1;
              x18 = XEXP (x5, 1);
              x19 = XEXP (x18, 0);
              if (pattern660 (x19, 16) != 0
                  || !
#line 160 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4))
                return -1;
              return 437; /* *ldm4_ib */

            case -12L:
              x14 = XEXP (x13, 1);
              if (XWINT (x14, 0) != -8L)
                return -1;
              x17 = XEXP (x16, 1);
              if (XWINT (x17, 0) != -4L)
                return -1;
              x18 = XEXP (x5, 1);
              x19 = XEXP (x18, 0);
              if (!rtx_equal_p (x19, operands[5])
                  || !
#line 231 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4))
                return -1;
              return 441; /* *ldm4_da */

            case -16L:
              x14 = XEXP (x13, 1);
              if (XWINT (x14, 0) != -12L)
                return -1;
              x17 = XEXP (x16, 1);
              if (XWINT (x17, 0) != -8L)
                return -1;
              x18 = XEXP (x5, 1);
              x19 = XEXP (x18, 0);
              if (pattern660 (x19, -4) != 0
                  || !
#line 302 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4))
                return -1;
              return 445; /* *ldm4_db */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case REG:
      operands[1] = x6;
      if (!arm_hard_general_register_operand (operands[1], E_SImode))
        return -1;
      x8 = XEXP (x2, 0);
      if (GET_CODE (x8) != MEM
          || GET_MODE (x8) != E_SImode
          || pattern515 (x1) != 0
          || !store_multiple_operation (operands[0], E_VOIDmode))
        return -1;
      x7 = XEXP (x3, 1);
      operands[2] = x7;
      if (!arm_hard_general_register_operand (operands[2], E_SImode))
        return -1;
      x15 = XEXP (x4, 1);
      operands[3] = x15;
      if (!arm_hard_general_register_operand (operands[3], E_SImode))
        return -1;
      x18 = XEXP (x5, 1);
      operands[4] = x18;
      if (!arm_hard_general_register_operand (operands[4], E_SImode))
        return -1;
      x26 = XEXP (x8, 0);
      switch (GET_CODE (x26))
        {
        case REG:
        case SUBREG:
          operands[5] = x26;
          if (!s_register_operand (operands[5], E_SImode))
            return -1;
          x9 = XEXP (x3, 0);
          x27 = XEXP (x9, 0);
          x28 = XEXP (x27, 1);
          if (XWINT (x28, 0) != 4L)
            return -1;
          x10 = XEXP (x4, 0);
          x29 = XEXP (x10, 0);
          x30 = XEXP (x29, 1);
          if (XWINT (x30, 0) != 8L)
            return -1;
          x11 = XEXP (x5, 0);
          x31 = XEXP (x11, 0);
          if (GET_CODE (x31) != PLUS
              || GET_MODE (x31) != E_SImode)
            return -1;
          x32 = XEXP (x31, 1);
          if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
            return -1;
          x33 = XEXP (x27, 0);
          if (!rtx_equal_p (x33, operands[5]))
            return -1;
          x34 = XEXP (x29, 0);
          if (!rtx_equal_p (x34, operands[5]))
            return -1;
          x35 = XEXP (x31, 0);
          if (!rtx_equal_p (x35, operands[5])
              || !
#line 108 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4))
            return -1;
          return 434; /* *stm4_ */

        case PLUS:
          if (GET_MODE (x26) != E_SImode)
            return -1;
          x36 = XEXP (x26, 1);
          if (GET_CODE (x36) != CONST_INT)
            return -1;
          x37 = XEXP (x26, 0);
          operands[5] = x37;
          if (!s_register_operand (operands[5], E_SImode))
            return -1;
          x9 = XEXP (x3, 0);
          x27 = XEXP (x9, 0);
          x33 = XEXP (x27, 0);
          if (!rtx_equal_p (x33, operands[5]))
            return -1;
          x10 = XEXP (x4, 0);
          x29 = XEXP (x10, 0);
          x34 = XEXP (x29, 0);
          if (!rtx_equal_p (x34, operands[5]))
            return -1;
          switch (XWINT (x36, 0))
            {
            case 4L:
              x28 = XEXP (x27, 1);
              if (XWINT (x28, 0) != 8L)
                return -1;
              x30 = XEXP (x29, 1);
              if (XWINT (x30, 0) != 12L)
                return -1;
              x11 = XEXP (x5, 0);
              x31 = XEXP (x11, 0);
              if (pattern661 (x31, 16) != 0
                  || !
#line 196 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4))
                return -1;
              return 439; /* *stm4_ib */

            case -12L:
              x28 = XEXP (x27, 1);
              if (XWINT (x28, 0) != -8L)
                return -1;
              x30 = XEXP (x29, 1);
              if (XWINT (x30, 0) != -4L)
                return -1;
              x11 = XEXP (x5, 0);
              x31 = XEXP (x11, 0);
              if (!rtx_equal_p (x31, operands[5])
                  || !
#line 266 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4))
                return -1;
              return 443; /* *stm4_da */

            case -16L:
              x28 = XEXP (x27, 1);
              if (XWINT (x28, 0) != -12L)
                return -1;
              x30 = XEXP (x29, 1);
              if (XWINT (x30, 0) != -8L)
                return -1;
              x11 = XEXP (x5, 0);
              x31 = XEXP (x11, 0);
              if (pattern661 (x31, -4) != 0
                  || !
#line 338 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4))
                return -1;
              return 447; /* *stm4_db */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case PLUS:
      if (GET_MODE (x6) != E_SImode)
        return -1;
      x38 = XEXP (x6, 1);
      if (GET_CODE (x38) != CONST_INT)
        return -1;
      x8 = XEXP (x2, 0);
      operands[4] = x8;
      if (!s_register_operand (operands[4], E_SImode))
        return -1;
      x12 = XEXP (x6, 0);
      if (!rtx_equal_p (x12, operands[4]))
        return -1;
      switch (XWINT (x38, 0))
        {
        case 12L:
          switch (pattern531 (x3))
            {
            case 0:
              if (pattern457 (x1) != 0)
                return -1;
              x18 = XEXP (x5, 1);
              x19 = XEXP (x18, 0);
              if (GET_CODE (x19) != PLUS
                  || GET_MODE (x19) != E_SImode)
                return -1;
              x20 = XEXP (x19, 1);
              if (GET_CODE (x20) != CONST_INT
                  || !load_multiple_operation (operands[0], E_VOIDmode))
                return -1;
              x9 = XEXP (x3, 0);
              operands[1] = x9;
              x10 = XEXP (x4, 0);
              operands[2] = x10;
              x11 = XEXP (x5, 0);
              operands[3] = x11;
              x15 = XEXP (x4, 1);
              x16 = XEXP (x15, 0);
              x22 = XEXP (x16, 0);
              if (!rtx_equal_p (x22, operands[4]))
                return -1;
              x23 = XEXP (x19, 0);
              if (!rtx_equal_p (x23, operands[4]))
                return -1;
              switch (pattern650 (x1))
                {
                case 0:
                  x7 = XEXP (x3, 1);
                  x13 = XEXP (x7, 0);
                  if (!rtx_equal_p (x13, operands[4]))
                    return -1;
                  x17 = XEXP (x16, 1);
                  if (XWINT (x17, 0) != 4L
                      || XWINT (x20, 0) != 8L)
                    return -1;
                  if (arm_hard_general_register_operand (operands[1], E_SImode)
                      && arm_hard_general_register_operand (operands[2], E_SImode)
                      && arm_hard_general_register_operand (operands[3], E_SImode)
                      && 
#line 508 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4))
                    return 451; /* *ldm3_ia_update */
                  if (!low_register_operand (operands[1], E_SImode)
                      || !low_register_operand (operands[2], E_SImode)
                      || !low_register_operand (operands[3], E_SImode)
                      || !
#line 525 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_THUMB1 && XVECLEN (operands[0], 0) == 4))
                    return -1;
                  return 452; /* *thumb_ldm3_ia_update */

                case 1:
                  if (!arm_hard_general_register_operand (operands[1], E_SImode)
                      || !arm_hard_general_register_operand (operands[2], E_SImode)
                      || !arm_hard_general_register_operand (operands[3], E_SImode))
                    return -1;
                  x7 = XEXP (x3, 1);
                  x13 = XEXP (x7, 0);
                  x21 = XEXP (x13, 0);
                  if (!rtx_equal_p (x21, operands[4])
                      || !
#line 600 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4))
                    return -1;
                  return 457; /* *ldm3_ib_update */

                default:
                  return -1;
                }

            case 1:
              if (pattern514 (x1) != 0)
                return -1;
              x11 = XEXP (x5, 0);
              x31 = XEXP (x11, 0);
              if (GET_CODE (x31) != PLUS
                  || GET_MODE (x31) != E_SImode)
                return -1;
              x32 = XEXP (x31, 1);
              if (GET_CODE (x32) != CONST_INT
                  || !store_multiple_operation (operands[0], E_VOIDmode))
                return -1;
              x15 = XEXP (x4, 1);
              operands[2] = x15;
              x18 = XEXP (x5, 1);
              operands[3] = x18;
              x10 = XEXP (x4, 0);
              x29 = XEXP (x10, 0);
              x34 = XEXP (x29, 0);
              if (!rtx_equal_p (x34, operands[4]))
                return -1;
              x35 = XEXP (x31, 0);
              if (!rtx_equal_p (x35, operands[4]))
                return -1;
              switch (pattern652 (x1))
                {
                case 0:
                  x9 = XEXP (x3, 0);
                  x27 = XEXP (x9, 0);
                  if (!rtx_equal_p (x27, operands[4]))
                    return -1;
                  x30 = XEXP (x29, 1);
                  if (XWINT (x30, 0) != 4L
                      || XWINT (x32, 0) != 8L)
                    return -1;
                  if (arm_hard_general_register_operand (operands[1], E_SImode)
                      && arm_hard_general_register_operand (operands[2], E_SImode)
                      && arm_hard_general_register_operand (operands[3], E_SImode)
                      && 
#line 552 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4))
                    return 454; /* *stm3_ia_update */
                  if (!low_register_operand (operands[1], E_SImode)
                      || !low_register_operand (operands[2], E_SImode)
                      || !low_register_operand (operands[3], E_SImode)
                      || !
#line 567 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_THUMB1 && XVECLEN (operands[0], 0) == 4))
                    return -1;
                  return 455; /* *thumb_stm3_ia_update */

                case 1:
                  if (!arm_hard_general_register_operand (operands[1], E_SImode)
                      || !arm_hard_general_register_operand (operands[2], E_SImode)
                      || !arm_hard_general_register_operand (operands[3], E_SImode))
                    return -1;
                  x9 = XEXP (x3, 0);
                  x27 = XEXP (x9, 0);
                  x33 = XEXP (x27, 0);
                  if (!rtx_equal_p (x33, operands[4])
                      || !
#line 628 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4))
                    return -1;
                  return 459; /* *stm3_ib_update */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case -12L:
          x7 = XEXP (x3, 1);
          switch (GET_CODE (x7))
            {
            case MEM:
              if (pattern458 (x1) != 0
                  || !load_multiple_operation (operands[0], E_VOIDmode))
                return -1;
              x9 = XEXP (x3, 0);
              operands[1] = x9;
              if (!arm_hard_general_register_operand (operands[1], E_SImode))
                return -1;
              x10 = XEXP (x4, 0);
              operands[2] = x10;
              if (!arm_hard_general_register_operand (operands[2], E_SImode))
                return -1;
              x11 = XEXP (x5, 0);
              operands[3] = x11;
              if (!arm_hard_general_register_operand (operands[3], E_SImode))
                return -1;
              x13 = XEXP (x7, 0);
              x21 = XEXP (x13, 0);
              if (!rtx_equal_p (x21, operands[4]))
                return -1;
              x15 = XEXP (x4, 1);
              x16 = XEXP (x15, 0);
              x22 = XEXP (x16, 0);
              if (!rtx_equal_p (x22, operands[4]))
                return -1;
              x14 = XEXP (x13, 1);
              switch (XWINT (x14, 0))
                {
                case -8L:
                  x17 = XEXP (x16, 1);
                  if (XWINT (x17, 0) != -4L)
                    return -1;
                  x18 = XEXP (x5, 1);
                  x19 = XEXP (x18, 0);
                  if (!rtx_equal_p (x19, operands[4])
                      || !
#line 660 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4))
                    return -1;
                  return 461; /* *ldm3_da_update */

                case -12L:
                  x17 = XEXP (x16, 1);
                  if (XWINT (x17, 0) != -8L)
                    return -1;
                  x18 = XEXP (x5, 1);
                  x19 = XEXP (x18, 0);
                  if (GET_CODE (x19) != PLUS
                      || GET_MODE (x19) != E_SImode)
                    return -1;
                  x20 = XEXP (x19, 1);
                  if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + -4])
                    return -1;
                  x23 = XEXP (x19, 0);
                  if (!rtx_equal_p (x23, operands[4])
                      || !
#line 722 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4))
                    return -1;
                  return 465; /* *ldm3_db_update */

                default:
                  return -1;
                }

            case REG:
              operands[1] = x7;
              if (!arm_hard_general_register_operand (operands[1], E_SImode)
                  || pattern515 (x1) != 0
                  || !store_multiple_operation (operands[0], E_VOIDmode))
                return -1;
              x15 = XEXP (x4, 1);
              operands[2] = x15;
              if (!arm_hard_general_register_operand (operands[2], E_SImode))
                return -1;
              x18 = XEXP (x5, 1);
              operands[3] = x18;
              if (!arm_hard_general_register_operand (operands[3], E_SImode))
                return -1;
              x9 = XEXP (x3, 0);
              x27 = XEXP (x9, 0);
              x33 = XEXP (x27, 0);
              if (!rtx_equal_p (x33, operands[4]))
                return -1;
              x10 = XEXP (x4, 0);
              x29 = XEXP (x10, 0);
              x34 = XEXP (x29, 0);
              if (!rtx_equal_p (x34, operands[4]))
                return -1;
              x28 = XEXP (x27, 1);
              switch (XWINT (x28, 0))
                {
                case -8L:
                  x30 = XEXP (x29, 1);
                  if (XWINT (x30, 0) != -4L)
                    return -1;
                  x11 = XEXP (x5, 0);
                  x31 = XEXP (x11, 0);
                  if (!rtx_equal_p (x31, operands[4])
                      || !
#line 688 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4))
                    return -1;
                  return 463; /* *stm3_da_update */

                case -12L:
                  x30 = XEXP (x29, 1);
                  if (XWINT (x30, 0) != -8L)
                    return -1;
                  x11 = XEXP (x5, 0);
                  x31 = XEXP (x11, 0);
                  if (GET_CODE (x31) != PLUS
                      || GET_MODE (x31) != E_SImode)
                    return -1;
                  x32 = XEXP (x31, 1);
                  if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + -4])
                    return -1;
                  x35 = XEXP (x31, 0);
                  if (!rtx_equal_p (x35, operands[4])
                      || !
#line 750 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4))
                    return -1;
                  return 467; /* *stm3_db_update */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_47 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24, x25;
  rtx x26, x27, x28, x29, x30, x31, x32, x33;
  rtx x34, x35, x36, x37, x38, x39, x40, x41;
  rtx x42;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  if (GET_CODE (x2) != SET)
    return -1;
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != PLUS
      || GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) != CONST_INT)
    return -1;
  x5 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x5) != SET)
    return -1;
  x6 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x6) != SET)
    return -1;
  x7 = XVECEXP (x1, 0, 3);
  if (GET_CODE (x7) != SET)
    return -1;
  x8 = XVECEXP (x1, 0, 4);
  if (GET_CODE (x8) != SET)
    return -1;
  x9 = XEXP (x2, 0);
  operands[5] = x9;
  if (!s_register_operand (operands[5], E_SImode))
    return -1;
  x10 = XEXP (x3, 0);
  if (!rtx_equal_p (x10, operands[5]))
    return -1;
  switch (XWINT (x4, 0))
    {
    case 16L:
      switch (pattern531 (x5))
        {
        case 0:
          if (pattern603 (x1) != 0)
            return -1;
          x11 = XEXP (x8, 1);
          x12 = XEXP (x11, 0);
          if (GET_CODE (x12) != PLUS
              || GET_MODE (x12) != E_SImode)
            return -1;
          x13 = XEXP (x12, 1);
          if (GET_CODE (x13) != CONST_INT
              || !load_multiple_operation (operands[0], E_VOIDmode))
            return -1;
          x14 = XEXP (x5, 0);
          operands[1] = x14;
          x15 = XEXP (x6, 0);
          operands[2] = x15;
          x16 = XEXP (x7, 0);
          operands[3] = x16;
          x17 = XEXP (x8, 0);
          operands[4] = x17;
          x18 = XEXP (x6, 1);
          x19 = XEXP (x18, 0);
          x20 = XEXP (x19, 0);
          if (!rtx_equal_p (x20, operands[5]))
            return -1;
          x21 = XEXP (x7, 1);
          x22 = XEXP (x21, 0);
          x23 = XEXP (x22, 0);
          if (!rtx_equal_p (x23, operands[5]))
            return -1;
          x24 = XEXP (x12, 0);
          if (!rtx_equal_p (x24, operands[5]))
            return -1;
          switch (pattern650 (x1))
            {
            case 0:
              x25 = XEXP (x5, 1);
              x26 = XEXP (x25, 0);
              if (!rtx_equal_p (x26, operands[5]))
                return -1;
              x27 = XEXP (x19, 1);
              if (XWINT (x27, 0) != 4L)
                return -1;
              x28 = XEXP (x22, 1);
              if (XWINT (x28, 0) != 8L
                  || XWINT (x13, 0) != 12L)
                return -1;
              if (arm_hard_general_register_operand (operands[1], E_SImode)
                  && arm_hard_general_register_operand (operands[2], E_SImode)
                  && arm_hard_general_register_operand (operands[3], E_SImode)
                  && arm_hard_general_register_operand (operands[4], E_SImode)
                  && 
#line 74 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 5))
                return 432; /* *ldm4_ia_update */
              if (!low_register_operand (operands[1], E_SImode)
                  || !low_register_operand (operands[2], E_SImode)
                  || !low_register_operand (operands[3], E_SImode)
                  || !low_register_operand (operands[4], E_SImode)
                  || !
#line 94 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_THUMB1 && XVECLEN (operands[0], 0) == 5))
                return -1;
              return 433; /* *thumb_ldm4_ia_update */

            case 1:
              if (XWINT (x13, 0) != 16L
                  || !arm_hard_general_register_operand (operands[1], E_SImode)
                  || !arm_hard_general_register_operand (operands[2], E_SImode)
                  || !arm_hard_general_register_operand (operands[3], E_SImode)
                  || !arm_hard_general_register_operand (operands[4], E_SImode))
                return -1;
              x25 = XEXP (x5, 1);
              x26 = XEXP (x25, 0);
              x29 = XEXP (x26, 0);
              if (!rtx_equal_p (x29, operands[5])
                  || !
#line 181 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 5))
                return -1;
              return 438; /* *ldm4_ib_update */

            default:
              return -1;
            }

        case 1:
          if (pattern613 (x1) != 0)
            return -1;
          x17 = XEXP (x8, 0);
          x30 = XEXP (x17, 0);
          if (GET_CODE (x30) != PLUS
              || GET_MODE (x30) != E_SImode)
            return -1;
          x31 = XEXP (x30, 1);
          if (GET_CODE (x31) != CONST_INT
              || !store_multiple_operation (operands[0], E_VOIDmode))
            return -1;
          x18 = XEXP (x6, 1);
          operands[2] = x18;
          x21 = XEXP (x7, 1);
          operands[3] = x21;
          x11 = XEXP (x8, 1);
          operands[4] = x11;
          x15 = XEXP (x6, 0);
          x32 = XEXP (x15, 0);
          x33 = XEXP (x32, 0);
          if (!rtx_equal_p (x33, operands[5]))
            return -1;
          x16 = XEXP (x7, 0);
          x34 = XEXP (x16, 0);
          x35 = XEXP (x34, 0);
          if (!rtx_equal_p (x35, operands[5]))
            return -1;
          x36 = XEXP (x30, 0);
          if (!rtx_equal_p (x36, operands[5]))
            return -1;
          switch (pattern652 (x1))
            {
            case 0:
              x14 = XEXP (x5, 0);
              x37 = XEXP (x14, 0);
              if (!rtx_equal_p (x37, operands[5]))
                return -1;
              x38 = XEXP (x32, 1);
              if (XWINT (x38, 0) != 4L)
                return -1;
              x39 = XEXP (x34, 1);
              if (XWINT (x39, 0) != 8L
                  || XWINT (x31, 0) != 12L)
                return -1;
              if (arm_hard_general_register_operand (operands[1], E_SImode)
                  && arm_hard_general_register_operand (operands[2], E_SImode)
                  && arm_hard_general_register_operand (operands[3], E_SImode)
                  && arm_hard_general_register_operand (operands[4], E_SImode)
                  && 
#line 125 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 5))
                return 435; /* *stm4_ia_update */
              if (!low_register_operand (operands[1], E_SImode)
                  || !low_register_operand (operands[2], E_SImode)
                  || !low_register_operand (operands[3], E_SImode)
                  || !low_register_operand (operands[4], E_SImode)
                  || !
#line 142 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_THUMB1 && XVECLEN (operands[0], 0) == 5))
                return -1;
              return 436; /* *thumb_stm4_ia_update */

            case 1:
              if (XWINT (x31, 0) != 16L
                  || !arm_hard_general_register_operand (operands[1], E_SImode)
                  || !arm_hard_general_register_operand (operands[2], E_SImode)
                  || !arm_hard_general_register_operand (operands[3], E_SImode)
                  || !arm_hard_general_register_operand (operands[4], E_SImode))
                return -1;
              x14 = XEXP (x5, 0);
              x37 = XEXP (x14, 0);
              x40 = XEXP (x37, 0);
              if (!rtx_equal_p (x40, operands[5])
                  || !
#line 213 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 5))
                return -1;
              return 440; /* *stm4_ib_update */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case -16L:
      x25 = XEXP (x5, 1);
      switch (GET_CODE (x25))
        {
        case MEM:
          if (pattern408 (x25) != 0
              || pattern603 (x1) != 0
              || !load_multiple_operation (operands[0], E_VOIDmode))
            return -1;
          x14 = XEXP (x5, 0);
          operands[1] = x14;
          if (!arm_hard_general_register_operand (operands[1], E_SImode))
            return -1;
          x15 = XEXP (x6, 0);
          operands[2] = x15;
          if (!arm_hard_general_register_operand (operands[2], E_SImode))
            return -1;
          x16 = XEXP (x7, 0);
          operands[3] = x16;
          if (!arm_hard_general_register_operand (operands[3], E_SImode))
            return -1;
          x17 = XEXP (x8, 0);
          operands[4] = x17;
          if (!arm_hard_general_register_operand (operands[4], E_SImode))
            return -1;
          x26 = XEXP (x25, 0);
          x29 = XEXP (x26, 0);
          if (!rtx_equal_p (x29, operands[5]))
            return -1;
          x18 = XEXP (x6, 1);
          x19 = XEXP (x18, 0);
          x20 = XEXP (x19, 0);
          if (!rtx_equal_p (x20, operands[5]))
            return -1;
          x21 = XEXP (x7, 1);
          x22 = XEXP (x21, 0);
          x23 = XEXP (x22, 0);
          if (!rtx_equal_p (x23, operands[5]))
            return -1;
          x41 = XEXP (x26, 1);
          switch (XWINT (x41, 0))
            {
            case -12L:
              x27 = XEXP (x19, 1);
              if (XWINT (x27, 0) != -8L)
                return -1;
              x28 = XEXP (x22, 1);
              if (XWINT (x28, 0) != -4L)
                return -1;
              x11 = XEXP (x8, 1);
              x12 = XEXP (x11, 0);
              if (!rtx_equal_p (x12, operands[5])
                  || !
#line 251 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 5))
                return -1;
              return 442; /* *ldm4_da_update */

            case -16L:
              x27 = XEXP (x19, 1);
              if (XWINT (x27, 0) != -12L)
                return -1;
              x28 = XEXP (x22, 1);
              if (XWINT (x28, 0) != -8L)
                return -1;
              x11 = XEXP (x8, 1);
              x12 = XEXP (x11, 0);
              if (GET_CODE (x12) != PLUS
                  || GET_MODE (x12) != E_SImode)
                return -1;
              x13 = XEXP (x12, 1);
              if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + -4])
                return -1;
              x24 = XEXP (x12, 0);
              if (!rtx_equal_p (x24, operands[5])
                  || !
#line 323 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 5))
                return -1;
              return 446; /* *ldm4_db_update */

            default:
              return -1;
            }

        case REG:
          operands[1] = x25;
          if (!arm_hard_general_register_operand (operands[1], E_SImode))
            return -1;
          x14 = XEXP (x5, 0);
          if (pattern459 (x14) != 0
              || pattern613 (x1) != 0
              || !store_multiple_operation (operands[0], E_VOIDmode))
            return -1;
          x18 = XEXP (x6, 1);
          operands[2] = x18;
          if (!arm_hard_general_register_operand (operands[2], E_SImode))
            return -1;
          x21 = XEXP (x7, 1);
          operands[3] = x21;
          if (!arm_hard_general_register_operand (operands[3], E_SImode))
            return -1;
          x11 = XEXP (x8, 1);
          operands[4] = x11;
          if (!arm_hard_general_register_operand (operands[4], E_SImode))
            return -1;
          x37 = XEXP (x14, 0);
          x40 = XEXP (x37, 0);
          if (!rtx_equal_p (x40, operands[5]))
            return -1;
          x15 = XEXP (x6, 0);
          x32 = XEXP (x15, 0);
          x33 = XEXP (x32, 0);
          if (!rtx_equal_p (x33, operands[5]))
            return -1;
          x16 = XEXP (x7, 0);
          x34 = XEXP (x16, 0);
          x35 = XEXP (x34, 0);
          if (!rtx_equal_p (x35, operands[5]))
            return -1;
          x42 = XEXP (x37, 1);
          switch (XWINT (x42, 0))
            {
            case -12L:
              x38 = XEXP (x32, 1);
              if (XWINT (x38, 0) != -8L)
                return -1;
              x39 = XEXP (x34, 1);
              if (XWINT (x39, 0) != -4L)
                return -1;
              x17 = XEXP (x8, 0);
              x30 = XEXP (x17, 0);
              if (!rtx_equal_p (x30, operands[5])
                  || !
#line 283 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 5))
                return -1;
              return 444; /* *stm4_da_update */

            case -16L:
              x38 = XEXP (x32, 1);
              if (XWINT (x38, 0) != -12L)
                return -1;
              x39 = XEXP (x34, 1);
              if (XWINT (x39, 0) != -8L)
                return -1;
              x17 = XEXP (x8, 0);
              x30 = XEXP (x17, 0);
              if (GET_CODE (x30) != PLUS
                  || GET_MODE (x30) != E_SImode)
                return -1;
              x31 = XEXP (x30, 1);
              if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + -4])
                return -1;
              x36 = XEXP (x30, 0);
              if (!rtx_equal_p (x36, operands[5])
                  || !
#line 355 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 5))
                return -1;
              return 448; /* *stm4_db_update */

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_48 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24, x25;
  rtx x26, x27, x28;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  if (GET_CODE (x2) != SET)
    return -1;
  x3 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x3) != SET)
    return -1;
  x4 = XVECEXP (x1, 0, 2);
  if (GET_CODE (x4) != SET)
    return -1;
  x5 = XEXP (x2, 1);
  switch (GET_CODE (x5))
    {
    case MEM:
      if (GET_MODE (x5) != E_SImode)
        return -1;
      x6 = XEXP (x3, 1);
      if (GET_CODE (x6) != MEM
          || GET_MODE (x6) != E_SImode)
        return -1;
      x7 = XEXP (x6, 0);
      if (GET_CODE (x7) != PLUS
          || GET_MODE (x7) != E_SImode)
        return -1;
      x8 = XEXP (x7, 1);
      if (GET_CODE (x8) != CONST_INT)
        return -1;
      x9 = XEXP (x4, 1);
      if (pattern532 (x9) != 0
          || !load_multiple_operation (operands[0], E_VOIDmode))
        return -1;
      x10 = XEXP (x2, 0);
      operands[1] = x10;
      x11 = XEXP (x3, 0);
      operands[2] = x11;
      x12 = XEXP (x4, 0);
      operands[3] = x12;
      x13 = XEXP (x5, 0);
      switch (GET_CODE (x13))
        {
        case REG:
        case SUBREG:
          operands[4] = x13;
          if (!s_register_operand (operands[4], E_SImode)
              || XWINT (x8, 0) != 4L)
            return -1;
          x14 = XEXP (x9, 0);
          x15 = XEXP (x14, 1);
          if (XWINT (x15, 0) != 8L)
            return -1;
          x16 = XEXP (x7, 0);
          if (!rtx_equal_p (x16, operands[4]))
            return -1;
          x17 = XEXP (x14, 0);
          if (!rtx_equal_p (x17, operands[4]))
            return -1;
          if (arm_hard_general_register_operand (operands[1], E_SImode)
              && arm_hard_general_register_operand (operands[2], E_SImode)
              && arm_hard_general_register_operand (operands[3], E_SImode)
              && 
#line 477 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3))
            return 449; /* *ldm3_ */
          if (!low_register_operand (operands[1], E_SImode)
              || !low_register_operand (operands[2], E_SImode)
              || !low_register_operand (operands[3], E_SImode)
              || !
#line 492 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_THUMB1 && XVECLEN (operands[0], 0) == 3))
            return -1;
          return 450; /* *thumb_ldm3_ia */

        case PLUS:
          if (GET_MODE (x13) != E_SImode)
            return -1;
          x18 = XEXP (x13, 1);
          if (GET_CODE (x18) != CONST_INT
              || !arm_hard_general_register_operand (operands[1], E_SImode))
            return -1;
          x19 = XEXP (x13, 0);
          operands[4] = x19;
          if (!s_register_operand (operands[4], E_SImode)
              || !arm_hard_general_register_operand (operands[2], E_SImode)
              || !arm_hard_general_register_operand (operands[3], E_SImode))
            return -1;
          x16 = XEXP (x7, 0);
          if (!rtx_equal_p (x16, operands[4]))
            return -1;
          x14 = XEXP (x9, 0);
          x17 = XEXP (x14, 0);
          if (!rtx_equal_p (x17, operands[4]))
            return -1;
          switch (XWINT (x18, 0))
            {
            case 4L:
              if (XWINT (x8, 0) != 8L)
                return -1;
              x15 = XEXP (x14, 1);
              if (XWINT (x15, 0) != 12L
                  || !
#line 582 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3))
                return -1;
              return 456; /* *ldm3_ib */

            case -12L:
              if (XWINT (x8, 0) != -8L)
                return -1;
              x15 = XEXP (x14, 1);
              if (XWINT (x15, 0) != -4L
                  || !
#line 704 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3))
                return -1;
              return 464; /* *ldm3_db */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case REG:
      operands[1] = x5;
      if (!arm_hard_general_register_operand (operands[1], E_SImode))
        return -1;
      x10 = XEXP (x2, 0);
      if (GET_CODE (x10) != MEM
          || GET_MODE (x10) != E_SImode)
        return -1;
      x11 = XEXP (x3, 0);
      if (GET_CODE (x11) != MEM
          || GET_MODE (x11) != E_SImode)
        return -1;
      x20 = XEXP (x11, 0);
      if (GET_CODE (x20) != PLUS
          || GET_MODE (x20) != E_SImode)
        return -1;
      x21 = XEXP (x20, 1);
      if (GET_CODE (x21) != CONST_INT)
        return -1;
      x12 = XEXP (x4, 0);
      if (pattern594 (x12) != 0
          || !store_multiple_operation (operands[0], E_VOIDmode))
        return -1;
      x6 = XEXP (x3, 1);
      operands[2] = x6;
      if (!arm_hard_general_register_operand (operands[2], E_SImode))
        return -1;
      x9 = XEXP (x4, 1);
      operands[3] = x9;
      if (!arm_hard_general_register_operand (operands[3], E_SImode))
        return -1;
      x22 = XEXP (x10, 0);
      switch (GET_CODE (x22))
        {
        case REG:
        case SUBREG:
          operands[4] = x22;
          if (!s_register_operand (operands[4], E_SImode)
              || XWINT (x21, 0) != 4L)
            return -1;
          x23 = XEXP (x12, 0);
          x24 = XEXP (x23, 1);
          if (XWINT (x24, 0) != 8L)
            return -1;
          x25 = XEXP (x20, 0);
          if (!rtx_equal_p (x25, operands[4]))
            return -1;
          x26 = XEXP (x23, 0);
          if (!rtx_equal_p (x26, operands[4])
              || !
#line 537 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3))
            return -1;
          return 453; /* *stm3_ */

        case PLUS:
          if (GET_MODE (x22) != E_SImode)
            return -1;
          x27 = XEXP (x22, 1);
          if (GET_CODE (x27) != CONST_INT)
            return -1;
          x28 = XEXP (x22, 0);
          operands[4] = x28;
          if (!s_register_operand (operands[4], E_SImode))
            return -1;
          x25 = XEXP (x20, 0);
          if (!rtx_equal_p (x25, operands[4]))
            return -1;
          x23 = XEXP (x12, 0);
          x26 = XEXP (x23, 0);
          if (!rtx_equal_p (x26, operands[4]))
            return -1;
          switch (XWINT (x27, 0))
            {
            case 4L:
              if (XWINT (x21, 0) != 8L)
                return -1;
              x24 = XEXP (x23, 1);
              if (XWINT (x24, 0) != 12L
                  || !
#line 613 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3))
                return -1;
              return 458; /* *stm3_ib */

            case -12L:
              if (XWINT (x21, 0) != -8L)
                return -1;
              x24 = XEXP (x23, 1);
              if (XWINT (x24, 0) != -4L
                  || !
#line 735 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3))
                return -1;
              return 466; /* *stm3_db */

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_49 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  if (GET_CODE (x2) != SET)
    return -1;
  x3 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x3) != SET)
    return -1;
  x4 = XEXP (x2, 1);
  switch (GET_CODE (x4))
    {
    case MEM:
      if (GET_MODE (x4) != E_SImode)
        return -1;
      x5 = XEXP (x3, 1);
      if (GET_CODE (x5) != MEM
          || pattern408 (x5) != 0
          || !load_multiple_operation (operands[0], E_VOIDmode))
        return -1;
      x6 = XEXP (x2, 0);
      operands[1] = x6;
      x7 = XEXP (x3, 0);
      operands[2] = x7;
      x8 = XEXP (x4, 0);
      switch (GET_CODE (x8))
        {
        case REG:
        case SUBREG:
          operands[3] = x8;
          if (!s_register_operand (operands[3], E_SImode))
            return -1;
          x9 = XEXP (x5, 0);
          x10 = XEXP (x9, 1);
          if (XWINT (x10, 0) != 4L)
            return -1;
          x11 = XEXP (x9, 0);
          if (!rtx_equal_p (x11, operands[3]))
            return -1;
          if (arm_hard_general_register_operand (operands[1], E_SImode)
              && arm_hard_general_register_operand (operands[2], E_SImode)
              && 
#line 855 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 2))
            return 468; /* *ldm2_ */
          if (!low_register_operand (operands[1], E_SImode)
              || !low_register_operand (operands[2], E_SImode)
              || !
#line 867 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_THUMB1 && XVECLEN (operands[0], 0) == 2))
            return -1;
          return 469; /* *thumb_ldm2_ia */

        case PLUS:
          if (GET_MODE (x8) != E_SImode)
            return -1;
          x12 = XEXP (x8, 1);
          if (GET_CODE (x12) != CONST_INT
              || !arm_hard_general_register_operand (operands[1], E_SImode))
            return -1;
          x13 = XEXP (x8, 0);
          operands[3] = x13;
          if (!s_register_operand (operands[3], E_SImode)
              || !arm_hard_general_register_operand (operands[2], E_SImode))
            return -1;
          x9 = XEXP (x5, 0);
          x11 = XEXP (x9, 0);
          if (!rtx_equal_p (x11, operands[3]))
            return -1;
          switch (XWINT (x12, 0))
            {
            case 4L:
              x10 = XEXP (x9, 1);
              if (XWINT (x10, 0) != 8L
                  || !
#line 942 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 2))
                return -1;
              return 475; /* *ldm2_ib */

            case -8L:
              x10 = XEXP (x9, 1);
              if (XWINT (x10, 0) != -4L
                  || !
#line 1044 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 2))
                return -1;
              return 483; /* *ldm2_db */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case REG:
      operands[1] = x4;
      if (!arm_hard_general_register_operand (operands[1], E_SImode))
        return -1;
      x6 = XEXP (x2, 0);
      if (GET_CODE (x6) != MEM
          || GET_MODE (x6) != E_SImode)
        return -1;
      x7 = XEXP (x3, 0);
      if (pattern459 (x7) != 0
          || !store_multiple_operation (operands[0], E_VOIDmode))
        return -1;
      x5 = XEXP (x3, 1);
      operands[2] = x5;
      if (!arm_hard_general_register_operand (operands[2], E_SImode))
        return -1;
      x14 = XEXP (x6, 0);
      switch (GET_CODE (x14))
        {
        case REG:
        case SUBREG:
          operands[3] = x14;
          if (!s_register_operand (operands[3], E_SImode))
            return -1;
          x15 = XEXP (x7, 0);
          x16 = XEXP (x15, 1);
          if (XWINT (x16, 0) != 4L)
            return -1;
          x17 = XEXP (x15, 0);
          if (!rtx_equal_p (x17, operands[3])
              || !
#line 904 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 2))
            return -1;
          return 472; /* *stm2_ */

        case PLUS:
          if (GET_MODE (x14) != E_SImode)
            return -1;
          x18 = XEXP (x14, 1);
          if (GET_CODE (x18) != CONST_INT)
            return -1;
          x19 = XEXP (x14, 0);
          operands[3] = x19;
          if (!s_register_operand (operands[3], E_SImode))
            return -1;
          x15 = XEXP (x7, 0);
          x17 = XEXP (x15, 0);
          if (!rtx_equal_p (x17, operands[3]))
            return -1;
          switch (XWINT (x18, 0))
            {
            case 4L:
              x16 = XEXP (x15, 1);
              if (XWINT (x16, 0) != 8L
                  || !
#line 968 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 2))
                return -1;
              return 477; /* *stm2_ib */

            case -8L:
              x16 = XEXP (x15, 1);
              if (XWINT (x16, 0) != -4L
                  || !
#line 1070 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 2))
                return -1;
              return 485; /* *stm2_db */

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_50 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != MULT
      || GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x2, 1);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x5 = XEXP (x1, 0);
  if (GET_CODE (x5) != REG
      || REGNO (x5) != 100
      || GET_MODE (x5) != E_CC_NZmode
      || GET_MODE (x2) != E_CC_NZmode)
    return -1;
  x6 = XEXP (x3, 0);
  operands[2] = x6;
  if (!s_register_operand (operands[2], E_SImode))
    return -1;
  x7 = XEXP (x3, 1);
  operands[1] = x7;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  if (
#line 2319 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && !arm_arch6))
    {
      *pnum_clobbers = 1;
      return 61; /* *mulsi_compare0_scratch */
    }
  if (!
#line 2332 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch6 && optimize_size))
    return -1;
  *pnum_clobbers = 1;
  return 62; /* *mulsi_compare0_scratch_v6 */
}

static int
recog_51 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != REG
      || REGNO (x2) != 100)
    return -1;
  x3 = XEXP (x1, 1);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 0);
  operands[1] = x5;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x6 = XEXP (x4, 1);
  operands[2] = x6;
  x7 = XEXP (x3, 1);
  switch (GET_CODE (x7))
    {
    case CONST_INT:
      if (pnum_clobbers == NULL
          || XWINT (x7, 0) != 0L
          || GET_MODE (x2) != E_CC_NZmode
          || GET_MODE (x3) != E_CC_NZmode
          || !arm_rhs_operand (operands[2], E_SImode)
          || !
#line 4771 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      *pnum_clobbers = 1;
      return 153; /* *shiftsi3_compare0_scratch */

    case REG:
    case SUBREG:
      operands[0] = x7;
      if (!s_register_operand (operands[0], E_SImode)
          || GET_MODE (x2) != E_CC_SWPmode
          || GET_MODE (x3) != E_CC_SWPmode
          || !shift_amount_operand (operands[2], E_SImode)
          || !
#line 7897 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 274; /* *cmpsi_shiftsi_swp */

    default:
      return -1;
    }
}

static int
recog_52 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  if (XWINT (x3, 0) != 0L)
    return -1;
  x4 = XEXP (x1, 0);
  if (REGNO (x4) != 100
      || GET_MODE (x4) != E_CC_Zmode
      || GET_MODE (x2) != E_CC_Zmode)
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_QImode:
      if (!s_register_operand (operands[0], E_QImode)
          || !
#line 5818 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 182; /* *compareqi_eq0 */

    case E_DImode:
      if (pnum_clobbers == NULL
          || !s_register_operand (operands[0], E_DImode)
          || !
#line 1688 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      *pnum_clobbers = 1;
      return 977; /* *thumb_cmpdi_zero */

    default:
      return -1;
    }
}

static int
recog_53 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  operands[1] = x3;
  x4 = XEXP (x1, 0);
  switch (REGNO (x4))
    {
    case 100:
      switch (GET_MODE (x4))
        {
        case E_CCFPmode:
          switch (pattern399 (x2, E_CCFPmode))
            {
            case 0:
              if (!
#line 1749 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
                return -1;
              return 854; /* *cmpsf_split_vfp */

            case 1:
              if (!
#line 1779 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
                return -1;
              return 856; /* *cmpdf_split_vfp */

            default:
              return -1;
            }

        case E_CCFPEmode:
          switch (pattern399 (x2, E_CCFPEmode))
            {
            case 0:
              if (!
#line 1764 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
                return -1;
              return 855; /* *cmpsf_trap_split_vfp */

            case 1:
              if (!
#line 1794 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
                return -1;
              return 857; /* *cmpdf_trap_split_vfp */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 101:
      switch (GET_MODE (x4))
        {
        case E_CCFPmode:
          switch (pattern399 (x2, E_CCFPmode))
            {
            case 0:
              if (!
#line 1815 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
                return -1;
              return 858; /* *cmpsf_vfp */

            case 1:
              if (!
#line 1839 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
                return -1;
              return 860; /* *cmpdf_vfp */

            default:
              return -1;
            }

        case E_CCFPEmode:
          switch (pattern399 (x2, E_CCFPEmode))
            {
            case 0:
              if (!
#line 1827 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
                return -1;
              return 859; /* *cmpsf_trap_vfp */

            case 1:
              if (!
#line 1851 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
                return -1;
              return 861; /* *cmpdf_trap_vfp */

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_54 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != REG
      || REGNO (x2) != 100)
    return -1;
  x3 = XEXP (x1, 1);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 0);
  switch (GET_CODE (x5))
    {
    case SIGN_EXTEND:
      if (GET_MODE (x5) != E_DImode
          || GET_MODE (x4) != E_DImode)
        return -1;
      x6 = XEXP (x4, 1);
      switch (GET_CODE (x6))
        {
        case SIGN_EXTEND:
          if (GET_MODE (x6) != E_DImode
              || pattern488 (x1) != 0)
            return -1;
          x7 = XEXP (x6, 0);
          operands[1] = x7;
          if (!register_operand (operands[1], E_SImode))
            return -1;
          x8 = XEXP (x3, 1);
          x9 = XEXP (x8, 0);
          x10 = XEXP (x9, 0);
          if (!rtx_equal_p (x10, operands[0]))
            return -1;
          x11 = XEXP (x9, 1);
          if (!rtx_equal_p (x11, operands[1])
              || !
#line 993 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 9; /* *addsi3_compareV_reg_nosum */

        case CONST_INT:
          operands[1] = x6;
          if (!arm_addimm_operand (operands[1], E_VOIDmode)
              || pattern488 (x1) != 0)
            return -1;
          x8 = XEXP (x3, 1);
          x9 = XEXP (x8, 0);
          x10 = XEXP (x9, 0);
          if (!rtx_equal_p (x10, operands[0]))
            return -1;
          x11 = XEXP (x9, 1);
          if (!rtx_equal_p (x11, operands[1])
              || !
#line 1050 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && INTVAL (operands[1]) == ARM_SIGN_EXTEND (INTVAL (operands[1]))))
            return -1;
          return 12; /* addsi3_compareV_imm_nosum */

        case GEU:
        case LTU:
          if (pnum_clobbers == NULL)
            return -1;
          operands[3] = x6;
          if (!arm_borrow_operation (operands[3], E_DImode)
              || GET_MODE (x2) != E_CC_SWPmode
              || GET_MODE (x3) != E_CC_SWPmode)
            return -1;
          x12 = XEXP (x5, 0);
          operands[2] = x12;
          if (!s_register_operand (operands[2], E_SImode))
            return -1;
          x8 = XEXP (x3, 1);
          operands[1] = x8;
          if (!arm_immediate_operand (operands[1], E_VOIDmode)
              || !
#line 2114 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          *pnum_clobbers = 1;
          return 50; /* rscsi3_CC_NVout_scratch */

        default:
          return -1;
        }

    case REG:
    case SUBREG:
      operands[0] = x5;
      if (!s_register_operand (operands[0], E_SImode)
          || GET_MODE (x4) != E_SImode)
        return -1;
      x6 = XEXP (x4, 1);
      operands[1] = x6;
      if (!arm_add_operand (operands[1], E_SImode))
        return -1;
      x8 = XEXP (x3, 1);
      switch (GET_CODE (x8))
        {
        case CONST_INT:
          if (XWINT (x8, 0) == 0L
              && GET_MODE (x2) == E_CC_NZmode
              && GET_MODE (x3) == E_CC_NZmode)
            {
              if (
#line 1128 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return 14; /* *addsi3_compare0_scratch */
              if (
#line 1403 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
                return 1053; /* *thumb2_addsi3_compare0_scratch */
            }
          break;

        case REG:
        case SUBREG:
          if (rtx_equal_p (x8, operands[0])
              && GET_MODE (x2) == E_CC_Cmode
              && GET_MODE (x3) == E_CC_Cmode
              && 
#line 1279 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return 19; /* *compare_addsi2_op0 */
          break;

        default:
          break;
        }
      if (GET_MODE (x2) != E_CC_Cmode
          || GET_MODE (x3) != E_CC_Cmode
          || !rtx_equal_p (x8, operands[1])
          || !
#line 1302 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 20; /* *compare_addsi2_op1 */

    case ZERO_EXTEND:
      if (pnum_clobbers == NULL
          || GET_MODE (x5) != E_DImode
          || pattern429 (x1, E_CC_SWPmode, E_DImode) != 0)
        return -1;
      x6 = XEXP (x4, 1);
      operands[3] = x6;
      if (!arm_borrow_operation (operands[3], E_DImode))
        return -1;
      x8 = XEXP (x3, 1);
      operands[1] = x8;
      if (!arm_immediate_operand (operands[1], E_VOIDmode)
          || !
#line 2114 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      *pnum_clobbers = 1;
      return 51; /* rscsi3_CC_Bout_scratch */

    case MULT:
      if (pnum_clobbers == NULL
          || GET_MODE (x5) != E_SImode)
        return -1;
      x8 = XEXP (x3, 1);
      if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
          || pattern429 (x1, E_CC_NZmode, E_SImode) != 0)
        return -1;
      x13 = XEXP (x5, 1);
      operands[1] = x13;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      x6 = XEXP (x4, 1);
      operands[3] = x6;
      if (!s_register_operand (operands[3], E_SImode))
        return -1;
      if (
#line 2381 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && !arm_arch6))
        {
          *pnum_clobbers = 1;
          return 65; /* *mulsi3addsi_compare0_scratch */
        }
      if (!
#line 2396 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch6 && optimize_size))
        return -1;
      *pnum_clobbers = 1;
      return 66; /* *mulsi3addsi_compare0_scratch_v6 */

    default:
      return -1;
    }
}

static int
recog_55 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x2, 1);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x5 = XEXP (x3, 0);
  switch (GET_CODE (x5))
    {
    case REG:
    case SUBREG:
      if (pnum_clobbers == NULL)
        return -1;
      operands[0] = x5;
      if (!s_register_operand (operands[0], E_SImode)
          || pattern27 (x1, E_CC_NZmode) != 0)
        return -1;
      x6 = XEXP (x3, 1);
      operands[1] = x6;
      if (!arm_not_operand (operands[1], E_SImode)
          || !
#line 3062 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      *pnum_clobbers = 1;
      return 92; /* *andsi3_compare0_scratch */

    case NOT:
      if (pnum_clobbers == NULL
          || GET_MODE (x5) != E_SImode
          || pattern27 (x1, E_CC_NZmode) != 0)
        return -1;
      x6 = XEXP (x3, 1);
      if (!s_register_operand (x6, E_SImode))
        return -1;
      x7 = XEXP (x5, 0);
      switch (GET_CODE (x7))
        {
        case MULT:
        case ASHIFT:
        case ROTATE:
        case ASHIFTRT:
        case LSHIFTRT:
        case ROTATERT:
          operands[0] = x7;
          if (!shift_operator (operands[0], E_SImode))
            return -1;
          x8 = XEXP (x7, 0);
          operands[1] = x8;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x9 = XEXP (x7, 1);
          operands[2] = x9;
          if (!shift_amount_operand (operands[2], E_SImode))
            return -1;
          operands[3] = x6;
          if (!
#line 3623 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          *pnum_clobbers = 1;
          return 106; /* andsi_not_shiftsi_si_scc_no_reuse */

        case REG:
        case SUBREG:
          operands[2] = x7;
          if (!s_register_operand (operands[2], E_SImode))
            return -1;
          operands[1] = x6;
          if (!
#line 3677 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          *pnum_clobbers = 1;
          return 109; /* *andsi_notsi_si_compare0_scratch */

        default:
          return -1;
        }

    case NE:
    case EQ:
    case GE:
    case GT:
    case LE:
    case LT:
    case GEU:
    case GTU:
    case LEU:
    case LTU:
    case UNORDERED:
    case ORDERED:
    case UNGE:
    case UNGT:
    case UNLE:
    case UNLT:
      if (pattern379 (x1) != 0
          || !
#line 10313 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 342; /* *cmp_and */

    default:
      return -1;
    }
}

static int
recog_56 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x2, 1);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x5 = XEXP (x3, 0);
  switch (GET_CODE (x5))
    {
    case REG:
    case SUBREG:
      if (pnum_clobbers == NULL)
        return -1;
      operands[1] = x5;
      if (!s_register_operand (operands[1], E_SImode)
          || pattern27 (x1, E_CC_NZmode) != 0)
        return -1;
      x6 = XEXP (x3, 1);
      operands[2] = x6;
      if (!arm_rhs_operand (operands[2], E_SImode)
          || !
#line 3783 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      *pnum_clobbers = 1;
      return 112; /* *iorsi3_compare0_scratch */

    case NE:
    case EQ:
    case GE:
    case GT:
    case LE:
    case LT:
    case GEU:
    case GTU:
    case LEU:
    case LTU:
    case UNORDERED:
    case ORDERED:
    case UNGE:
    case UNGT:
    case UNLE:
    case UNLT:
      if (pattern379 (x1) != 0
          || !
#line 10398 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 343; /* *cmp_ior */

    default:
      return -1;
    }
}

static int
recog_57 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  if (pnum_clobbers == NULL)
    return -1;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x3, 1);
  if (!shift_operator (x4, E_SImode))
    return -1;
  operands[2] = x4;
  x5 = XEXP (x2, 1);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x6 = XEXP (x1, 0);
  if (GET_CODE (x6) != REG
      || REGNO (x6) != 100
      || GET_MODE (x6) != E_CC_NZmode
      || GET_MODE (x2) != E_CC_NZmode)
    return -1;
  x7 = XEXP (x3, 0);
  operands[1] = x7;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x8 = XEXP (x4, 0);
  operands[3] = x8;
  if (!s_register_operand (operands[3], E_SImode))
    return -1;
  x9 = XEXP (x4, 1);
  operands[4] = x9;
  if (!shift_amount_operand (operands[4], E_SImode)
      || !
#line 9785 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
    return -1;
  *pnum_clobbers = 1;
  return 333; /* *sub_shiftsi_compare0_scratch */
}

static int
recog_58 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  switch (GET_CODE (x3))
    {
    case REG:
    case SUBREG:
      switch (GET_MODE (operands[0]))
        {
        case E_SImode:
          if (!s_register_operand (operands[0], E_SImode)
              || GET_MODE (x2) != E_SImode)
            return -1;
          operands[2] = x3;
          if (!s_register_operand (operands[2], E_SImode))
            return -1;
          x4 = XEXP (x2, 1);
          operands[1] = x4;
          if (!s_register_operand (operands[1], E_SImode)
              || !
#line 2247 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 56; /* *mul */

        case E_V4HImode:
          if (GET_MODE (x2) != E_V4HImode)
            return -1;
          operands[1] = x3;
          if (register_operand (operands[1], E_V4HImode)
              && register_operand (operands[0], E_V4HImode))
            {
              x4 = XEXP (x2, 1);
              operands[2] = x4;
              if (register_operand (operands[2], E_V4HImode)
                  && 
#line 481 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 563; /* *mulv4hi3_iwmmxt */
            }
          if (!s_register_operand (operands[1], E_V4HImode)
              || !s_register_operand (operands[0], E_V4HImode))
            return -1;
          x4 = XEXP (x2, 1);
          operands[2] = x4;
          if (!s_register_operand (operands[2], E_V4HImode)
              || !
#line 494 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4HI_ARITH))
            return -1;
          return 1166; /* *mulv4hi3_neon */

        case E_V2SImode:
          if (GET_MODE (x2) != E_V2SImode)
            return -1;
          operands[1] = x3;
          if (register_operand (operands[1], E_V2SImode)
              && register_operand (operands[0], E_V2SImode))
            {
              x4 = XEXP (x2, 1);
              operands[2] = x4;
              if (register_operand (operands[2], E_V2SImode)
                  && 
#line 361 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return 702; /* iwmmxt_wmulwl */
            }
          if (!s_register_operand (operands[1], E_V2SImode)
              || !s_register_operand (operands[0], E_V2SImode))
            return -1;
          x4 = XEXP (x2, 1);
          operands[2] = x4;
          if (!s_register_operand (operands[2], E_V2SImode)
              || !
#line 494 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V2SI_ARITH))
            return -1;
          return 1168; /* *mulv2si3_neon */

        case E_HFmode:
          if (pattern335 (x2, E_HFmode) != 0
              || !
#line 1103 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 797; /* mulhf3 */

        case E_SFmode:
          if (pattern335 (x2, E_SFmode) != 0
              || !
#line 1113 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
            return -1;
          return 798; /* *mulsf3_vfp */

        case E_DFmode:
          if (pattern335 (x2, E_DFmode) != 0
              || !
#line 1123 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
            return -1;
          return 799; /* *muldf3_vfp */

        case E_V8QImode:
          if (pattern335 (x2, E_V8QImode) != 0
              || !
#line 494 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V8QI_ARITH))
            return -1;
          return 1164; /* *mulv8qi3_neon */

        case E_V16QImode:
          if (pattern335 (x2, E_V16QImode) != 0)
            return -1;
          if (
#line 494 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V16QI_ARITH))
            return 1165; /* *mulv16qi3_neon */
          if (!
#line 1400 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3411; /* mve_vmulqv16qi */

        case E_V8HImode:
          if (pattern335 (x2, E_V8HImode) != 0)
            return -1;
          if (
#line 494 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V8HI_ARITH))
            return 1167; /* *mulv8hi3_neon */
          if (!
#line 1400 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3412; /* mve_vmulqv8hi */

        case E_V4SImode:
          if (pattern335 (x2, E_V4SImode) != 0)
            return -1;
          if (
#line 494 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4SI_ARITH))
            return 1169; /* *mulv4si3_neon */
          if (!
#line 1400 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3413; /* mve_vmulqv4si */

        case E_V2SFmode:
          if (pattern335 (x2, E_V2SFmode) != 0
              || !
#line 494 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V2SF_ARITH))
            return -1;
          return 1170; /* *mulv2sf3_neon */

        case E_V4SFmode:
          if (pattern335 (x2, E_V4SFmode) != 0)
            return -1;
          if (
#line 494 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4SF_ARITH))
            return 1171; /* *mulv4sf3_neon */
          if (!
#line 2235 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3639; /* mve_vmulq_fv4sf */

        case E_V8HFmode:
          if (pattern335 (x2, E_V8HFmode) != 0)
            return -1;
          if (
#line 1586 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return 1517; /* neon_vmulfv8hf */
          if (!
#line 2235 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3638; /* mve_vmulq_fv8hf */

        case E_V4HFmode:
          if (pattern335 (x2, E_V4HFmode) != 0
              || !
#line 1586 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1518; /* neon_vmulfv4hf */

        default:
          return -1;
        }

    case SIGN_EXTEND:
      x5 = XEXP (x3, 0);
      switch (GET_CODE (x5))
        {
        case REG:
        case SUBREG:
          operands[1] = x5;
          x4 = XEXP (x2, 1);
          switch (GET_CODE (x4))
            {
            case SIGN_EXTEND:
              x6 = XEXP (x4, 0);
              operands[2] = x6;
              switch (GET_MODE (operands[0]))
                {
                case E_SImode:
                  if (pattern460 (x2) != 0
                      || GET_MODE (x4) != E_SImode
                      || !s_register_operand (operands[2], E_HImode)
                      || !
#line 2514 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY))
                    return -1;
                  return 73; /* mulhisi3 */

                case E_V8HImode:
                  if (pattern461 (x2, E_V8QImode, E_V8HImode) != 0
                      || !
#line 6208 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 2805; /* neon_vec_smult_v8qi */

                case E_V4SImode:
                  if (pattern461 (x2, E_V4HImode, E_V4SImode) != 0
                      || !
#line 6208 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 2807; /* neon_vec_smult_v4hi */

                case E_V2DImode:
                  if (pattern461 (x2, E_V2SImode, E_V2DImode) != 0
                      || !
#line 6208 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 2809; /* neon_vec_smult_v2si */

                default:
                  return -1;
                }

            case ASHIFTRT:
              if (GET_MODE (x4) != E_SImode)
                return -1;
              x7 = XEXP (x4, 1);
              if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 16]
                  || pattern460 (x2) != 0)
                return -1;
              x6 = XEXP (x4, 0);
              operands[2] = x6;
              if (!s_register_operand (operands[2], E_SImode)
                  || !
#line 2540 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY))
                return -1;
              return 75; /* *mulhisi3bt */

            default:
              return -1;
            }

        case VEC_SELECT:
          x4 = XEXP (x2, 1);
          if (GET_CODE (x4) != SIGN_EXTEND)
            return -1;
          switch (pattern381 (x2))
            {
            case 0:
              if (vect_par_constant_low (operands[2], E_V16QImode)
                  && 
#line 6068 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
                return 2781; /* neon_vec_smult_lo_v16qi */
              if (!vect_par_constant_high (operands[2], E_V16QImode)
                  || !
#line 6102 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
                return -1;
              return 2787; /* neon_vec_smult_hi_v16qi */

            case 1:
              if (vect_par_constant_low (operands[2], E_V8HImode)
                  && 
#line 6068 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
                return 2783; /* neon_vec_smult_lo_v8hi */
              if (!vect_par_constant_high (operands[2], E_V8HImode)
                  || !
#line 6102 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
                return -1;
              return 2789; /* neon_vec_smult_hi_v8hi */

            case 2:
              if (vect_par_constant_low (operands[2], E_V4SImode)
                  && 
#line 6068 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
                return 2785; /* neon_vec_smult_lo_v4si */
              if (!vect_par_constant_high (operands[2], E_V4SImode)
                  || !
#line 6102 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
                return -1;
              return 2791; /* neon_vec_smult_hi_v4si */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case ASHIFTRT:
      if (pattern305 (x2, 16) != 0)
        return -1;
      x4 = XEXP (x2, 1);
      if (GET_MODE (x4) != E_SImode)
        return -1;
      switch (GET_CODE (x4))
        {
        case SIGN_EXTEND:
          x6 = XEXP (x4, 0);
          operands[2] = x6;
          if (!s_register_operand (operands[2], E_HImode)
              || !
#line 2527 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY))
            return -1;
          return 74; /* *mulhisi3tb */

        case ASHIFTRT:
          x7 = XEXP (x4, 1);
          if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
            return -1;
          x6 = XEXP (x4, 0);
          operands[2] = x6;
          if (!s_register_operand (operands[2], E_SImode)
              || !
#line 2554 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY))
            return -1;
          return 76; /* *mulhisi3tt */

        default:
          return -1;
        }

    case NEG:
      x5 = XEXP (x3, 0);
      operands[1] = x5;
      x4 = XEXP (x2, 1);
      operands[2] = x4;
      switch (GET_MODE (operands[0]))
        {
        case E_HFmode:
          if (pattern409 (x2, E_HFmode) != 0
              || !
#line 1133 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST && !flag_rounding_math))
            return -1;
          return 800; /* *mulsf3neghf_vfp */

        case E_SFmode:
          if (pattern409 (x2, E_SFmode) != 0
              || !
#line 1153 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && !flag_rounding_math))
            return -1;
          return 802; /* *mulsf3negsf_vfp */

        case E_DFmode:
          if (pattern409 (x2, E_DFmode) != 0
              || !
#line 1173 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE
  && !flag_rounding_math))
            return -1;
          return 804; /* *muldf3negdf_vfp */

        default:
          return -1;
        }

    case UNSIGNED_FLOAT:
      switch (pattern306 (x2))
        {
        case 0:
          if (!
#line 1865 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP3 && !flag_rounding_math))
            return -1;
          return 862; /* *combine_vcvt_f32_u32 */

        case 1:
          if (!
#line 1878 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP3 && !flag_rounding_math
  && !TARGET_VFP_SINGLE))
            return -1;
          return 864; /* *combine_vcvt_f64_u32 */

        default:
          return -1;
        }

    case FLOAT:
      switch (pattern306 (x2))
        {
        case 0:
          if (!
#line 1865 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP3 && !flag_rounding_math))
            return -1;
          return 863; /* *combine_vcvt_f32_s32 */

        case 1:
          if (!
#line 1878 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP3 && !flag_rounding_math
  && !TARGET_VFP_SINGLE))
            return -1;
          return 865; /* *combine_vcvt_f64_s32 */

        default:
          return -1;
        }

    case ZERO_EXTEND:
      x4 = XEXP (x2, 1);
      if (GET_CODE (x4) != ZERO_EXTEND)
        return -1;
      x5 = XEXP (x3, 0);
      switch (GET_CODE (x5))
        {
        case VEC_SELECT:
          switch (pattern381 (x2))
            {
            case 0:
              if (vect_par_constant_low (operands[2], E_V16QImode)
                  && 
#line 6068 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
                return 2782; /* neon_vec_umult_lo_v16qi */
              if (!vect_par_constant_high (operands[2], E_V16QImode)
                  || !
#line 6102 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
                return -1;
              return 2788; /* neon_vec_umult_hi_v16qi */

            case 1:
              if (vect_par_constant_low (operands[2], E_V8HImode)
                  && 
#line 6068 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
                return 2784; /* neon_vec_umult_lo_v8hi */
              if (!vect_par_constant_high (operands[2], E_V8HImode)
                  || !
#line 6102 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
                return -1;
              return 2790; /* neon_vec_umult_hi_v8hi */

            case 2:
              if (vect_par_constant_low (operands[2], E_V4SImode)
                  && 
#line 6068 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
                return 2786; /* neon_vec_umult_lo_v4si */
              if (!vect_par_constant_high (operands[2], E_V4SImode)
                  || !
#line 6102 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
                return -1;
              return 2792; /* neon_vec_umult_hi_v4si */

            default:
              return -1;
            }

        case REG:
        case SUBREG:
          operands[1] = x5;
          x6 = XEXP (x4, 0);
          operands[2] = x6;
          switch (GET_MODE (operands[0]))
            {
            case E_V8HImode:
              if (pattern461 (x2, E_V8QImode, E_V8HImode) != 0
                  || !
#line 6208 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2806; /* neon_vec_umult_v8qi */

            case E_V4SImode:
              if (pattern461 (x2, E_V4HImode, E_V4SImode) != 0
                  || !
#line 6208 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2808; /* neon_vec_umult_v4hi */

            case E_V2DImode:
              if (pattern461 (x2, E_V2SImode, E_V2DImode) != 0
                  || !
#line 6208 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2810; /* neon_vec_umult_v2si */

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_59 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  operands[1] = x3;
  x4 = XEXP (x2, 1);
  operands[2] = x4;
  switch (GET_MODE (operands[0]))
    {
    case E_V4HImode:
      if (!register_operand (operands[0], E_V4HImode)
          || GET_MODE (x2) != E_V4HImode
          || !register_operand (operands[1], E_V4HImode))
        return -1;
      if (imm_or_reg_operand (operands[2], E_SImode)
          && 
#line 1277 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 632; /* rorv4hi3 */
      if (!imm_or_reg_operand (operands[2], E_DImode)
          || !
#line 1361 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 644; /* rorv4hi3_di */

    case E_V2SImode:
      if (!register_operand (operands[0], E_V2SImode)
          || GET_MODE (x2) != E_V2SImode
          || !register_operand (operands[1], E_V2SImode))
        return -1;
      if (imm_or_reg_operand (operands[2], E_SImode)
          && 
#line 1277 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 633; /* rorv2si3 */
      if (!imm_or_reg_operand (operands[2], E_DImode)
          || !
#line 1361 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 645; /* rorv2si3_di */

    case E_DImode:
      if (!register_operand (operands[0], E_DImode)
          || GET_MODE (x2) != E_DImode
          || !register_operand (operands[1], E_DImode))
        return -1;
      if (imm_or_reg_operand (operands[2], E_SImode)
          && 
#line 1277 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 634; /* rordi3 */
      if (!imm_or_reg_operand (operands[2], E_DImode)
          || !
#line 1361 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 646; /* rordi3_di */

    default:
      return -1;
    }
}

static int
recog_60 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  switch (GET_MODE (operands[0]))
    {
    case E_V4HImode:
      if (!register_operand (operands[0], E_V4HImode))
        return -1;
      x2 = XEXP (x1, 1);
      if (GET_MODE (x2) != E_V4HImode)
        return -1;
      x3 = XEXP (x2, 0);
      operands[1] = x3;
      if (!register_operand (operands[1], E_V4HImode))
        return -1;
      x4 = XEXP (x2, 1);
      operands[2] = x4;
      if (imm_or_reg_operand (operands[2], E_SImode)
          && 
#line 1340 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 641; /* ashlv4hi3_iwmmxt */
      if (!imm_or_reg_operand (operands[2], E_DImode)
          || !
#line 1424 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 653; /* ashlv4hi3_di */

    case E_V2SImode:
      if (!register_operand (operands[0], E_V2SImode))
        return -1;
      x2 = XEXP (x1, 1);
      if (GET_MODE (x2) != E_V2SImode)
        return -1;
      x3 = XEXP (x2, 0);
      operands[1] = x3;
      if (!register_operand (operands[1], E_V2SImode))
        return -1;
      x4 = XEXP (x2, 1);
      operands[2] = x4;
      if (imm_or_reg_operand (operands[2], E_SImode)
          && 
#line 1340 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 642; /* ashlv2si3_iwmmxt */
      if (!imm_or_reg_operand (operands[2], E_DImode)
          || !
#line 1424 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 654; /* ashlv2si3_di */

    case E_DImode:
      x2 = XEXP (x1, 1);
      if (GET_MODE (x2) != E_DImode)
        return -1;
      if (register_operand (operands[0], E_DImode))
        {
          x3 = XEXP (x2, 0);
          operands[1] = x3;
          if (register_operand (operands[1], E_DImode))
            {
              x4 = XEXP (x2, 1);
              operands[2] = x4;
              if (imm_or_reg_operand (operands[2], E_SImode)
                  && 
#line 1340 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 643; /* ashldi3_iwmmxt */
              if (imm_or_reg_operand (operands[2], E_DImode)
                  && 
#line 1424 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 655; /* ashldi3_di */
            }
        }
      if (!arm_general_register_operand (operands[0], E_DImode))
        return -1;
      x4 = XEXP (x2, 1);
      operands[1] = x4;
      if (!arm_reg_or_long_shift_imm (operands[1], E_SImode))
        return -1;
      x3 = XEXP (x2, 0);
      if (!rtx_equal_p (x3, operands[0])
          || !
#line 1715 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_HAVE_MVE))
        return -1;
      return 1066; /* thumb2_lsll */

    default:
      return -1;
    }
}

static int
recog_61 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XEXP (x2, 1);
  operands[2] = x3;
  switch (GET_CODE (x2))
    {
    case MULT:
      if (!register_operand (operands[2], E_SImode))
        return -1;
      if (
#line 162 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && !arm_arch6))
        return 938; /* *thumb_mulsi3 */
      if (!
#line 175 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && arm_arch6))
        return -1;
      return 939; /* *thumb_mulsi3_v6 */

    case ASHIFT:
      if (!nonmemory_operand (operands[2], E_SImode)
          || !
#line 275 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 944; /* *thumb1_ashlsi3 */

    case ASHIFTRT:
      if (!nonmemory_operand (operands[2], E_SImode)
          || !
#line 285 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 945; /* *thumb1_ashrsi3 */

    case LSHIFTRT:
      if (!nonmemory_operand (operands[2], E_SImode)
          || !
#line 295 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 946; /* *thumb1_lshrsi3 */

    case ROTATERT:
      if (!register_operand (operands[2], E_SImode)
          || !
#line 305 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 947; /* *thumb1_rotrsi3 */

    default:
      return -1;
    }
}

static int
recog_62 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  if (!immediate_operand (operands[3], E_SImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_V8QImode:
      if (pattern465 (x3, E_V8QImode, E_QImode) != 0
          || !
#line 4969 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2523; /* neon_vld1_lanev8qi */

    case E_V4HImode:
      if (pattern465 (x3, E_V4HImode, E_HImode) != 0
          || !
#line 4969 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2524; /* neon_vld1_lanev4hi */

    case E_V4HFmode:
      if (pattern465 (x3, E_V4HFmode, E_HFmode) != 0
          || !
#line 4969 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2525; /* neon_vld1_lanev4hf */

    case E_V4BFmode:
      if (pattern465 (x3, E_V4BFmode, E_BFmode) != 0
          || !
#line 4969 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2526; /* neon_vld1_lanev4bf */

    case E_V2SImode:
      if (pattern465 (x3, E_V2SImode, E_SImode) != 0
          || !
#line 4969 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2527; /* neon_vld1_lanev2si */

    case E_V2SFmode:
      if (pattern465 (x3, E_V2SFmode, E_SFmode) != 0
          || !
#line 4969 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2528; /* neon_vld1_lanev2sf */

    case E_DImode:
      if (!s_register_operand (operands[0], E_DImode)
          || GET_MODE (x3) != E_DImode
          || !neon_struct_operand (operands[1], E_DImode)
          || !s_register_operand (operands[2], E_DImode)
          || !
#line 4969 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2529; /* neon_vld1_lanedi */

    case E_V16QImode:
      if (pattern465 (x3, E_V16QImode, E_QImode) != 0
          || !
#line 4990 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2530; /* neon_vld1_lanev16qi */

    case E_V8HImode:
      if (pattern465 (x3, E_V8HImode, E_HImode) != 0
          || !
#line 4990 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2531; /* neon_vld1_lanev8hi */

    case E_V8HFmode:
      if (pattern465 (x3, E_V8HFmode, E_HFmode) != 0
          || !
#line 4990 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2532; /* neon_vld1_lanev8hf */

    case E_V8BFmode:
      if (pattern465 (x3, E_V8BFmode, E_BFmode) != 0
          || !
#line 4990 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2533; /* neon_vld1_lanev8bf */

    case E_V4SImode:
      if (pattern465 (x3, E_V4SImode, E_SImode) != 0
          || !
#line 4990 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2534; /* neon_vld1_lanev4si */

    case E_V4SFmode:
      if (pattern465 (x3, E_V4SFmode, E_SFmode) != 0
          || !
#line 4990 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2535; /* neon_vld1_lanev4sf */

    case E_V2DImode:
      if (pattern465 (x3, E_V2DImode, E_DImode) != 0
          || !
#line 4990 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2536; /* neon_vld1_lanev2di */

    default:
      return -1;
    }
}

static int
recog_63 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  if (!immediate_operand (operands[3], E_SImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_V8QImode:
      if (pattern42 (x3, E_V8QImode) != 0
          || !
#line 4385 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2217; /* neon_vextv8qi */

    case E_V16QImode:
      if (pattern42 (x3, E_V16QImode) != 0
          || !
#line 4385 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2218; /* neon_vextv16qi */

    case E_V4HImode:
      if (pattern42 (x3, E_V4HImode) != 0
          || !
#line 4385 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2219; /* neon_vextv4hi */

    case E_V8HImode:
      if (pattern42 (x3, E_V8HImode) != 0
          || !
#line 4385 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2220; /* neon_vextv8hi */

    case E_V2SImode:
      if (pattern42 (x3, E_V2SImode) != 0
          || !
#line 4385 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2221; /* neon_vextv2si */

    case E_V4SImode:
      if (pattern42 (x3, E_V4SImode) != 0
          || !
#line 4385 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2222; /* neon_vextv4si */

    case E_V4HFmode:
      if (pattern42 (x3, E_V4HFmode) != 0
          || !
#line 4385 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2223; /* neon_vextv4hf */

    case E_V8HFmode:
      if (pattern42 (x3, E_V8HFmode) != 0
          || !
#line 4385 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2224; /* neon_vextv8hf */

    case E_V4BFmode:
      if (pattern42 (x3, E_V4BFmode) != 0
          || !
#line 4385 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2225; /* neon_vextv4bf */

    case E_V8BFmode:
      if (pattern42 (x3, E_V8BFmode) != 0
          || !
#line 4385 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2226; /* neon_vextv8bf */

    case E_V2SFmode:
      if (pattern42 (x3, E_V2SFmode) != 0
          || !
#line 4385 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2227; /* neon_vextv2sf */

    case E_V4SFmode:
      if (pattern42 (x3, E_V4SFmode) != 0
          || !
#line 4385 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2228; /* neon_vextv4sf */

    case E_DImode:
      if (pattern42 (x3, E_DImode) != 0
          || !
#line 4385 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2229; /* neon_vextdi */

    case E_V2DImode:
      if (pattern42 (x3, E_V2DImode) != 0
          || !
#line 4385 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2230; /* neon_vextv2di */

    default:
      return -1;
    }
}

static int
recog_64 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  switch (GET_MODE (operands[0]))
    {
    case E_V8QImode:
      if (pattern33 (x3, E_V8QImode) != 0
          || !
#line 4434 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2248; /* neon_vbslv8qi_internal */

    case E_V16QImode:
      if (pattern33 (x3, E_V16QImode) != 0
          || !
#line 4434 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2249; /* neon_vbslv16qi_internal */

    case E_V4HImode:
      if (pattern33 (x3, E_V4HImode) != 0
          || !
#line 4434 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2250; /* neon_vbslv4hi_internal */

    case E_V8HImode:
      if (pattern33 (x3, E_V8HImode) != 0
          || !
#line 4434 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2251; /* neon_vbslv8hi_internal */

    case E_V2SImode:
      if (pattern33 (x3, E_V2SImode) != 0
          || !
#line 4434 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2252; /* neon_vbslv2si_internal */

    case E_V4SImode:
      if (pattern33 (x3, E_V4SImode) != 0
          || !
#line 4434 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2253; /* neon_vbslv4si_internal */

    case E_V4HFmode:
      if (pattern33 (x3, E_V4HFmode) != 0
          || !
#line 4434 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2254; /* neon_vbslv4hf_internal */

    case E_V8HFmode:
      if (pattern33 (x3, E_V8HFmode) != 0
          || !
#line 4434 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2255; /* neon_vbslv8hf_internal */

    case E_V4BFmode:
      if (pattern33 (x3, E_V4BFmode) != 0
          || !
#line 4434 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2256; /* neon_vbslv4bf_internal */

    case E_V8BFmode:
      if (pattern33 (x3, E_V8BFmode) != 0
          || !
#line 4434 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2257; /* neon_vbslv8bf_internal */

    case E_V2SFmode:
      if (pattern33 (x3, E_V2SFmode) != 0
          || !
#line 4434 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2258; /* neon_vbslv2sf_internal */

    case E_V4SFmode:
      if (pattern33 (x3, E_V4SFmode) != 0
          || !
#line 4434 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2259; /* neon_vbslv4sf_internal */

    case E_DImode:
      if (pattern33 (x3, E_DImode) != 0
          || !
#line 4434 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2260; /* neon_vbsldi_internal */

    case E_V2DImode:
      if (pattern33 (x3, E_V2DImode) != 0
          || !
#line 4434 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2261; /* neon_vbslv2di_internal */

    default:
      return -1;
    }
}

static int
recog_65 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_BLKmode)
    return -1;
  x3 = XVECEXP (x2, 0, 2);
  if (GET_CODE (x3) != UNSPEC
      || XVECLEN (x3, 0) != 1
      || XINT (x3, 1) != 327)
    return -1;
  x4 = XVECEXP (x3, 0, 0);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x5 = XEXP (x1, 0);
  operands[0] = x5;
  if (!neon_struct_operand (operands[0], E_BLKmode))
    return -1;
  x6 = XVECEXP (x2, 0, 0);
  operands[1] = x6;
  x7 = XVECEXP (x2, 0, 1);
  operands[2] = x7;
  if (!immediate_operand (operands[2], E_SImode))
    return -1;
  switch (GET_MODE (operands[1]))
    {
    case E_EImode:
      if (!s_register_operand (operands[1], E_EImode))
        return -1;
      switch (GET_MODE (x3))
        {
        case E_V8QImode:
          if (!
#line 5623 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2690; /* neon_vst3_lanev8qi */

        case E_V4HImode:
          if (!
#line 5623 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2691; /* neon_vst3_lanev4hi */

        case E_V4HFmode:
          if (!
#line 5623 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2692; /* neon_vst3_lanev4hf */

        case E_V4BFmode:
          if (!
#line 5623 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2693; /* neon_vst3_lanev4bf */

        case E_V2SImode:
          if (!
#line 5623 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2694; /* neon_vst3_lanev2si */

        case E_V2SFmode:
          if (!
#line 5623 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2695; /* neon_vst3_lanev2sf */

        default:
          return -1;
        }

    case E_CImode:
      if (!s_register_operand (operands[1], E_CImode))
        return -1;
      switch (GET_MODE (x3))
        {
        case E_V8HImode:
          if (!
#line 5649 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2696; /* neon_vst3_lanev8hi */

        case E_V8HFmode:
          if (!
#line 5649 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2697; /* neon_vst3_lanev8hf */

        case E_V4SImode:
          if (!
#line 5649 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2698; /* neon_vst3_lanev4si */

        case E_V4SFmode:
          if (!
#line 5649 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2699; /* neon_vst3_lanev4sf */

        case E_V8BFmode:
          if (!(
#line 5649 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 119 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
            return -1;
          return 2700; /* neon_vst3_lanev8bf */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_66 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (pattern45 (x1) != 0)
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_SImode:
      x2 = XEXP (x1, 1);
      if (pattern536 (x2, E_OImode, E_SImode) != 0
          || !
#line 5952 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2758; /* neon_vst4_lanev8qi */

    case E_V4HImode:
      x2 = XEXP (x1, 1);
      switch (pattern541 (x2, E_V4HImode, E_V8HImode))
        {
        case 0:
          if (!
#line 5952 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2759; /* neon_vst4_lanev4hi */

        case 1:
          if (!
#line 5979 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2764; /* neon_vst4_lanev8hi */

        default:
          return -1;
        }

    case E_V4HFmode:
      x2 = XEXP (x1, 1);
      switch (pattern541 (x2, E_V4HFmode, E_V8HFmode))
        {
        case 0:
          if (!
#line 5952 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2760; /* neon_vst4_lanev4hf */

        case 1:
          if (!
#line 5979 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2765; /* neon_vst4_lanev8hf */

        default:
          return -1;
        }

    case E_V4BFmode:
      x2 = XEXP (x1, 1);
      switch (pattern541 (x2, E_V4BFmode, E_V8BFmode))
        {
        case 0:
          if (!
#line 5952 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2761; /* neon_vst4_lanev4bf */

        case 1:
          if (!(
#line 5979 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 119 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
            return -1;
          return 2768; /* neon_vst4_lanev8bf */

        default:
          return -1;
        }

    case E_V4SImode:
      x2 = XEXP (x1, 1);
      switch (pattern542 (x2, E_V2SImode, E_V4SImode))
        {
        case 0:
          if (!
#line 5952 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2762; /* neon_vst4_lanev2si */

        case 1:
          if (!
#line 5979 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2766; /* neon_vst4_lanev4si */

        default:
          return -1;
        }

    case E_V4SFmode:
      x2 = XEXP (x1, 1);
      switch (pattern542 (x2, E_V2SFmode, E_V4SFmode))
        {
        case 0:
          if (!
#line 5952 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2763; /* neon_vst4_lanev2sf */

        case 1:
          if (!
#line 5979 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2767; /* neon_vst4_lanev4sf */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_67 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (pattern45 (x1) != 0)
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_HImode:
      x2 = XEXP (x1, 1);
      if (pattern536 (x2, E_TImode, E_HImode) != 0
          || !
#line 5289 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2622; /* neon_vst2_lanev8qi */

    case E_SImode:
      x2 = XEXP (x1, 1);
      switch (pattern538 (x2, E_V4HImode, E_V8HImode, E_SImode))
        {
        case 0:
          if (!
#line 5289 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2623; /* neon_vst2_lanev4hi */

        case 1:
          if (!
#line 5313 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2628; /* neon_vst2_lanev8hi */

        default:
          return -1;
        }

    case E_SFmode:
      x2 = XEXP (x1, 1);
      switch (pattern538 (x2, E_V4HFmode, E_V8HFmode, E_SFmode))
        {
        case 0:
          if (!
#line 5289 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2624; /* neon_vst2_lanev4hf */

        case 1:
          if (!
#line 5313 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2629; /* neon_vst2_lanev8hf */

        default:
          return -1;
        }

    case E_BFmode:
      x2 = XEXP (x1, 1);
      switch (pattern538 (x2, E_V4BFmode, E_V8BFmode, E_BFmode))
        {
        case 0:
          if (!
#line 5289 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2625; /* neon_vst2_lanev4bf */

        case 1:
          if (!(
#line 5313 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 119 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
            return -1;
          return 2632; /* neon_vst2_lanev8bf */

        default:
          return -1;
        }

    case E_V2SImode:
      x2 = XEXP (x1, 1);
      switch (pattern539 (x2, E_V2SImode, E_V4SImode))
        {
        case 0:
          if (!
#line 5289 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2626; /* neon_vst2_lanev2si */

        case 1:
          if (!
#line 5313 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2630; /* neon_vst2_lanev4si */

        default:
          return -1;
        }

    case E_V2SFmode:
      x2 = XEXP (x1, 1);
      switch (pattern539 (x2, E_V2SFmode, E_V4SFmode))
        {
        case 0:
          if (!
#line 5289 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2627; /* neon_vst2_lanev2sf */

        case 1:
          if (!
#line 5313 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2631; /* neon_vst2_lanev4sf */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_68 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  if (!immediate_operand (operands[3], E_SImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_V4HImode:
      if (pattern42 (x3, E_V4HImode) != 0
          || !
#line 3842 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2163; /* neon_vmul_lanev4hi */

    case E_V2SImode:
      if (pattern42 (x3, E_V2SImode) != 0
          || !
#line 3842 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2164; /* neon_vmul_lanev2si */

    case E_V2SFmode:
      if (pattern42 (x3, E_V2SFmode) != 0
          || !
#line 3842 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2165; /* neon_vmul_lanev2sf */

    case E_V8HImode:
      if (pattern41 (x3, E_V4HImode, E_V8HImode) != 0
          || !
#line 3859 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2166; /* neon_vmul_lanev8hi */

    case E_V4SImode:
      if (pattern41 (x3, E_V2SImode, E_V4SImode) != 0
          || !
#line 3859 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2167; /* neon_vmul_lanev4si */

    case E_V4SFmode:
      if (pattern41 (x3, E_V2SFmode, E_V4SFmode) != 0
          || !
#line 3859 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2168; /* neon_vmul_lanev4sf */

    case E_V8HFmode:
      if (pattern41 (x3, E_V4HFmode, E_V8HFmode) != 0
          || !
#line 3876 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2169; /* neon_vmul_lanev8hf */

    case E_V4HFmode:
      if (pattern42 (x3, E_V4HFmode) != 0
          || !
#line 3876 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2170; /* neon_vmul_lanev4hf */

    default:
      return -1;
    }
}

static int
recog_69 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_V8QImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], E_V8QImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], E_V8QImode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x2, 0, 2);
  operands[3] = x6;
  if (!s_register_operand (operands[3], E_V8QImode))
    return -1;
  switch (GET_MODE (operands[2]))
    {
    case E_V8QImode:
      if (!s_register_operand (operands[2], E_V8QImode)
          || !
#line 4793 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2475; /* neon_vtbx1v8qi */

    case E_TImode:
      if (!s_register_operand (operands[2], E_TImode)
          || !
#line 4804 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2476; /* neon_vtbx2v8qi */

    case E_EImode:
      if (!s_register_operand (operands[2], E_EImode)
          || !
#line 4826 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2477; /* neon_vtbx3v8qi */

    case E_OImode:
      if (!s_register_operand (operands[2], E_OImode)
          || !
#line 4849 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2478; /* neon_vtbx4v8qi */

    default:
      return -1;
    }
}

static int
recog_70 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  if (!const_int_coproc_operand (operands[1], E_SImode))
    return -1;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  switch (GET_MODE (operands[0]))
    {
    case E_SImode:
      if (pattern464 (x3, E_SImode) != 0
          || !
#line 2214 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_CDE && (TARGET_ARM_FP || TARGET_HAVE_MVE)))
        return -1;
      return 926; /* arm_vcx2si */

    case E_DImode:
      if (pattern464 (x3, E_DImode) != 0
          || !
#line 2214 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_CDE && (TARGET_ARM_FP || TARGET_HAVE_MVE)))
        return -1;
      return 927; /* arm_vcx2di */

    case E_V16QImode:
      if (!register_operand (operands[0], E_V16QImode)
          || GET_MODE (x3) != E_V16QImode
          || !register_operand (operands[2], E_V16QImode)
          || !const_int_mve_cde2_operand (operands[3], E_SImode)
          || !
#line 10396 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_CDE && TARGET_HAVE_MVE))
        return -1;
      return 4944; /* arm_vcx2qv16qi */

    default:
      return -1;
    }
}

static int
recog_71 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  if (!const_int_coproc_operand (operands[1], E_SImode))
    return -1;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  switch (GET_MODE (operands[0]))
    {
    case E_SImode:
      if (pattern463 (x3, E_SImode) != 0
          || !
#line 2203 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_CDE && (TARGET_ARM_FP || TARGET_HAVE_MVE)))
        return -1;
      return 924; /* arm_vcx1asi */

    case E_DImode:
      if (pattern463 (x3, E_DImode) != 0
          || !
#line 2203 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_CDE && (TARGET_ARM_FP || TARGET_HAVE_MVE)))
        return -1;
      return 925; /* arm_vcx1adi */

    case E_V16QImode:
      if (!register_operand (operands[0], E_V16QImode)
          || GET_MODE (x3) != E_V16QImode
          || !register_operand (operands[2], E_V16QImode)
          || !const_int_mve_cde1_operand (operands[3], E_SImode)
          || !
#line 10385 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_CDE && TARGET_HAVE_MVE))
        return -1;
      return 4943; /* arm_vcx1qav16qi */

    default:
      return -1;
    }
}

static int
recog_72 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_V2SImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!register_operand (operands[0], E_V2SImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!register_operand (operands[1], E_V2SImode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x2, 0, 2);
  operands[3] = x6;
  switch (GET_MODE (operands[2]))
    {
    case E_V8QImode:
      if (!register_operand (operands[2], E_V8QImode)
          || !register_operand (operands[3], E_V8QImode)
          || !
#line 1728 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 676; /* iwmmxt_wsadb */

    case E_V4HImode:
      if (!register_operand (operands[2], E_V4HImode)
          || !register_operand (operands[3], E_V4HImode)
          || !
#line 1740 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 677; /* iwmmxt_wsadh */

    default:
      return -1;
    }
}

static int
recog_73 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern44 (x1))
    {
    case 0:
      if (!
#line 4620 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2460; /* neon_vsli_nv8qi */

    case 1:
      if (!
#line 4620 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2461; /* neon_vsli_nv16qi */

    case 2:
      if (!
#line 4620 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2462; /* neon_vsli_nv4hi */

    case 3:
      if (!
#line 4620 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2463; /* neon_vsli_nv8hi */

    case 4:
      if (!
#line 4620 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2464; /* neon_vsli_nv2si */

    case 5:
      if (!
#line 4620 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2465; /* neon_vsli_nv4si */

    case 6:
      if (!
#line 4620 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2466; /* neon_vsli_ndi */

    case 7:
      if (!
#line 4620 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2467; /* neon_vsli_nv2di */

    default:
      return -1;
    }
}

static int
recog_74 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern44 (x1))
    {
    case 0:
      if (!
#line 4606 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2452; /* neon_vsri_nv8qi */

    case 1:
      if (!
#line 4606 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2453; /* neon_vsri_nv16qi */

    case 2:
      if (!
#line 4606 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2454; /* neon_vsri_nv4hi */

    case 3:
      if (!
#line 4606 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2455; /* neon_vsri_nv8hi */

    case 4:
      if (!
#line 4606 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2456; /* neon_vsri_nv2si */

    case 5:
      if (!
#line 4606 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2457; /* neon_vsri_nv4si */

    case 6:
      if (!
#line 4606 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2458; /* neon_vsri_ndi */

    case 7:
      if (!
#line 4606 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2459; /* neon_vsri_nv2di */

    default:
      return -1;
    }
}

static int
recog_75 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern44 (x1))
    {
    case 0:
      if (!
#line 4592 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2423; /* neon_vrsrau_nv8qi */

    case 1:
      if (!
#line 4592 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2427; /* neon_vrsrau_nv16qi */

    case 2:
      if (!
#line 4592 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2431; /* neon_vrsrau_nv4hi */

    case 3:
      if (!
#line 4592 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2435; /* neon_vrsrau_nv8hi */

    case 4:
      if (!
#line 4592 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2439; /* neon_vrsrau_nv2si */

    case 5:
      if (!
#line 4592 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2443; /* neon_vrsrau_nv4si */

    case 6:
      if (!
#line 4592 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2447; /* neon_vrsrau_ndi */

    case 7:
      if (!
#line 4592 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2451; /* neon_vrsrau_nv2di */

    default:
      return -1;
    }
}

static int
recog_76 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern44 (x1))
    {
    case 0:
      if (!
#line 4592 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2421; /* neon_vsrau_nv8qi */

    case 1:
      if (!
#line 4592 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2425; /* neon_vsrau_nv16qi */

    case 2:
      if (!
#line 4592 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2429; /* neon_vsrau_nv4hi */

    case 3:
      if (!
#line 4592 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2433; /* neon_vsrau_nv8hi */

    case 4:
      if (!
#line 4592 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2437; /* neon_vsrau_nv2si */

    case 5:
      if (!
#line 4592 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2441; /* neon_vsrau_nv4si */

    case 6:
      if (!
#line 4592 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2445; /* neon_vsrau_ndi */

    case 7:
      if (!
#line 4592 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2449; /* neon_vsrau_nv2di */

    default:
      return -1;
    }
}

static int
recog_77 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern44 (x1))
    {
    case 0:
      if (!
#line 4592 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2422; /* neon_vrsras_nv8qi */

    case 1:
      if (!
#line 4592 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2426; /* neon_vrsras_nv16qi */

    case 2:
      if (!
#line 4592 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2430; /* neon_vrsras_nv4hi */

    case 3:
      if (!
#line 4592 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2434; /* neon_vrsras_nv8hi */

    case 4:
      if (!
#line 4592 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2438; /* neon_vrsras_nv2si */

    case 5:
      if (!
#line 4592 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2442; /* neon_vrsras_nv4si */

    case 6:
      if (!
#line 4592 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2446; /* neon_vrsras_ndi */

    case 7:
      if (!
#line 4592 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2450; /* neon_vrsras_nv2di */

    default:
      return -1;
    }
}

static int
recog_78 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern44 (x1))
    {
    case 0:
      if (!
#line 4592 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2420; /* neon_vsras_nv8qi */

    case 1:
      if (!
#line 4592 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2424; /* neon_vsras_nv16qi */

    case 2:
      if (!
#line 4592 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2428; /* neon_vsras_nv4hi */

    case 3:
      if (!
#line 4592 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2432; /* neon_vsras_nv8hi */

    case 4:
      if (!
#line 4592 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2436; /* neon_vsras_nv2si */

    case 5:
      if (!
#line 4592 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2440; /* neon_vsras_nv4si */

    case 6:
      if (!
#line 4592 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2444; /* neon_vsras_ndi */

    case 7:
      if (!
#line 4592 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2448; /* neon_vsras_nv2di */

    default:
      return -1;
    }
}

static int
recog_79 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern34 (x1))
    {
    case 0:
      if (!
#line 2106 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1557; /* neon_vmlsv8qi_unspec */

    case 1:
      if (!
#line 2106 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1558; /* neon_vmlsv16qi_unspec */

    case 2:
      if (!
#line 2106 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1559; /* neon_vmlsv4hi_unspec */

    case 3:
      if (!
#line 2106 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1560; /* neon_vmlsv8hi_unspec */

    case 4:
      if (!
#line 2106 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1561; /* neon_vmlsv2si_unspec */

    case 5:
      if (!
#line 2106 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1562; /* neon_vmlsv4si_unspec */

    case 6:
      if (!
#line 2106 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1563; /* neon_vmlsv2sf_unspec */

    case 7:
      if (!
#line 2106 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1564; /* neon_vmlsv4sf_unspec */

    default:
      return -1;
    }
}

static int
recog_80 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern34 (x1))
    {
    case 0:
      if (!
#line 2063 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1543; /* neon_vmlav8qi_unspec */

    case 1:
      if (!
#line 2063 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1544; /* neon_vmlav16qi_unspec */

    case 2:
      if (!
#line 2063 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1545; /* neon_vmlav4hi_unspec */

    case 3:
      if (!
#line 2063 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1546; /* neon_vmlav8hi_unspec */

    case 4:
      if (!
#line 2063 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1547; /* neon_vmlav2si_unspec */

    case 5:
      if (!
#line 2063 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1548; /* neon_vmlav4si_unspec */

    case 6:
      if (!
#line 2063 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1549; /* neon_vmlav2sf_unspec */

    case 7:
      if (!
#line 2063 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1550; /* neon_vmlav4sf_unspec */

    default:
      return -1;
    }
}

static int
recog_81 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XVECEXP (x2, 0, 2);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != 105
      || GET_MODE (x3) != E_CCmode)
    return -1;
  x4 = XEXP (x1, 0);
  operands[0] = x4;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x5 = XVECEXP (x2, 0, 0);
  operands[1] = x5;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x6 = XVECEXP (x2, 0, 1);
  operands[2] = x6;
  if (!s_register_operand (operands[2], E_SImode)
      || !
#line 6180 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
    return -1;
  return 254; /* arm_sel */
}

static int
recog_82 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern46 (x1, E_XImode, E_OImode))
    {
    case 0:
      if (!
#line 5738 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2714; /* neon_vld4qbv16qi */

    case 1:
      if (!
#line 5738 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2715; /* neon_vld4qbv8hi */

    case 2:
      if (!
#line 5738 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2716; /* neon_vld4qbv8hf */

    case 3:
      if (!(
#line 5738 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 116 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
        return -1;
      return 2717; /* neon_vld4qbv8bf */

    case 4:
      if (!
#line 5738 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2718; /* neon_vld4qbv4si */

    case 5:
      if (!
#line 5738 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2719; /* neon_vld4qbv4sf */

    default:
      return -1;
    }
}

static int
recog_83 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern46 (x1, E_CImode, E_EImode))
    {
    case 0:
      if (!
#line 5409 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2646; /* neon_vld3qbv16qi */

    case 1:
      if (!
#line 5409 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2647; /* neon_vld3qbv8hi */

    case 2:
      if (!
#line 5409 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2648; /* neon_vld3qbv8hf */

    case 3:
      if (!(
#line 5409 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 116 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
        return -1;
      return 2649; /* neon_vld3qbv8bf */

    case 4:
      if (!
#line 5409 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2650; /* neon_vld3qbv4si */

    case 5:
      if (!
#line 5409 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2651; /* neon_vld3qbv4sf */

    default:
      return -1;
    }
}

static int
recog_84 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XVECEXP (x2, 0, 1);
  if (GET_CODE (x3) != CONST_INT)
    return -1;
  x4 = XEXP (x1, 0);
  operands[0] = x4;
  if (!register_operand (operands[0], E_SImode))
    return -1;
  x5 = XVECEXP (x2, 0, 0);
  operands[1] = x5;
  if (!register_operand (operands[1], E_SImode))
    return -1;
  x6 = XVECEXP (x2, 0, 2);
  operands[2] = x6;
  switch (XWINT (x3, 0))
    {
    case 4L:
      if (!
#line 6725 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_THUMB))
        return -1;
      return 261; /* pic_add_dot_plus_four */

    case 8L:
      if (!
#line 6741 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      return 262; /* pic_add_dot_plus_eight */

    default:
      return -1;
    }
}

static int
recog_85 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_V8HImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!mve_memory_operand (operands[0], E_V8HImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], E_V8HFmode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!vpr_register_operand (operands[2], E_V8BImode))
    return -1;
  x6 = XVECEXP (x2, 0, 2);
  if (!rtx_equal_p (x6, operands[0])
      || !
#line 8089 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
    return -1;
  return 4761; /* mve_vstrhq_p_fv8hf */
}

static int
recog_86 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  if (pnum_clobbers == NULL)
    return -1;
  x2 = XEXP (x1, 1);
  if (pattern110 (x2, 0, E_SImode) != 0)
    return -1;
  x3 = XEXP (x1, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != 0
      || GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XVECEXP (x2, 0, 1);
  operands[0] = x4;
  x5 = XVECEXP (x2, 0, 2);
  operands[1] = x5;
  if (!
#line 12326 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_GNU2_TLS))
    return -1;
  *pnum_clobbers = 3;
  return 409; /* tlscall */
}

static int
recog_87 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  if (!const_int_coproc_operand (operands[1], E_SImode))
    return -1;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  if (!s_register_operand (operands[2], E_SImode))
    return -1;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  if (!const_int_ccde2_operand (operands[3], E_SImode))
    return -1;
  switch (pattern431 (x3))
    {
    case 0:
      if (!
#line 4536 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_CDE))
        return -1;
      return 143; /* arm_cx2si */

    case 1:
      if (!
#line 4536 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_CDE))
        return -1;
      return 144; /* arm_cx2di */

    default:
      return -1;
    }
}

static int
recog_88 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern73 (x1))
    {
    case 0:
      if (!
#line 3306 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3873; /* mve_vpselq_sv16qi */

    case 1:
      if (!
#line 3306 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3875; /* mve_vpselq_sv8hi */

    case 2:
      if (!
#line 3306 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3877; /* mve_vpselq_sv4si */

    case 3:
      if (!
#line 3306 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3879; /* mve_vpselq_sv2di */

    default:
      return -1;
    }
}

static int
recog_89 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern73 (x1))
    {
    case 0:
      if (!
#line 3306 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3874; /* mve_vpselq_uv16qi */

    case 1:
      if (!
#line 3306 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3876; /* mve_vpselq_uv8hi */

    case 2:
      if (!
#line 3306 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3878; /* mve_vpselq_uv4si */

    case 3:
      if (!
#line 3306 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3880; /* mve_vpselq_uv2di */

    default:
      return -1;
    }
}

static int
recog_90 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern43 (x1))
    {
    case 0:
      if (!
#line 3916 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2178; /* neon_vqrdmulh_lanev8hi */

    case 1:
      if (!
#line 3916 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2180; /* neon_vqrdmulh_lanev4si */

    case 2:
      if (!
#line 3930 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2182; /* neon_vqrdmulh_lanev4hi */

    case 3:
      if (!
#line 3930 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2184; /* neon_vqrdmulh_lanev2si */

    default:
      return -1;
    }
}

static int
recog_91 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern43 (x1))
    {
    case 0:
      if (!
#line 3916 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2177; /* neon_vqdmulh_lanev8hi */

    case 1:
      if (!
#line 3916 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2179; /* neon_vqdmulh_lanev4si */

    case 2:
      if (!
#line 3930 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2181; /* neon_vqdmulh_lanev4hi */

    case 3:
      if (!
#line 3930 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2183; /* neon_vqdmulh_lanev2si */

    default:
      return -1;
    }
}

static int
recog_92 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern37 (x1))
    {
    case 0:
      if (!
#line 2143 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
        return -1;
      return 1580; /* neon_vqrdmlshv4hi */

    case 1:
      if (!
#line 2143 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
        return -1;
      return 1582; /* neon_vqrdmlshv2si */

    case 2:
      if (!
#line 2143 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
        return -1;
      return 1584; /* neon_vqrdmlshv8hi */

    case 3:
      if (!
#line 2143 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
        return -1;
      return 1586; /* neon_vqrdmlshv4si */

    default:
      return -1;
    }
}

static int
recog_93 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern37 (x1))
    {
    case 0:
      if (!
#line 2143 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
        return -1;
      return 1579; /* neon_vqrdmlahv4hi */

    case 1:
      if (!
#line 2143 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
        return -1;
      return 1581; /* neon_vqrdmlahv2si */

    case 2:
      if (!
#line 2143 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
        return -1;
      return 1583; /* neon_vqrdmlahv8hi */

    case 3:
      if (!
#line 2143 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
        return -1;
      return 1585; /* neon_vqrdmlahv4si */

    default:
      return -1;
    }
}

static int
recog_94 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  if (!const_int_coproc_operand (operands[1], E_SImode))
    return -1;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  if (!const_int_ccde1_operand (operands[3], E_SImode))
    return -1;
  switch (pattern462 (x3))
    {
    case 0:
      if (!
#line 4525 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_CDE))
        return -1;
      return 141; /* arm_cx1asi */

    case 1:
      if (!
#line 4525 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_CDE))
        return -1;
      return 142; /* arm_cx1adi */

    default:
      return -1;
    }
}

static int
recog_95 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  switch (GET_CODE (operands[1]))
    {
    case REG:
    case SUBREG:
      switch (GET_MODE (operands[0]))
        {
        case E_V8QImode:
          if (!neon_permissive_struct_operand (operands[0], E_V8QImode)
              || GET_MODE (x3) != E_V8QImode
              || !s_register_operand (operands[1], E_V8QImode)
              || !
#line 287 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 1090; /* *movmisalignv8qi_neon_store */

        case E_V4HImode:
          if (!neon_permissive_struct_operand (operands[0], E_V4HImode)
              || GET_MODE (x3) != E_V4HImode
              || !s_register_operand (operands[1], E_V4HImode)
              || !
#line 287 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 1091; /* *movmisalignv4hi_neon_store */

        case E_V4HFmode:
          if (!neon_permissive_struct_operand (operands[0], E_V4HFmode)
              || GET_MODE (x3) != E_V4HFmode
              || !s_register_operand (operands[1], E_V4HFmode)
              || !
#line 287 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 1092; /* *movmisalignv4hf_neon_store */

        case E_V4BFmode:
          if (!neon_permissive_struct_operand (operands[0], E_V4BFmode)
              || GET_MODE (x3) != E_V4BFmode
              || !s_register_operand (operands[1], E_V4BFmode)
              || !
#line 287 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 1093; /* *movmisalignv4bf_neon_store */

        case E_V2SImode:
          if (!neon_permissive_struct_operand (operands[0], E_V2SImode)
              || GET_MODE (x3) != E_V2SImode
              || !s_register_operand (operands[1], E_V2SImode)
              || !
#line 287 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 1094; /* *movmisalignv2si_neon_store */

        case E_V2SFmode:
          if (!neon_permissive_struct_operand (operands[0], E_V2SFmode)
              || GET_MODE (x3) != E_V2SFmode
              || !s_register_operand (operands[1], E_V2SFmode)
              || !
#line 287 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 1095; /* *movmisalignv2sf_neon_store */

        case E_DImode:
          if (!neon_permissive_struct_operand (operands[0], E_DImode)
              || GET_MODE (x3) != E_DImode
              || !s_register_operand (operands[1], E_DImode)
              || !
#line 287 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 1096; /* *movmisaligndi_neon_store */

        case E_V16QImode:
          if (GET_MODE (x3) != E_V16QImode
              || !s_register_operand (operands[1], E_V16QImode))
            return -1;
          if (neon_permissive_struct_operand (operands[0], E_V16QImode)
              && 
#line 304 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return 1104; /* *movmisalignv16qi_neon_store */
          if (!mve_memory_operand (operands[0], E_V16QImode)
              || !
#line 10484 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V16QImode))
    || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V16QImode)))
   && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 4954; /* *movmisalignv16qi_mve_store */

        case E_V8HImode:
          if (GET_MODE (x3) != E_V8HImode
              || !s_register_operand (operands[1], E_V8HImode))
            return -1;
          if (neon_permissive_struct_operand (operands[0], E_V8HImode)
              && 
#line 304 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return 1105; /* *movmisalignv8hi_neon_store */
          if (!mve_memory_operand (operands[0], E_V8HImode)
              || !
#line 10484 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V8HImode))
    || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V8HImode)))
   && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 4955; /* *movmisalignv8hi_mve_store */

        case E_V8HFmode:
          if (GET_MODE (x3) != E_V8HFmode
              || !s_register_operand (operands[1], E_V8HFmode))
            return -1;
          if (neon_permissive_struct_operand (operands[0], E_V8HFmode)
              && 
#line 304 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return 1106; /* *movmisalignv8hf_neon_store */
          if (!mve_memory_operand (operands[0], E_V8HFmode)
              || !
#line 10484 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V8HFmode))
    || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V8HFmode)))
   && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 4957; /* *movmisalignv8hf_mve_store */

        case E_V8BFmode:
          if (!neon_permissive_struct_operand (operands[0], E_V8BFmode)
              || GET_MODE (x3) != E_V8BFmode
              || !s_register_operand (operands[1], E_V8BFmode)
              || !
#line 304 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 1107; /* *movmisalignv8bf_neon_store */

        case E_V4SImode:
          if (GET_MODE (x3) != E_V4SImode
              || !s_register_operand (operands[1], E_V4SImode))
            return -1;
          if (neon_permissive_struct_operand (operands[0], E_V4SImode)
              && 
#line 304 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return 1108; /* *movmisalignv4si_neon_store */
          if (!mve_memory_operand (operands[0], E_V4SImode)
              || !
#line 10484 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V4SImode))
    || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V4SImode)))
   && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 4956; /* *movmisalignv4si_mve_store */

        case E_V4SFmode:
          if (GET_MODE (x3) != E_V4SFmode
              || !s_register_operand (operands[1], E_V4SFmode))
            return -1;
          if (neon_permissive_struct_operand (operands[0], E_V4SFmode)
              && 
#line 304 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return 1109; /* *movmisalignv4sf_neon_store */
          if (!mve_memory_operand (operands[0], E_V4SFmode)
              || !
#line 10484 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V4SFmode))
    || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V4SFmode)))
   && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 4958; /* *movmisalignv4sf_mve_store */

        case E_V2DImode:
          if (!neon_permissive_struct_operand (operands[0], E_V2DImode)
              || GET_MODE (x3) != E_V2DImode
              || !s_register_operand (operands[1], E_V2DImode)
              || !
#line 304 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 1110; /* *movmisalignv2di_neon_store */

        default:
          return -1;
        }

    case MEM:
      switch (GET_MODE (operands[0]))
        {
        case E_V8QImode:
          if (!s_register_operand (operands[0], E_V8QImode)
              || GET_MODE (x3) != E_V8QImode
              || !neon_permissive_struct_operand (operands[1], E_V8QImode)
              || !
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 1097; /* *movmisalignv8qi_neon_load */

        case E_V4HImode:
          if (!s_register_operand (operands[0], E_V4HImode)
              || GET_MODE (x3) != E_V4HImode
              || !neon_permissive_struct_operand (operands[1], E_V4HImode)
              || !
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 1098; /* *movmisalignv4hi_neon_load */

        case E_V4HFmode:
          if (!s_register_operand (operands[0], E_V4HFmode)
              || GET_MODE (x3) != E_V4HFmode
              || !neon_permissive_struct_operand (operands[1], E_V4HFmode)
              || !
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 1099; /* *movmisalignv4hf_neon_load */

        case E_V4BFmode:
          if (!s_register_operand (operands[0], E_V4BFmode)
              || GET_MODE (x3) != E_V4BFmode
              || !neon_permissive_struct_operand (operands[1], E_V4BFmode)
              || !
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 1100; /* *movmisalignv4bf_neon_load */

        case E_V2SImode:
          if (!s_register_operand (operands[0], E_V2SImode)
              || GET_MODE (x3) != E_V2SImode
              || !neon_permissive_struct_operand (operands[1], E_V2SImode)
              || !
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 1101; /* *movmisalignv2si_neon_load */

        case E_V2SFmode:
          if (!s_register_operand (operands[0], E_V2SFmode)
              || GET_MODE (x3) != E_V2SFmode
              || !neon_permissive_struct_operand (operands[1], E_V2SFmode)
              || !
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 1102; /* *movmisalignv2sf_neon_load */

        case E_DImode:
          if (!s_register_operand (operands[0], E_DImode)
              || GET_MODE (x3) != E_DImode
              || !neon_permissive_struct_operand (operands[1], E_DImode)
              || !
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 1103; /* *movmisaligndi_neon_load */

        case E_V16QImode:
          if (!s_register_operand (operands[0], E_V16QImode)
              || GET_MODE (x3) != E_V16QImode)
            return -1;
          if (neon_permissive_struct_operand (operands[1], E_V16QImode)
              && 
#line 313 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return 1111; /* *movmisalignv16qi_neon_load */
          if (!mve_memory_operand (operands[1], E_V16QImode)
              || !
#line 10496 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V16QImode))
    || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V16QImode)))
   && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 4959; /* *movmisalignv16qi_mve_load */

        case E_V8HImode:
          if (!s_register_operand (operands[0], E_V8HImode)
              || GET_MODE (x3) != E_V8HImode)
            return -1;
          if (neon_permissive_struct_operand (operands[1], E_V8HImode)
              && 
#line 313 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return 1112; /* *movmisalignv8hi_neon_load */
          if (!mve_memory_operand (operands[1], E_V8HImode)
              || !
#line 10496 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V8HImode))
    || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V8HImode)))
   && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 4960; /* *movmisalignv8hi_mve_load */

        case E_V8HFmode:
          if (!s_register_operand (operands[0], E_V8HFmode)
              || GET_MODE (x3) != E_V8HFmode)
            return -1;
          if (neon_permissive_struct_operand (operands[1], E_V8HFmode)
              && 
#line 313 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return 1113; /* *movmisalignv8hf_neon_load */
          if (!mve_memory_operand (operands[1], E_V8HFmode)
              || !
#line 10496 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V8HFmode))
    || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V8HFmode)))
   && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 4962; /* *movmisalignv8hf_mve_load */

        case E_V8BFmode:
          if (!s_register_operand (operands[0], E_V8BFmode)
              || GET_MODE (x3) != E_V8BFmode
              || !neon_permissive_struct_operand (operands[1], E_V8BFmode)
              || !
#line 313 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 1114; /* *movmisalignv8bf_neon_load */

        case E_V4SImode:
          if (!s_register_operand (operands[0], E_V4SImode)
              || GET_MODE (x3) != E_V4SImode)
            return -1;
          if (neon_permissive_struct_operand (operands[1], E_V4SImode)
              && 
#line 313 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return 1115; /* *movmisalignv4si_neon_load */
          if (!mve_memory_operand (operands[1], E_V4SImode)
              || !
#line 10496 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V4SImode))
    || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V4SImode)))
   && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 4961; /* *movmisalignv4si_mve_load */

        case E_V4SFmode:
          if (!s_register_operand (operands[0], E_V4SFmode)
              || GET_MODE (x3) != E_V4SFmode)
            return -1;
          if (neon_permissive_struct_operand (operands[1], E_V4SFmode)
              && 
#line 313 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return 1116; /* *movmisalignv4sf_neon_load */
          if (!mve_memory_operand (operands[1], E_V4SFmode)
              || !
#line 10496 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V4SFmode))
    || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V4SFmode)))
   && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 4963; /* *movmisalignv4sf_mve_load */

        case E_V2DImode:
          if (!s_register_operand (operands[0], E_V2DImode)
              || GET_MODE (x3) != E_V2DImode
              || !neon_permissive_struct_operand (operands[1], E_V2DImode)
              || !
#line 313 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 1117; /* *movmisalignv2di_neon_load */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_96 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  switch (GET_MODE (operands[0]))
    {
    case E_V8QImode:
      if (!neon_struct_operand (operands[0], E_V8QImode)
          || GET_MODE (x3) != E_V8QImode
          || !s_register_operand (operands[1], E_V8QImode)
          || !
#line 5065 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2549; /* neon_vst1v8qi */

    case E_V16QImode:
      if (!neon_struct_operand (operands[0], E_V16QImode)
          || GET_MODE (x3) != E_V16QImode
          || !s_register_operand (operands[1], E_V16QImode)
          || !
#line 5065 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2550; /* neon_vst1v16qi */

    case E_V4HImode:
      if (!neon_struct_operand (operands[0], E_V4HImode)
          || GET_MODE (x3) != E_V4HImode
          || !s_register_operand (operands[1], E_V4HImode)
          || !
#line 5065 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2551; /* neon_vst1v4hi */

    case E_V8HImode:
      if (!neon_struct_operand (operands[0], E_V8HImode)
          || GET_MODE (x3) != E_V8HImode
          || !s_register_operand (operands[1], E_V8HImode)
          || !
#line 5065 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2552; /* neon_vst1v8hi */

    case E_V2SImode:
      if (!neon_struct_operand (operands[0], E_V2SImode)
          || GET_MODE (x3) != E_V2SImode
          || !s_register_operand (operands[1], E_V2SImode)
          || !
#line 5065 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2553; /* neon_vst1v2si */

    case E_V4SImode:
      if (!neon_struct_operand (operands[0], E_V4SImode)
          || GET_MODE (x3) != E_V4SImode
          || !s_register_operand (operands[1], E_V4SImode)
          || !
#line 5065 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2554; /* neon_vst1v4si */

    case E_V4HFmode:
      if (!neon_struct_operand (operands[0], E_V4HFmode)
          || GET_MODE (x3) != E_V4HFmode
          || !s_register_operand (operands[1], E_V4HFmode)
          || !
#line 5065 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2555; /* neon_vst1v4hf */

    case E_V8HFmode:
      if (!neon_struct_operand (operands[0], E_V8HFmode)
          || GET_MODE (x3) != E_V8HFmode
          || !s_register_operand (operands[1], E_V8HFmode)
          || !
#line 5065 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2556; /* neon_vst1v8hf */

    case E_V4BFmode:
      if (!neon_struct_operand (operands[0], E_V4BFmode)
          || GET_MODE (x3) != E_V4BFmode
          || !s_register_operand (operands[1], E_V4BFmode)
          || !
#line 5065 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2557; /* neon_vst1v4bf */

    case E_V8BFmode:
      if (!neon_struct_operand (operands[0], E_V8BFmode)
          || GET_MODE (x3) != E_V8BFmode
          || !s_register_operand (operands[1], E_V8BFmode)
          || !
#line 5065 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2558; /* neon_vst1v8bf */

    case E_V2SFmode:
      if (!neon_struct_operand (operands[0], E_V2SFmode)
          || GET_MODE (x3) != E_V2SFmode
          || !s_register_operand (operands[1], E_V2SFmode)
          || !
#line 5065 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2559; /* neon_vst1v2sf */

    case E_V4SFmode:
      if (!neon_struct_operand (operands[0], E_V4SFmode)
          || GET_MODE (x3) != E_V4SFmode
          || !s_register_operand (operands[1], E_V4SFmode)
          || !
#line 5065 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2560; /* neon_vst1v4sf */

    case E_DImode:
      if (!neon_struct_operand (operands[0], E_DImode)
          || GET_MODE (x3) != E_DImode
          || !s_register_operand (operands[1], E_DImode)
          || !
#line 5065 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2561; /* neon_vst1di */

    case E_V2DImode:
      if (!neon_struct_operand (operands[0], E_V2DImode)
          || GET_MODE (x3) != E_V2DImode
          || !s_register_operand (operands[1], E_V2DImode)
          || !
#line 5065 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2562; /* neon_vst1v2di */

    default:
      return -1;
    }
}

static int
recog_97 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  switch (GET_MODE (operands[0]))
    {
    case E_V8QImode:
      if (!s_register_operand (operands[0], E_V8QImode)
          || GET_MODE (x3) != E_V8QImode
          || !neon_struct_operand (operands[1], E_V8QImode)
          || !
#line 4955 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2509; /* neon_vld1v8qi */

    case E_V16QImode:
      if (!s_register_operand (operands[0], E_V16QImode)
          || GET_MODE (x3) != E_V16QImode
          || !neon_struct_operand (operands[1], E_V16QImode)
          || !
#line 4955 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2510; /* neon_vld1v16qi */

    case E_V4HImode:
      if (!s_register_operand (operands[0], E_V4HImode)
          || GET_MODE (x3) != E_V4HImode
          || !neon_struct_operand (operands[1], E_V4HImode)
          || !
#line 4955 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2511; /* neon_vld1v4hi */

    case E_V8HImode:
      if (!s_register_operand (operands[0], E_V8HImode)
          || GET_MODE (x3) != E_V8HImode
          || !neon_struct_operand (operands[1], E_V8HImode)
          || !
#line 4955 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2512; /* neon_vld1v8hi */

    case E_V2SImode:
      if (!s_register_operand (operands[0], E_V2SImode)
          || GET_MODE (x3) != E_V2SImode
          || !neon_struct_operand (operands[1], E_V2SImode)
          || !
#line 4955 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2513; /* neon_vld1v2si */

    case E_V4SImode:
      if (!s_register_operand (operands[0], E_V4SImode)
          || GET_MODE (x3) != E_V4SImode
          || !neon_struct_operand (operands[1], E_V4SImode)
          || !
#line 4955 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2514; /* neon_vld1v4si */

    case E_V4HFmode:
      if (!s_register_operand (operands[0], E_V4HFmode)
          || GET_MODE (x3) != E_V4HFmode
          || !neon_struct_operand (operands[1], E_V4HFmode)
          || !
#line 4955 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2515; /* neon_vld1v4hf */

    case E_V8HFmode:
      if (!s_register_operand (operands[0], E_V8HFmode)
          || GET_MODE (x3) != E_V8HFmode
          || !neon_struct_operand (operands[1], E_V8HFmode)
          || !
#line 4955 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2516; /* neon_vld1v8hf */

    case E_V4BFmode:
      if (!s_register_operand (operands[0], E_V4BFmode)
          || GET_MODE (x3) != E_V4BFmode
          || !neon_struct_operand (operands[1], E_V4BFmode)
          || !
#line 4955 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2517; /* neon_vld1v4bf */

    case E_V8BFmode:
      if (!s_register_operand (operands[0], E_V8BFmode)
          || GET_MODE (x3) != E_V8BFmode
          || !neon_struct_operand (operands[1], E_V8BFmode)
          || !
#line 4955 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2518; /* neon_vld1v8bf */

    case E_V2SFmode:
      if (!s_register_operand (operands[0], E_V2SFmode)
          || GET_MODE (x3) != E_V2SFmode
          || !neon_struct_operand (operands[1], E_V2SFmode)
          || !
#line 4955 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2519; /* neon_vld1v2sf */

    case E_V4SFmode:
      if (!s_register_operand (operands[0], E_V4SFmode)
          || GET_MODE (x3) != E_V4SFmode
          || !neon_struct_operand (operands[1], E_V4SFmode)
          || !
#line 4955 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2520; /* neon_vld1v4sf */

    case E_DImode:
      if (!s_register_operand (operands[0], E_DImode)
          || GET_MODE (x3) != E_DImode
          || !neon_struct_operand (operands[1], E_DImode)
          || !
#line 4955 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2521; /* neon_vld1di */

    case E_V2DImode:
      if (!s_register_operand (operands[0], E_V2DImode)
          || GET_MODE (x3) != E_V2DImode
          || !neon_struct_operand (operands[1], E_V2DImode)
          || !
#line 4955 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2522; /* neon_vld1v2di */

    default:
      return -1;
    }
}

static int
recog_98 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  switch (GET_MODE (operands[0]))
    {
    case E_V8QImode:
      if (!s_register_operand (operands[0], E_V8QImode)
          || GET_MODE (x3) != E_V8QImode
          || !s_register_operand (operands[1], E_V8QImode)
          || !
#line 4397 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2231; /* neon_vrev64v8qi */

    case E_V16QImode:
      if (!s_register_operand (operands[0], E_V16QImode)
          || GET_MODE (x3) != E_V16QImode
          || !s_register_operand (operands[1], E_V16QImode)
          || !
#line 4397 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2232; /* neon_vrev64v16qi */

    case E_V4HImode:
      if (!s_register_operand (operands[0], E_V4HImode)
          || GET_MODE (x3) != E_V4HImode
          || !s_register_operand (operands[1], E_V4HImode)
          || !
#line 4397 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2233; /* neon_vrev64v4hi */

    case E_V8HImode:
      if (!s_register_operand (operands[0], E_V8HImode)
          || GET_MODE (x3) != E_V8HImode
          || !s_register_operand (operands[1], E_V8HImode)
          || !
#line 4397 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2234; /* neon_vrev64v8hi */

    case E_V2SImode:
      if (!s_register_operand (operands[0], E_V2SImode)
          || GET_MODE (x3) != E_V2SImode
          || !s_register_operand (operands[1], E_V2SImode)
          || !
#line 4397 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2235; /* neon_vrev64v2si */

    case E_V4SImode:
      if (!s_register_operand (operands[0], E_V4SImode)
          || GET_MODE (x3) != E_V4SImode
          || !s_register_operand (operands[1], E_V4SImode)
          || !
#line 4397 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2236; /* neon_vrev64v4si */

    case E_V4HFmode:
      if (!s_register_operand (operands[0], E_V4HFmode)
          || GET_MODE (x3) != E_V4HFmode
          || !s_register_operand (operands[1], E_V4HFmode)
          || !
#line 4397 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2237; /* neon_vrev64v4hf */

    case E_V8HFmode:
      if (!s_register_operand (operands[0], E_V8HFmode)
          || GET_MODE (x3) != E_V8HFmode
          || !s_register_operand (operands[1], E_V8HFmode)
          || !
#line 4397 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2238; /* neon_vrev64v8hf */

    case E_V2SFmode:
      if (!s_register_operand (operands[0], E_V2SFmode)
          || GET_MODE (x3) != E_V2SFmode
          || !s_register_operand (operands[1], E_V2SFmode)
          || !
#line 4397 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2239; /* neon_vrev64v2sf */

    case E_V4SFmode:
      if (!s_register_operand (operands[0], E_V4SFmode)
          || GET_MODE (x3) != E_V4SFmode
          || !s_register_operand (operands[1], E_V4SFmode)
          || !
#line 4397 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2240; /* neon_vrev64v4sf */

    case E_V2DImode:
      if (!s_register_operand (operands[0], E_V2DImode)
          || GET_MODE (x3) != E_V2DImode
          || !s_register_operand (operands[1], E_V2DImode)
          || !
#line 4397 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2241; /* neon_vrev64v2di */

    default:
      return -1;
    }
}

static int
recog_99 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  switch (GET_MODE (operands[0]))
    {
    case E_V4BFmode:
      if (!register_operand (operands[0], E_V4BFmode)
          || GET_MODE (x3) != E_V4BFmode
          || !register_operand (operands[1], E_V4SFmode)
          || !
#line 6393 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
        return -1;
      return 2834; /* neon_vbfcvtv4sfv4bf */

    case E_V8BFmode:
      if (!register_operand (operands[0], E_V8BFmode)
          || GET_MODE (x3) != E_V8BFmode
          || !register_operand (operands[1], E_V4SFmode)
          || !
#line 6393 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
        return -1;
      return 2835; /* neon_vbfcvtv4sfv8bf */

    case E_BFmode:
      if (!register_operand (operands[0], E_BFmode)
          || GET_MODE (x3) != E_BFmode
          || !register_operand (operands[1], E_SFmode)
          || !
#line 6412 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_BF16_FP))
        return -1;
      return 2837; /* neon_vbfcvtsf */

    case E_V4SFmode:
      if (!register_operand (operands[0], E_V4SFmode)
          || GET_MODE (x3) != E_V4SFmode)
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case E_V4BFmode:
          if (!register_operand (operands[1], E_V4BFmode)
              || !
#line 6421 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
            return -1;
          return 2838; /* neon_vbfcvtv4bf */

        case E_V8BFmode:
          if (!register_operand (operands[1], E_V8BFmode)
              || !
#line 6421 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
            return -1;
          return 2839; /* neon_vbfcvtv8bf */

        default:
          return -1;
        }

    case E_V2SImode:
      if (!register_operand (operands[0], E_V2SImode)
          || GET_MODE (x3) != E_V2SImode
          || !register_operand (operands[1], E_BFmode)
          || !
#line 6462 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_BF16_FP))
        return -1;
      return 2841; /* neon_vbfcvtbf_cvtmodev2si */

    case E_SFmode:
      if (!register_operand (operands[0], E_SFmode)
          || GET_MODE (x3) != E_SFmode
          || !register_operand (operands[1], E_V2SImode)
          || !
#line 6462 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_BF16_FP))
        return -1;
      return 2842; /* neon_vbfcvtbf_cvtmodesf */

    default:
      return -1;
    }
}

static int
recog_100 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_V16QImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  x4 = XVECEXP (x2, 0, 0);
  switch (GET_CODE (x4))
    {
    case CONST_INT:
    case CONST_WIDE_INT:
    case CONST_POLY_INT:
    case CONST_FIXED:
    case CONST_DOUBLE:
    case CONST_VECTOR:
    case CONST:
    case REG:
    case SUBREG:
    case MEM:
    case LABEL_REF:
    case SYMBOL_REF:
    case HIGH:
      operands[1] = x4;
      if (!general_operand (operands[1], E_V16QImode)
          || !register_operand (operands[0], E_V16QImode)
          || !
#line 75 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO && fix_aes_erratum_1742098))
        return -1;
      return 2852; /* aes_op_protect */

    case UNSPEC:
      if (XVECLEN (x4, 0) != 1
          || GET_MODE (x4) != E_V16QImode)
        return -1;
      switch (XINT (x4, 1))
        {
        case 344:
          if (!s_register_operand (operands[0], E_V16QImode))
            return -1;
          x5 = XVECEXP (x4, 0, 0);
          operands[1] = x5;
          if (!neon_permissive_struct_operand (operands[1], E_V16QImode)
              || !
#line 100 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO && fix_aes_erratum_1742098))
            return -1;
          return 2853; /* *aes_op_protect_misalign_load */

        case 198:
          if (!s_register_operand (operands[0], E_V16QImode))
            return -1;
          x5 = XVECEXP (x4, 0, 0);
          operands[1] = x5;
          if (!neon_struct_operand (operands[1], E_V16QImode)
              || !
#line 112 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/crypto.md"
(TARGET_NEON))
            return -1;
          return 2854; /* aes_op_protect_neon_vld1v16qi */

        case 132:
          x5 = XVECEXP (x4, 0, 0);
          switch (pattern466 (x5, 130))
            {
            case 0:
              if (!
#line 126 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO && fix_aes_erratum_1742098))
                return -1;
              return 2855; /* *crypto_aesmc_protected */

            case 1:
              if (!
#line 163 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO && fix_aes_erratum_1742098
   && arm_fusion_enabled_p (tune_params::FUSE_AES_AESMC)))
                return -1;
              return 2858; /* *aarch32_crypto_aese_fused_protected */

            default:
              return -1;
            }

        case 131:
          x5 = XVECEXP (x4, 0, 0);
          switch (pattern466 (x5, 129))
            {
            case 0:
              if (!
#line 126 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO && fix_aes_erratum_1742098))
                return -1;
              return 2856; /* *crypto_aesimc_protected */

            case 1:
              if (!
#line 200 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO && fix_aes_erratum_1742098
   && arm_fusion_enabled_p (tune_params::FUSE_AES_AESMC)))
                return -1;
              return 2860; /* *aarch32_crypto_aesd_fused_protected */

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_101 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_V8QImode)
    return -1;
  x3 = XVECEXP (x2, 0, 0);
  if (GET_CODE (x3) != SUBREG
      || maybe_ne (SUBREG_BYTE (x3), 0)
      || GET_MODE (x3) != E_V8QImode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != ASHIFTRT
      || GET_MODE (x4) != E_TImode)
    return -1;
  x5 = XEXP (x4, 0);
  if (GET_CODE (x5) != SUBREG
      || maybe_ne (SUBREG_BYTE (x5), 0)
      || GET_MODE (x5) != E_TImode)
    return -1;
  x6 = XEXP (x5, 0);
  if (GET_CODE (x6) != VEC_CONCAT
      || GET_MODE (x6) != E_V16QImode)
    return -1;
  x7 = XEXP (x4, 1);
  if (GET_CODE (x7) != MULT
      || GET_MODE (x7) != E_SImode)
    return -1;
  x8 = XEXP (x7, 1);
  if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x9 = XEXP (x1, 0);
  operands[0] = x9;
  if (!register_operand (operands[0], E_V8QImode))
    return -1;
  x10 = XEXP (x6, 0);
  operands[1] = x10;
  if (!register_operand (operands[1], E_V8QImode))
    return -1;
  x11 = XEXP (x6, 1);
  operands[2] = x11;
  if (!register_operand (operands[2], E_V8QImode))
    return -1;
  x12 = XEXP (x7, 0);
  operands[3] = x12;
  if (!immediate_operand (operands[3], E_SImode)
      || !
#line 1641 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
    return -1;
  return 670; /* iwmmxt_waligni */
}

static int
recog_102 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  switch (GET_MODE (operands[0]))
    {
    case E_V8QImode:
      if (!s_register_operand (operands[0], E_V8QImode)
          || GET_MODE (x3) != E_V8QImode
          || !s_register_operand (operands[1], E_V8QImode)
          || !
#line 4406 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2242; /* neon_vrev32v8qi */

    case E_V4HImode:
      if (!s_register_operand (operands[0], E_V4HImode)
          || GET_MODE (x3) != E_V4HImode
          || !s_register_operand (operands[1], E_V4HImode)
          || !
#line 4406 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2243; /* neon_vrev32v4hi */

    case E_V16QImode:
      if (!s_register_operand (operands[0], E_V16QImode)
          || GET_MODE (x3) != E_V16QImode
          || !s_register_operand (operands[1], E_V16QImode)
          || !
#line 4406 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2244; /* neon_vrev32v16qi */

    case E_V8HImode:
      if (!s_register_operand (operands[0], E_V8HImode)
          || GET_MODE (x3) != E_V8HImode
          || !s_register_operand (operands[1], E_V8HImode)
          || !
#line 4406 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2245; /* neon_vrev32v8hi */

    default:
      return -1;
    }
}

static int
recog_103 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  switch (GET_MODE (operands[0]))
    {
    case E_DImode:
      if (!memory_operand (operands[0], E_DImode)
          || GET_MODE (x3) != E_DImode
          || !s_register_operand (operands[1], E_DImode)
          || !
#line 5047 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && TARGET_LDRD))
        return -1;
      return 161; /* unaligned_storedi */

    case E_SImode:
      if (!memory_operand (operands[0], E_SImode)
          || GET_MODE (x3) != E_SImode
          || !s_register_operand (operands[1], E_SImode)
          || !
#line 5058 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(unaligned_access))
        return -1;
      return 162; /* unaligned_storesi */

    case E_HImode:
      if (!memory_operand (operands[0], E_HImode)
          || GET_MODE (x3) != E_HImode
          || !s_register_operand (operands[1], E_HImode)
          || !
#line 5073 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(unaligned_access))
        return -1;
      return 163; /* unaligned_storehi */

    case E_V8QImode:
      if (!memory_operand (operands[0], E_V8QImode)
          || GET_MODE (x3) != E_V8QImode
          || !s_register_operand (operands[1], E_V8QImode)
          || !
#line 30 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1070; /* unaligned_storev8qi */

    default:
      return -1;
    }
}

static int
recog_104 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_V16BImode:
      if (!vpr_register_operand (operands[0], E_V16BImode)
          || GET_MODE (x3) != E_V16BImode
          || !
#line 652 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3166; /* mve_vctp8qv16bi */

    case E_V8BImode:
      if (!vpr_register_operand (operands[0], E_V8BImode)
          || GET_MODE (x3) != E_V8BImode
          || !
#line 652 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3167; /* mve_vctp16qv8bi */

    case E_V4BImode:
      if (!vpr_register_operand (operands[0], E_V4BImode)
          || GET_MODE (x3) != E_V4BImode
          || !
#line 652 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3168; /* mve_vctp32qv4bi */

    case E_V2QImode:
      if (!vpr_register_operand (operands[0], E_V2QImode)
          || GET_MODE (x3) != E_V2QImode
          || !
#line 652 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3169; /* mve_vctp64qv2qi */

    default:
      return -1;
    }
}

static int
recog_105 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  switch (GET_MODE (operands[0]))
    {
    case E_V2SImode:
      if (!register_operand (operands[0], E_V2SImode)
          || GET_MODE (x3) != E_V2SImode
          || !register_operand (operands[1], E_V2SImode)
          || !
#line 24 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 680; /* iwmmxt_wabsv2si3 */

    case E_V4HImode:
      if (!register_operand (operands[0], E_V4HImode)
          || GET_MODE (x3) != E_V4HImode
          || !register_operand (operands[1], E_V4HImode)
          || !
#line 24 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 681; /* iwmmxt_wabsv4hi3 */

    case E_V8QImode:
      if (!register_operand (operands[0], E_V8QImode)
          || GET_MODE (x3) != E_V8QImode
          || !register_operand (operands[1], E_V8QImode)
          || !
#line 24 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 682; /* iwmmxt_wabsv8qi3 */

    default:
      return -1;
    }
}

static int
recog_106 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XVECEXP (x2, 0, 0);
  if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x4 = XEXP (x1, 0);
  operands[0] = x4;
  if (register_operand (operands[0], E_SImode)
      && 
#line 12277 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_HARD_TP))
    return 405; /* load_tp_hard */
  if (pnum_clobbers == NULL
      || GET_CODE (x4) != REG
      || REGNO (x4) != 0
      || GET_MODE (x4) != E_SImode)
    return -1;
  if (
#line 12299 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_SOFT_TP && TARGET_FDPIC))
    {
      *pnum_clobbers = 4;
      return 407; /* load_tp_soft_fdpic */
    }
  if (!
#line 12311 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_SOFT_TP && !TARGET_FDPIC))
    return -1;
  *pnum_clobbers = 3;
  return 408; /* load_tp_soft */
}

static int
recog_107 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_V4SImode)
    return -1;
  x3 = XVECEXP (x2, 0, 0);
  if (GET_CODE (x3) != VEC_SELECT
      || GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) != PARALLEL
      || XVECLEN (x4, 0) != 1)
    return -1;
  x5 = XEXP (x1, 0);
  operands[0] = x5;
  if (!register_operand (operands[0], E_V4SImode))
    return -1;
  x6 = XEXP (x3, 0);
  operands[1] = x6;
  if (!register_operand (operands[1], E_V4SImode))
    return -1;
  x7 = XVECEXP (x4, 0, 0);
  operands[2] = x7;
  if (!immediate_operand (operands[2], E_SImode)
      || !
#line 252 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO && INTVAL (operands[2]) == NEON_ENDIAN_LANE_N (V2SImode, 0)))
    return -1;
  return 2867; /* crypto_sha1h_lb */
}

static int
recog_108 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  switch (GET_MODE (operands[0]))
    {
    case E_V8QImode:
      if (!s_register_operand (operands[0], E_V8QImode)
          || GET_MODE (x3) != E_V8QImode
          || !s_register_operand (operands[1], E_V8QImode)
          || !
#line 4415 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2246; /* neon_vrev16v8qi */

    case E_V16QImode:
      if (!s_register_operand (operands[0], E_V16QImode)
          || GET_MODE (x3) != E_V16QImode
          || !s_register_operand (operands[1], E_V16QImode)
          || !
#line 4415 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2247; /* neon_vrev16v16qi */

    default:
      return -1;
    }
}

static int
recog_109 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  switch (GET_MODE (operands[0]))
    {
    case E_V4SFmode:
      if (!s_register_operand (operands[0], E_V4SFmode)
          || GET_MODE (x3) != E_V4SFmode
          || !s_register_operand (operands[1], E_V4HFmode)
          || !
#line 3698 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_FP16))
        return -1;
      return 2103; /* neon_vcvtv4sfv4hf */

    case E_V4HFmode:
      if (!s_register_operand (operands[0], E_V4HFmode)
          || GET_MODE (x3) != E_V4HFmode
          || !s_register_operand (operands[1], E_V4SFmode)
          || !
#line 3707 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_FP16))
        return -1;
      return 2104; /* neon_vcvtv4hfv4sf */

    default:
      return -1;
    }
}

static int
recog_110 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern121 (x1))
    {
    case 0:
      if (!
#line 3680 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2096; /* neon_vcvtuv2sf */

    case 1:
      if (!
#line 3680 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2098; /* neon_vcvtuv4sf */

    case 2:
      if (!
#line 3689 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2100; /* neon_vcvtuv2si */

    case 3:
      if (!
#line 3689 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2102; /* neon_vcvtuv4si */

    case 4:
      if (!
#line 3718 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2106; /* neon_vcvtuv4hi */

    case 5:
      if (!
#line 3718 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2108; /* neon_vcvtuv8hi */

    case 6:
      if (!
#line 3729 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2110; /* neon_vcvtuv8hf */

    case 7:
      if (!
#line 3729 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2112; /* neon_vcvtuv4hf */

    default:
      return -1;
    }
}

static int
recog_111 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern121 (x1))
    {
    case 0:
      if (!
#line 3680 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2095; /* neon_vcvtsv2sf */

    case 1:
      if (!
#line 3680 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2097; /* neon_vcvtsv4sf */

    case 2:
      if (!
#line 3689 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2099; /* neon_vcvtsv2si */

    case 3:
      if (!
#line 3689 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2101; /* neon_vcvtsv4si */

    case 4:
      if (!
#line 3718 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2105; /* neon_vcvtsv4hi */

    case 5:
      if (!
#line 3718 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2107; /* neon_vcvtsv8hi */

    case 6:
      if (!
#line 3729 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2109; /* neon_vcvtsv8hf */

    case 7:
      if (!
#line 3729 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2111; /* neon_vcvtsv4hf */

    default:
      return -1;
    }
}

static int
recog_112 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  switch (GET_MODE (operands[0]))
    {
    case E_DImode:
      if (!s_register_operand (operands[0], E_DImode)
          || GET_MODE (x3) != E_DImode
          || !memory_operand (operands[1], E_DImode)
          || !
#line 4991 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && TARGET_LDRD))
        return -1;
      return 157; /* unaligned_loaddi */

    case E_SImode:
      if (!s_register_operand (operands[0], E_SImode)
          || GET_MODE (x3) != E_SImode
          || !memory_operand (operands[1], E_SImode)
          || !
#line 5002 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(unaligned_access))
        return -1;
      return 158; /* unaligned_loadsi */

    default:
      return -1;
    }
}

static int
recog_113 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern118 (x1))
    {
    case 0:
      if (!
#line 3146 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2013; /* neon_vrecpev8hf */

    case 1:
      if (!
#line 3146 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2014; /* neon_vrecpev4hf */

    case 2:
      if (!
#line 3155 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2015; /* neon_vrecpev2si */

    case 3:
      if (!
#line 3155 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2016; /* neon_vrecpev2sf */

    case 4:
      if (!
#line 3155 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2017; /* neon_vrecpev4si */

    case 5:
      if (!
#line 3155 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2018; /* neon_vrecpev4sf */

    default:
      return -1;
    }
}

static int
recog_114 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern120 (x1))
    {
    case 0:
      if (!
#line 3112 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1999; /* neon_vclsv8qi */

    case 1:
      if (!
#line 3112 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2000; /* neon_vclsv16qi */

    case 2:
      if (!
#line 3112 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2001; /* neon_vclsv4hi */

    case 3:
      if (!
#line 3112 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2002; /* neon_vclsv8hi */

    case 4:
      if (!
#line 3112 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2003; /* neon_vclsv2si */

    case 5:
      if (!
#line 3112 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2004; /* neon_vclsv4si */

    default:
      return -1;
    }
}

static int
recog_115 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern120 (x1))
    {
    case 0:
      if (!
#line 3103 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1993; /* neon_vqnegv8qi */

    case 1:
      if (!
#line 3103 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1994; /* neon_vqnegv16qi */

    case 2:
      if (!
#line 3103 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1995; /* neon_vqnegv4hi */

    case 3:
      if (!
#line 3103 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1996; /* neon_vqnegv8hi */

    case 4:
      if (!
#line 3103 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1997; /* neon_vqnegv2si */

    case 5:
      if (!
#line 3103 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1998; /* neon_vqnegv4si */

    default:
      return -1;
    }
}

static int
recog_116 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern120 (x1))
    {
    case 0:
      if (!
#line 2808 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1904; /* neon_vqabsv8qi */

    case 1:
      if (!
#line 2808 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1905; /* neon_vqabsv16qi */

    case 2:
      if (!
#line 2808 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1906; /* neon_vqabsv4hi */

    case 3:
      if (!
#line 2808 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1907; /* neon_vqabsv8hi */

    case 4:
      if (!
#line 2808 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1908; /* neon_vqabsv2si */

    case 5:
      if (!
#line 2808 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1909; /* neon_vqabsv4si */

    default:
      return -1;
    }
}

static int
recog_117 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern119 (x1))
    {
    case 0:
      if (!
#line 2718 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1857; /* neon_vpaddluv8qi */

    case 1:
      if (!
#line 2718 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1859; /* neon_vpaddluv16qi */

    case 2:
      if (!
#line 2718 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1861; /* neon_vpaddluv4hi */

    case 3:
      if (!
#line 2718 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1863; /* neon_vpaddluv8hi */

    case 4:
      if (!
#line 2718 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1865; /* neon_vpaddluv2si */

    case 5:
      if (!
#line 2718 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1867; /* neon_vpaddluv4si */

    default:
      return -1;
    }
}

static int
recog_118 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern119 (x1))
    {
    case 0:
      if (!
#line 2718 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1856; /* neon_vpaddlsv8qi */

    case 1:
      if (!
#line 2718 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1858; /* neon_vpaddlsv16qi */

    case 2:
      if (!
#line 2718 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1860; /* neon_vpaddlsv4hi */

    case 3:
      if (!
#line 2718 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1862; /* neon_vpaddlsv8hi */

    case 4:
      if (!
#line 2718 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1864; /* neon_vpaddlsv2si */

    case 5:
      if (!
#line 2718 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1866; /* neon_vpaddlsv4si */

    default:
      return -1;
    }
}

static int
recog_119 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern118 (x1))
    {
    case 0:
      if (!
#line 803 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1324; /* neon_vrsqrtev8hf */

    case 1:
      if (!
#line 803 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1325; /* neon_vrsqrtev4hf */

    case 2:
      if (!
#line 3164 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2019; /* neon_vrsqrtev2si */

    case 3:
      if (!
#line 3164 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2020; /* neon_vrsqrtev2sf */

    case 4:
      if (!
#line 3164 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2021; /* neon_vrsqrtev4si */

    case 5:
      if (!
#line 3164 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2022; /* neon_vrsqrtev4sf */

    default:
      return -1;
    }
}

static int
recog_120 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XVECEXP (x2, 0, 0);
  if (GET_CODE (x3) != PLUS)
    return -1;
  x4 = XEXP (x1, 0);
  operands[0] = x4;
  x5 = XEXP (x3, 0);
  operands[1] = x5;
  x6 = XEXP (x3, 1);
  operands[2] = x6;
  switch (GET_MODE (operands[0]))
    {
    case E_V4HImode:
      if (pattern430 (x2, E_V4HImode) != 0
          || !
#line 111 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 688; /* addcv4hi3 */

    case E_V2SImode:
      if (pattern430 (x2, E_V2SImode) != 0
          || !
#line 111 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 689; /* addcv2si3 */

    default:
      return -1;
    }
}

static int
recog_121 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  if (pnum_clobbers == NULL)
    return -1;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XVECEXP (x2, 0, 0);
  if (GET_CODE (x3) != MEM
      || GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x1, 0);
  operands[0] = x4;
  if (!memory_operand (operands[0], E_SImode))
    return -1;
  x5 = XEXP (x3, 0);
  operands[1] = x5;
  if (!guard_addr_operand (operands[1], E_SImode))
    return -1;
  *pnum_clobbers = 2;
  return 308; /* *stack_protect_combined_set_insn */
}

static int
recog_122 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  if (!immediate_operand (operands[2], E_SImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_QImode:
      if (!neon_struct_operand (operands[0], E_QImode)
          || GET_MODE (x3) != E_QImode)
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case E_V8QImode:
          if (!s_register_operand (operands[1], E_V8QImode)
              || !
#line 5077 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2563; /* neon_vst1_lanev8qi */

        case E_V16QImode:
          if (!s_register_operand (operands[1], E_V16QImode)
              || !
#line 5098 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2570; /* neon_vst1_lanev16qi */

        default:
          return -1;
        }

    case E_HImode:
      if (!neon_struct_operand (operands[0], E_HImode)
          || GET_MODE (x3) != E_HImode)
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case E_V4HImode:
          if (!s_register_operand (operands[1], E_V4HImode)
              || !
#line 5077 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2564; /* neon_vst1_lanev4hi */

        case E_V8HImode:
          if (!s_register_operand (operands[1], E_V8HImode)
              || !
#line 5098 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2571; /* neon_vst1_lanev8hi */

        default:
          return -1;
        }

    case E_HFmode:
      if (!neon_struct_operand (operands[0], E_HFmode)
          || GET_MODE (x3) != E_HFmode)
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case E_V4HFmode:
          if (!s_register_operand (operands[1], E_V4HFmode)
              || !
#line 5077 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2565; /* neon_vst1_lanev4hf */

        case E_V8HFmode:
          if (!s_register_operand (operands[1], E_V8HFmode)
              || !
#line 5098 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2572; /* neon_vst1_lanev8hf */

        default:
          return -1;
        }

    case E_BFmode:
      if (!neon_struct_operand (operands[0], E_BFmode)
          || GET_MODE (x3) != E_BFmode)
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case E_V4BFmode:
          if (!s_register_operand (operands[1], E_V4BFmode)
              || !
#line 5077 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2566; /* neon_vst1_lanev4bf */

        case E_V8BFmode:
          if (!s_register_operand (operands[1], E_V8BFmode)
              || !
#line 5098 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2573; /* neon_vst1_lanev8bf */

        default:
          return -1;
        }

    case E_SImode:
      if (!neon_struct_operand (operands[0], E_SImode)
          || GET_MODE (x3) != E_SImode)
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case E_V2SImode:
          if (!s_register_operand (operands[1], E_V2SImode)
              || !
#line 5077 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2567; /* neon_vst1_lanev2si */

        case E_V4SImode:
          if (!s_register_operand (operands[1], E_V4SImode)
              || !
#line 5098 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2574; /* neon_vst1_lanev4si */

        default:
          return -1;
        }

    case E_SFmode:
      if (!neon_struct_operand (operands[0], E_SFmode)
          || GET_MODE (x3) != E_SFmode)
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case E_V2SFmode:
          if (!s_register_operand (operands[1], E_V2SFmode)
              || !
#line 5077 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2568; /* neon_vst1_lanev2sf */

        case E_V4SFmode:
          if (!s_register_operand (operands[1], E_V4SFmode)
              || !
#line 5098 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2575; /* neon_vst1_lanev4sf */

        default:
          return -1;
        }

    case E_DImode:
      if (!neon_struct_operand (operands[0], E_DImode)
          || GET_MODE (x3) != E_DImode)
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case E_DImode:
          if (!s_register_operand (operands[1], E_DImode)
              || !
#line 5077 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2569; /* neon_vst1_lanedi */

        case E_V2DImode:
          if (!s_register_operand (operands[1], E_V2DImode)
              || !
#line 5098 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2576; /* neon_vst1_lanev2di */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_123 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XVECEXP (x2, 0, 1);
  if (GET_CODE (x3) != UNSPEC
      || XVECLEN (x3, 0) != 1
      || XINT (x3, 1) != 327)
    return -1;
  x4 = XVECEXP (x3, 0, 0);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x5 = XEXP (x1, 0);
  operands[0] = x5;
  x6 = XVECEXP (x2, 0, 0);
  operands[1] = x6;
  switch (GET_MODE (operands[0]))
    {
    case E_TImode:
      if (!s_register_operand (operands[0], E_TImode)
          || GET_MODE (x2) != E_TImode)
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case E_HImode:
          if (!neon_struct_operand (operands[1], E_HImode)
              || GET_MODE (x3) != E_V8QImode
              || !
#line 5211 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2601; /* neon_vld2_dupv8qi */

        case E_SImode:
          if (!neon_struct_operand (operands[1], E_SImode)
              || GET_MODE (x3) != E_V4HImode
              || !
#line 5211 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2602; /* neon_vld2_dupv4hi */

        case E_SFmode:
          if (!neon_struct_operand (operands[1], E_SFmode)
              || GET_MODE (x3) != E_V4HFmode
              || !
#line 5211 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2603; /* neon_vld2_dupv4hf */

        case E_BFmode:
          if (!neon_struct_operand (operands[1], E_BFmode)
              || GET_MODE (x3) != E_V4BFmode
              || !(
#line 5211 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 94 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
            return -1;
          return 2604; /* neon_vld2_dupv4bf */

        case E_V2SImode:
          if (!neon_struct_operand (operands[1], E_V2SImode)
              || GET_MODE (x3) != E_V2SImode
              || !
#line 5211 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2605; /* neon_vld2_dupv2si */

        case E_V2SFmode:
          if (!neon_struct_operand (operands[1], E_V2SFmode)
              || GET_MODE (x3) != E_V2SFmode
              || !
#line 5211 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2606; /* neon_vld2_dupv2sf */

        case E_V2DImode:
          if (!neon_struct_operand (operands[1], E_V2DImode)
              || GET_MODE (x3) != E_DImode
              || !
#line 5211 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2607; /* neon_vld2_dupdi */

        default:
          return -1;
        }

    case E_OImode:
      if (pattern490 (x2, E_OImode) != 0
          || !
#line 5229 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
        return -1;
      return 2608; /* neon_vld2_dupv8bf */

    case E_CImode:
      if (pattern490 (x2, E_CImode) != 0
          || !
#line 5512 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
        return -1;
      return 2670; /* neon_vld3_dupv8bf */

    case E_XImode:
      if (pattern490 (x2, E_XImode) != 0
          || !
#line 5847 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
        return -1;
      return 2738; /* neon_vld4_dupv8bf */

    default:
      return -1;
    }
}

static int
recog_124 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (pattern179 (x1, E_OImode) != 0)
    return -1;
  switch (GET_MODE (operands[1]))
    {
    case E_SImode:
      if (!neon_struct_operand (operands[1], E_SImode))
        return -1;
      x2 = XEXP (x1, 1);
      x3 = XVECEXP (x2, 0, 1);
      if (GET_MODE (x3) != E_V8QImode
          || !
#line 5818 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2731; /* neon_vld4_dupv8qi */

    case E_V4HImode:
      if (!neon_struct_operand (operands[1], E_V4HImode))
        return -1;
      x2 = XEXP (x1, 1);
      x3 = XVECEXP (x2, 0, 1);
      if (GET_MODE (x3) != E_V4HImode
          || !
#line 5818 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2732; /* neon_vld4_dupv4hi */

    case E_V4HFmode:
      if (!neon_struct_operand (operands[1], E_V4HFmode))
        return -1;
      x2 = XEXP (x1, 1);
      x3 = XVECEXP (x2, 0, 1);
      if (GET_MODE (x3) != E_V4HFmode
          || !
#line 5818 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2733; /* neon_vld4_dupv4hf */

    case E_V4BFmode:
      if (!neon_struct_operand (operands[1], E_V4BFmode))
        return -1;
      x2 = XEXP (x1, 1);
      x3 = XVECEXP (x2, 0, 1);
      if (GET_MODE (x3) != E_V4BFmode
          || !(
#line 5818 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 94 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
        return -1;
      return 2734; /* neon_vld4_dupv4bf */

    case E_V4SImode:
      if (!neon_struct_operand (operands[1], E_V4SImode))
        return -1;
      x2 = XEXP (x1, 1);
      x3 = XVECEXP (x2, 0, 1);
      if (GET_MODE (x3) != E_V2SImode
          || !
#line 5818 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2735; /* neon_vld4_dupv2si */

    case E_V4SFmode:
      if (!neon_struct_operand (operands[1], E_V4SFmode))
        return -1;
      x2 = XEXP (x1, 1);
      x3 = XVECEXP (x2, 0, 1);
      if (GET_MODE (x3) != E_V2SFmode
          || !
#line 5818 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2736; /* neon_vld4_dupv2sf */

    case E_OImode:
      if (!neon_struct_operand (operands[1], E_OImode))
        return -1;
      x2 = XEXP (x1, 1);
      x3 = XVECEXP (x2, 0, 1);
      if (GET_MODE (x3) != E_DImode
          || !
#line 5818 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2737; /* neon_vld4_dupdi */

    default:
      return -1;
    }
}

static int
recog_125 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  switch (pattern176 (x1))
    {
    case 0:
      if (!neon_struct_operand (operands[0], E_TImode))
        return -1;
      x2 = XEXP (x1, 1);
      if (GET_MODE (x2) != E_TImode
          || !s_register_operand (operands[1], E_TImode))
        return -1;
      x3 = XVECEXP (x2, 0, 1);
      switch (GET_MODE (x3))
        {
        case E_V8QImode:
          if (!
#line 5257 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2609; /* neon_vst2v8qi */

        case E_V4HImode:
          if (!
#line 5257 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2610; /* neon_vst2v4hi */

        case E_V4HFmode:
          if (!
#line 5257 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2611; /* neon_vst2v4hf */

        case E_V4BFmode:
          if (!(
#line 5257 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 94 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
            return -1;
          return 2612; /* neon_vst2v4bf */

        case E_V2SImode:
          if (!
#line 5257 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2613; /* neon_vst2v2si */

        case E_V2SFmode:
          if (!
#line 5257 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2614; /* neon_vst2v2sf */

        case E_DImode:
          if (!
#line 5257 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2615; /* neon_vst2di */

        default:
          return -1;
        }

    case 1:
      if (!neon_struct_operand (operands[0], E_OImode))
        return -1;
      x2 = XEXP (x1, 1);
      if (GET_MODE (x2) != E_OImode
          || !s_register_operand (operands[1], E_OImode))
        return -1;
      x3 = XVECEXP (x2, 0, 1);
      switch (GET_MODE (x3))
        {
        case E_V16QImode:
          if (!
#line 5275 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2616; /* neon_vst2v16qi */

        case E_V8HImode:
          if (!
#line 5275 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2617; /* neon_vst2v8hi */

        case E_V8HFmode:
          if (!
#line 5275 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2618; /* neon_vst2v8hf */

        case E_V8BFmode:
          if (!(
#line 5275 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 116 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
            return -1;
          return 2619; /* neon_vst2v8bf */

        case E_V4SImode:
          if (!
#line 5275 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2620; /* neon_vst2v4si */

        case E_V4SFmode:
          if (!
#line 5275 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2621; /* neon_vst2v4sf */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_126 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  switch (pattern176 (x1))
    {
    case 0:
      if (!s_register_operand (operands[0], E_TImode))
        return -1;
      x2 = XEXP (x1, 1);
      if (GET_MODE (x2) != E_TImode
          || !neon_struct_operand (operands[1], E_TImode))
        return -1;
      x3 = XVECEXP (x2, 0, 1);
      switch (GET_MODE (x3))
        {
        case E_V8QImode:
          if (!
#line 5130 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2577; /* neon_vld2v8qi */

        case E_V4HImode:
          if (!
#line 5130 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2578; /* neon_vld2v4hi */

        case E_V4HFmode:
          if (!
#line 5130 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2579; /* neon_vld2v4hf */

        case E_V4BFmode:
          if (!(
#line 5130 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 94 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
            return -1;
          return 2580; /* neon_vld2v4bf */

        case E_V2SImode:
          if (!
#line 5130 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2581; /* neon_vld2v2si */

        case E_V2SFmode:
          if (!
#line 5130 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2582; /* neon_vld2v2sf */

        case E_DImode:
          if (!
#line 5130 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2583; /* neon_vld2di */

        default:
          return -1;
        }

    case 1:
      if (!s_register_operand (operands[0], E_OImode))
        return -1;
      x2 = XEXP (x1, 1);
      if (GET_MODE (x2) != E_OImode
          || !neon_struct_operand (operands[1], E_OImode))
        return -1;
      x3 = XVECEXP (x2, 0, 1);
      switch (GET_MODE (x3))
        {
        case E_V16QImode:
          if (!
#line 5148 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2584; /* neon_vld2v16qi */

        case E_V8HImode:
          if (!
#line 5148 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2585; /* neon_vld2v8hi */

        case E_V8HFmode:
          if (!
#line 5148 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2586; /* neon_vld2v8hf */

        case E_V8BFmode:
          if (!(
#line 5148 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 116 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
            return -1;
          return 2587; /* neon_vld2v8bf */

        case E_V4SImode:
          if (!
#line 5148 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2588; /* neon_vld2v4si */

        case E_V4SFmode:
          if (!
#line 5148 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2589; /* neon_vld2v4sf */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_127 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern170 (x1))
    {
    case 0:
      if (!(
#line 2842 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 153 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
        return -1;
      return 1916; /* neon_vcadd270v4hf */

    case 1:
      if (register_operand (operands[0], E_V8HFmode)
          && register_operand (operands[1], E_V8HFmode)
          && register_operand (operands[2], E_V8HFmode)
          && (
#line 2842 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 154 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
        return 1918; /* neon_vcadd270v8hf */
      if (!s_register_operand (operands[0], E_V8HFmode)
          || !s_register_operand (operands[1], E_V8HFmode)
          || !s_register_operand (operands[2], E_V8HFmode)
          || !
#line 1910 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3561; /* mve_vcaddq_rot270v8hf */

    case 2:
      if (!
#line 2842 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
        return -1;
      return 1920; /* neon_vcadd270v2sf */

    case 3:
      if (register_operand (operands[0], E_V4SFmode)
          && register_operand (operands[1], E_V4SFmode)
          && register_operand (operands[2], E_V4SFmode)
          && 
#line 2842 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
        return 1922; /* neon_vcadd270v4sf */
      if (!s_register_operand (operands[0], E_V4SFmode)
          || !s_register_operand (operands[1], E_V4SFmode)
          || !s_register_operand (operands[2], E_V4SFmode)
          || !
#line 1910 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3563; /* mve_vcaddq_rot270v4sf */

    case 4:
      if (!
#line 993 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3292; /* mve_vcaddq_rot270v16qi */

    case 5:
      if (!
#line 993 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3294; /* mve_vcaddq_rot270v8hi */

    case 6:
      if (!
#line 993 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3296; /* mve_vcaddq_rot270v4si */

    default:
      return -1;
    }
}

static int
recog_128 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern170 (x1))
    {
    case 0:
      if (!(
#line 2842 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 153 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
        return -1;
      return 1915; /* neon_vcadd90v4hf */

    case 1:
      if (register_operand (operands[0], E_V8HFmode)
          && register_operand (operands[1], E_V8HFmode)
          && register_operand (operands[2], E_V8HFmode)
          && (
#line 2842 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 154 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
        return 1917; /* neon_vcadd90v8hf */
      if (!s_register_operand (operands[0], E_V8HFmode)
          || !s_register_operand (operands[1], E_V8HFmode)
          || !s_register_operand (operands[2], E_V8HFmode)
          || !
#line 1910 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3560; /* mve_vcaddq_rot90v8hf */

    case 2:
      if (!
#line 2842 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
        return -1;
      return 1919; /* neon_vcadd90v2sf */

    case 3:
      if (register_operand (operands[0], E_V4SFmode)
          && register_operand (operands[1], E_V4SFmode)
          && register_operand (operands[2], E_V4SFmode)
          && 
#line 2842 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
        return 1921; /* neon_vcadd90v4sf */
      if (!s_register_operand (operands[0], E_V4SFmode)
          || !s_register_operand (operands[1], E_V4SFmode)
          || !s_register_operand (operands[2], E_V4SFmode)
          || !
#line 1910 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3562; /* mve_vcaddq_rot90v4sf */

    case 4:
      if (!
#line 993 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3291; /* mve_vcaddq_rot90v16qi */

    case 5:
      if (!
#line 993 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3293; /* mve_vcaddq_rot90v8hi */

    case 6:
      if (!
#line 993 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3295; /* mve_vcaddq_rot90v4si */

    default:
      return -1;
    }
}

static int
recog_129 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V16BImode:
      if (!vpr_register_operand (operands[0], E_V16BImode)
          || GET_MODE (x3) != E_V16BImode
          || !vpr_register_operand (operands[2], E_V16BImode)
          || !
#line 1969 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3596; /* mve_vctp8q_mv16bi */

    case E_V8BImode:
      if (!vpr_register_operand (operands[0], E_V8BImode)
          || GET_MODE (x3) != E_V8BImode
          || !vpr_register_operand (operands[2], E_V8BImode)
          || !
#line 1969 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3597; /* mve_vctp16q_mv8bi */

    case E_V4BImode:
      if (!vpr_register_operand (operands[0], E_V4BImode)
          || GET_MODE (x3) != E_V4BImode
          || !vpr_register_operand (operands[2], E_V4BImode)
          || !
#line 1969 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3598; /* mve_vctp32q_mv4bi */

    case E_V2QImode:
      if (!vpr_register_operand (operands[0], E_V2QImode)
          || GET_MODE (x3) != E_V2QImode
          || !vpr_register_operand (operands[2], E_V2QImode)
          || !
#line 1969 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3599; /* mve_vctp64q_mv2qi */

    default:
      return -1;
    }
}

static int
recog_130 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V8QImode:
      if (!s_register_operand (operands[0], E_V8QImode)
          || GET_MODE (x3) != E_V8QImode
          || !s_register_operand (operands[2], E_V8QImode))
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case E_V8QImode:
          if (!s_register_operand (operands[1], E_V8QImode)
              || !
#line 4633 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2468; /* neon_vtbl1v8qi */

        case E_TImode:
          if (!s_register_operand (operands[1], E_TImode)
              || !
#line 4643 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2469; /* neon_vtbl2v8qi */

        case E_EImode:
          if (!s_register_operand (operands[1], E_EImode)
              || !
#line 4664 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2470; /* neon_vtbl3v8qi */

        case E_OImode:
          if (!s_register_operand (operands[1], E_OImode)
              || !
#line 4686 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2471; /* neon_vtbl4v8qi */

        default:
          return -1;
        }

    case E_V16QImode:
      if (!s_register_operand (operands[0], E_V16QImode)
          || GET_MODE (x3) != E_V16QImode)
        return -1;
      switch (pattern451 ())
        {
        case 0:
          if (!
#line 4710 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2472; /* neon_vtbl1v16qi */

        case 1:
          if (!
#line 4741 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2473; /* neon_vtbl2v16qi */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_131 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  if (!const_int_coproc_operand (operands[1], E_SImode))
    return -1;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_SImode:
      if (!register_operand (operands[0], E_SImode)
          || GET_MODE (x3) != E_SImode
          || !const_int_vcde1_operand (operands[2], E_SImode)
          || !
#line 2192 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_CDE && (TARGET_ARM_FP || TARGET_HAVE_MVE)))
        return -1;
      return 922; /* arm_vcx1si */

    case E_DImode:
      if (!register_operand (operands[0], E_DImode)
          || GET_MODE (x3) != E_DImode
          || !const_int_vcde1_operand (operands[2], E_SImode)
          || !
#line 2192 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_CDE && (TARGET_ARM_FP || TARGET_HAVE_MVE)))
        return -1;
      return 923; /* arm_vcx1di */

    case E_V16QImode:
      if (!register_operand (operands[0], E_V16QImode)
          || GET_MODE (x3) != E_V16QImode
          || !const_int_mve_cde1_operand (operands[2], E_SImode)
          || !
#line 10374 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_CDE && TARGET_HAVE_MVE))
        return -1;
      return 4942; /* arm_vcx1qv16qi */

    default:
      return -1;
    }
}

static int
recog_132 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (pattern179 (x1, E_EImode) != 0)
    return -1;
  switch (GET_MODE (operands[1]))
    {
    case E_BLKmode:
      if (!neon_struct_operand (operands[1], E_BLKmode))
        return -1;
      x2 = XEXP (x1, 1);
      x3 = XVECEXP (x2, 0, 1);
      switch (GET_MODE (x3))
        {
        case E_V8QImode:
          if (!
#line 5486 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2663; /* neon_vld3_dupv8qi */

        case E_V4HImode:
          if (!
#line 5486 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2664; /* neon_vld3_dupv4hi */

        case E_V4HFmode:
          if (!
#line 5486 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2665; /* neon_vld3_dupv4hf */

        case E_V4BFmode:
          if (!(
#line 5486 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 94 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
            return -1;
          return 2666; /* neon_vld3_dupv4bf */

        case E_V2SImode:
          if (!
#line 5486 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2667; /* neon_vld3_dupv2si */

        case E_V2SFmode:
          if (!
#line 5486 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2668; /* neon_vld3_dupv2sf */

        default:
          return -1;
        }

    case E_EImode:
      if (!neon_struct_operand (operands[1], E_EImode))
        return -1;
      x2 = XEXP (x1, 1);
      x3 = XVECEXP (x2, 0, 1);
      if (GET_MODE (x3) != E_DImode
          || !
#line 5486 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2669; /* neon_vld3_dupdi */

    default:
      return -1;
    }
}

static int
recog_133 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern166 (x1))
    {
    case 0:
      if (!
#line 2632 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1812; /* neon_vminsv8qi */

    case 1:
      if (!
#line 2632 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1816; /* neon_vminsv16qi */

    case 2:
      if (!
#line 2632 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1820; /* neon_vminsv4hi */

    case 3:
      if (!
#line 2632 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1824; /* neon_vminsv8hi */

    case 4:
      if (!
#line 2632 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1828; /* neon_vminsv2si */

    case 5:
      if (!
#line 2632 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1832; /* neon_vminsv4si */

    case 6:
      if (!
#line 2642 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1835; /* neon_vminfv2sf */

    case 7:
      if (!
#line 2642 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1837; /* neon_vminfv4sf */

    case 8:
      if (!
#line 2653 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1839; /* neon_vminfv8hf */

    case 9:
      if (!
#line 2653 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1841; /* neon_vminfv4hf */

    default:
      return -1;
    }
}

static int
recog_134 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern166 (x1))
    {
    case 0:
      if (!
#line 2632 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1810; /* neon_vmaxsv8qi */

    case 1:
      if (!
#line 2632 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1814; /* neon_vmaxsv16qi */

    case 2:
      if (!
#line 2632 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1818; /* neon_vmaxsv4hi */

    case 3:
      if (!
#line 2632 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1822; /* neon_vmaxsv8hi */

    case 4:
      if (!
#line 2632 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1826; /* neon_vmaxsv2si */

    case 5:
      if (!
#line 2632 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1830; /* neon_vmaxsv4si */

    case 6:
      if (!
#line 2642 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1834; /* neon_vmaxfv2sf */

    case 7:
      if (!
#line 2642 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1836; /* neon_vmaxfv4sf */

    case 8:
      if (!
#line 2653 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1838; /* neon_vmaxfv8hf */

    case 9:
      if (!
#line 2653 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1840; /* neon_vmaxfv4hf */

    default:
      return -1;
    }
}

static int
recog_135 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V8QImode:
      if (pattern42 (x3, E_V8QImode) != 0
          || !
#line 1302 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1418; /* neon_vpadd_internalv8qi */

    case E_V4HImode:
      if (pattern42 (x3, E_V4HImode) != 0
          || !
#line 1302 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1419; /* neon_vpadd_internalv4hi */

    case E_V2SImode:
      if (pattern42 (x3, E_V2SImode) != 0
          || !
#line 1302 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1420; /* neon_vpadd_internalv2si */

    case E_V2SFmode:
      if (pattern42 (x3, E_V2SFmode) != 0
          || !
#line 1302 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1421; /* neon_vpadd_internalv2sf */

    case E_V4HFmode:
      if (pattern42 (x3, E_V4HFmode) != 0
          || !
#line 1317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1422; /* neon_vpaddv4hf */

    default:
      return -1;
    }
}

static int
recog_136 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_HFmode:
      if (pattern42 (x3, E_HFmode) != 0
          || !
#line 1602 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
        return -1;
      return 845; /* neon_vrsqrtshf */

    case E_V2SFmode:
      if (pattern42 (x3, E_V2SFmode) != 0
          || !
#line 2779 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1900; /* neon_vrsqrtsv2sf */

    case E_V4SFmode:
      if (pattern42 (x3, E_V4SFmode) != 0
          || !
#line 2779 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1901; /* neon_vrsqrtsv4sf */

    case E_V8HFmode:
      if (pattern42 (x3, E_V8HFmode) != 0
          || !
#line 2790 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1902; /* neon_vrsqrtsv8hf */

    case E_V4HFmode:
      if (pattern42 (x3, E_V4HFmode) != 0
          || !
#line 2790 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1903; /* neon_vrsqrtsv4hf */

    default:
      return -1;
    }
}

static int
recog_137 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], E_DImode))
    return -1;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  if (!s_register_operand (operands[2], E_DImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HFmode:
      if (!s_register_operand (operands[0], E_V8HFmode)
          || GET_MODE (x3) != E_V8HFmode
          || !
#line 725 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3179; /* mve_vcreateq_fv8hf */

    case E_V4SFmode:
      if (!s_register_operand (operands[0], E_V4SFmode)
          || GET_MODE (x3) != E_V4SFmode
          || !
#line 725 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3180; /* mve_vcreateq_fv4sf */

    default:
      return -1;
    }
}

static int
recog_138 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern172 (x1))
    {
    case 0:
      if (!
#line 4563 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2406; /* neon_vqshlu_nv8qi */

    case 1:
      if (!
#line 4563 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2407; /* neon_vqshlu_nv16qi */

    case 2:
      if (!
#line 4563 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2408; /* neon_vqshlu_nv4hi */

    case 3:
      if (!
#line 4563 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2409; /* neon_vqshlu_nv8hi */

    case 4:
      if (!
#line 4563 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2410; /* neon_vqshlu_nv2si */

    case 5:
      if (!
#line 4563 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2411; /* neon_vqshlu_nv4si */

    case 6:
      if (!
#line 4563 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2412; /* neon_vqshlu_ndi */

    case 7:
      if (!
#line 4563 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2413; /* neon_vqshlu_nv2di */

    default:
      return -1;
    }
}

static int
recog_139 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern172 (x1))
    {
    case 0:
      if (!
#line 4550 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2391; /* neon_vqshl_u_nv8qi */

    case 1:
      if (!
#line 4550 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2393; /* neon_vqshl_u_nv16qi */

    case 2:
      if (!
#line 4550 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2395; /* neon_vqshl_u_nv4hi */

    case 3:
      if (!
#line 4550 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2397; /* neon_vqshl_u_nv8hi */

    case 4:
      if (!
#line 4550 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2399; /* neon_vqshl_u_nv2si */

    case 5:
      if (!
#line 4550 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2401; /* neon_vqshl_u_nv4si */

    case 6:
      if (!
#line 4550 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2403; /* neon_vqshl_u_ndi */

    case 7:
      if (!
#line 4550 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2405; /* neon_vqshl_u_nv2di */

    default:
      return -1;
    }
}

static int
recog_140 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern172 (x1))
    {
    case 0:
      if (!
#line 4550 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2390; /* neon_vqshl_s_nv8qi */

    case 1:
      if (!
#line 4550 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2392; /* neon_vqshl_s_nv16qi */

    case 2:
      if (!
#line 4550 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2394; /* neon_vqshl_s_nv4hi */

    case 3:
      if (!
#line 4550 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2396; /* neon_vqshl_s_nv8hi */

    case 4:
      if (!
#line 4550 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2398; /* neon_vqshl_s_nv2si */

    case 5:
      if (!
#line 4550 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2400; /* neon_vqshl_s_nv4si */

    case 6:
      if (!
#line 4550 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2402; /* neon_vqshl_s_ndi */

    case 7:
      if (!
#line 4550 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2404; /* neon_vqshl_s_nv2di */

    default:
      return -1;
    }
}

static int
recog_141 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern172 (x1))
    {
    case 0:
      if (!
#line 4537 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2382; /* neon_vshl_nv8qi */

    case 1:
      if (!
#line 4537 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2383; /* neon_vshl_nv16qi */

    case 2:
      if (!
#line 4537 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2384; /* neon_vshl_nv4hi */

    case 3:
      if (!
#line 4537 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2385; /* neon_vshl_nv8hi */

    case 4:
      if (!
#line 4537 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2386; /* neon_vshl_nv2si */

    case 5:
      if (!
#line 4537 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2387; /* neon_vshl_nv4si */

    case 6:
      if (!
#line 4537 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2388; /* neon_vshl_ndi */

    case 7:
      if (!
#line 4537 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2389; /* neon_vshl_nv2di */

    default:
      return -1;
    }
}

static int
recog_142 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern172 (x1))
    {
    case 0:
      if (!
#line 4482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2329; /* neon_vrshru_nv8qi */

    case 1:
      if (!
#line 4482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2333; /* neon_vrshru_nv16qi */

    case 2:
      if (!
#line 4482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2337; /* neon_vrshru_nv4hi */

    case 3:
      if (!
#line 4482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2341; /* neon_vrshru_nv8hi */

    case 4:
      if (!
#line 4482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2345; /* neon_vrshru_nv2si */

    case 5:
      if (!
#line 4482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2349; /* neon_vrshru_nv4si */

    case 6:
      if (!
#line 4482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2353; /* neon_vrshru_ndi */

    case 7:
      if (!
#line 4482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2357; /* neon_vrshru_nv2di */

    default:
      return -1;
    }
}

static int
recog_143 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern172 (x1))
    {
    case 0:
      if (!
#line 4482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2328; /* neon_vrshrs_nv8qi */

    case 1:
      if (!
#line 4482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2332; /* neon_vrshrs_nv16qi */

    case 2:
      if (!
#line 4482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2336; /* neon_vrshrs_nv4hi */

    case 3:
      if (!
#line 4482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2340; /* neon_vrshrs_nv8hi */

    case 4:
      if (!
#line 4482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2344; /* neon_vrshrs_nv2si */

    case 5:
      if (!
#line 4482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2348; /* neon_vrshrs_nv4si */

    case 6:
      if (!
#line 4482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2352; /* neon_vrshrs_ndi */

    case 7:
      if (!
#line 4482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2356; /* neon_vrshrs_nv2di */

    default:
      return -1;
    }
}

static int
recog_144 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern172 (x1))
    {
    case 0:
      if (!
#line 4482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2327; /* neon_vshru_nv8qi */

    case 1:
      if (!
#line 4482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2331; /* neon_vshru_nv16qi */

    case 2:
      if (!
#line 4482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2335; /* neon_vshru_nv4hi */

    case 3:
      if (!
#line 4482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2339; /* neon_vshru_nv8hi */

    case 4:
      if (!
#line 4482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2343; /* neon_vshru_nv2si */

    case 5:
      if (!
#line 4482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2347; /* neon_vshru_nv4si */

    case 6:
      if (!
#line 4482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2351; /* neon_vshru_ndi */

    case 7:
      if (!
#line 4482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2355; /* neon_vshru_nv2di */

    default:
      return -1;
    }
}

static int
recog_145 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern172 (x1))
    {
    case 0:
      if (!
#line 4482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2326; /* neon_vshrs_nv8qi */

    case 1:
      if (!
#line 4482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2330; /* neon_vshrs_nv16qi */

    case 2:
      if (!
#line 4482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2334; /* neon_vshrs_nv4hi */

    case 3:
      if (!
#line 4482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2338; /* neon_vshrs_nv8hi */

    case 4:
      if (!
#line 4482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2342; /* neon_vshrs_nv2si */

    case 5:
      if (!
#line 4482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2346; /* neon_vshrs_nv4si */

    case 6:
      if (!
#line 4482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2350; /* neon_vshrs_ndi */

    case 7:
      if (!
#line 4482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2354; /* neon_vshrs_nv2di */

    default:
      return -1;
    }
}

static int
recog_146 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern159 (x1))
    {
    case 0:
      if (!
#line 4471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2297; /* neon_vqrshluv8qi */

    case 1:
      if (!
#line 4471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2301; /* neon_vqrshluv16qi */

    case 2:
      if (!
#line 4471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2305; /* neon_vqrshluv4hi */

    case 3:
      if (!
#line 4471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2309; /* neon_vqrshluv8hi */

    case 4:
      if (!
#line 4471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2313; /* neon_vqrshluv2si */

    case 5:
      if (!
#line 4471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2317; /* neon_vqrshluv4si */

    case 6:
      if (!
#line 4471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2321; /* neon_vqrshludi */

    case 7:
      if (!
#line 4471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2325; /* neon_vqrshluv2di */

    default:
      return -1;
    }
}

static int
recog_147 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern159 (x1))
    {
    case 0:
      if (!
#line 4471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2296; /* neon_vqrshlsv8qi */

    case 1:
      if (!
#line 4471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2300; /* neon_vqrshlsv16qi */

    case 2:
      if (!
#line 4471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2304; /* neon_vqrshlsv4hi */

    case 3:
      if (!
#line 4471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2308; /* neon_vqrshlsv8hi */

    case 4:
      if (!
#line 4471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2312; /* neon_vqrshlsv2si */

    case 5:
      if (!
#line 4471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2316; /* neon_vqrshlsv4si */

    case 6:
      if (!
#line 4471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2320; /* neon_vqrshlsdi */

    case 7:
      if (!
#line 4471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2324; /* neon_vqrshlsv2di */

    default:
      return -1;
    }
}

static int
recog_148 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern159 (x1))
    {
    case 0:
      if (!
#line 4471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2295; /* neon_vqshluv8qi */

    case 1:
      if (!
#line 4471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2299; /* neon_vqshluv16qi */

    case 2:
      if (!
#line 4471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2303; /* neon_vqshluv4hi */

    case 3:
      if (!
#line 4471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2307; /* neon_vqshluv8hi */

    case 4:
      if (!
#line 4471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2311; /* neon_vqshluv2si */

    case 5:
      if (!
#line 4471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2315; /* neon_vqshluv4si */

    case 6:
      if (!
#line 4471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2319; /* neon_vqshludi */

    case 7:
      if (!
#line 4471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2323; /* neon_vqshluv2di */

    default:
      return -1;
    }
}

static int
recog_149 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern159 (x1))
    {
    case 0:
      if (!
#line 4471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2294; /* neon_vqshlsv8qi */

    case 1:
      if (!
#line 4471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2298; /* neon_vqshlsv16qi */

    case 2:
      if (!
#line 4471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2302; /* neon_vqshlsv4hi */

    case 3:
      if (!
#line 4471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2306; /* neon_vqshlsv8hi */

    case 4:
      if (!
#line 4471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2310; /* neon_vqshlsv2si */

    case 5:
      if (!
#line 4471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2314; /* neon_vqshlsv4si */

    case 6:
      if (!
#line 4471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2318; /* neon_vqshlsdi */

    case 7:
      if (!
#line 4471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2322; /* neon_vqshlsv2di */

    default:
      return -1;
    }
}

static int
recog_150 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern159 (x1))
    {
    case 0:
      if (!
#line 4460 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2265; /* neon_vrshluv8qi */

    case 1:
      if (!
#line 4460 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2269; /* neon_vrshluv16qi */

    case 2:
      if (!
#line 4460 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2273; /* neon_vrshluv4hi */

    case 3:
      if (!
#line 4460 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2277; /* neon_vrshluv8hi */

    case 4:
      if (!
#line 4460 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2281; /* neon_vrshluv2si */

    case 5:
      if (!
#line 4460 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2285; /* neon_vrshluv4si */

    case 6:
      if (!
#line 4460 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2289; /* neon_vrshludi */

    case 7:
      if (!
#line 4460 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2293; /* neon_vrshluv2di */

    default:
      return -1;
    }
}

static int
recog_151 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern159 (x1))
    {
    case 0:
      if (!
#line 4460 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2264; /* neon_vrshlsv8qi */

    case 1:
      if (!
#line 4460 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2268; /* neon_vrshlsv16qi */

    case 2:
      if (!
#line 4460 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2272; /* neon_vrshlsv4hi */

    case 3:
      if (!
#line 4460 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2276; /* neon_vrshlsv8hi */

    case 4:
      if (!
#line 4460 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2280; /* neon_vrshlsv2si */

    case 5:
      if (!
#line 4460 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2284; /* neon_vrshlsv4si */

    case 6:
      if (!
#line 4460 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2288; /* neon_vrshlsdi */

    case 7:
      if (!
#line 4460 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2292; /* neon_vrshlsv2di */

    default:
      return -1;
    }
}

static int
recog_152 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern159 (x1))
    {
    case 0:
      if (!
#line 4460 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2263; /* neon_vshluv8qi */

    case 1:
      if (!
#line 4460 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2267; /* neon_vshluv16qi */

    case 2:
      if (!
#line 4460 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2271; /* neon_vshluv4hi */

    case 3:
      if (!
#line 4460 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2275; /* neon_vshluv8hi */

    case 4:
      if (!
#line 4460 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2279; /* neon_vshluv2si */

    case 5:
      if (!
#line 4460 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2283; /* neon_vshluv4si */

    case 6:
      if (!
#line 4460 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2287; /* neon_vshludi */

    case 7:
      if (!
#line 4460 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2291; /* neon_vshluv2di */

    default:
      return -1;
    }
}

static int
recog_153 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern159 (x1))
    {
    case 0:
      if (!
#line 4460 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2262; /* neon_vshlsv8qi */

    case 1:
      if (!
#line 4460 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2266; /* neon_vshlsv16qi */

    case 2:
      if (!
#line 4460 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2270; /* neon_vshlsv4hi */

    case 3:
      if (!
#line 4460 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2274; /* neon_vshlsv8hi */

    case 4:
      if (!
#line 4460 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2278; /* neon_vshlsv2si */

    case 5:
      if (!
#line 4460 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2282; /* neon_vshlsv4si */

    case 6:
      if (!
#line 4460 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2286; /* neon_vshlsdi */

    case 7:
      if (!
#line 4460 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2290; /* neon_vshlsv2di */

    default:
      return -1;
    }
}

static int
recog_154 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern171 (x1))
    {
    case 0:
      if (!
#line 3739 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2114; /* neon_vcvtu_nv2sf */

    case 1:
      if (!
#line 3739 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2116; /* neon_vcvtu_nv4sf */

    case 2:
      if (!
#line 3753 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2118; /* neon_vcvtu_nv8hf */

    case 3:
      if (!
#line 3753 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2120; /* neon_vcvtu_nv4hf */

    case 4:
      if (!
#line 3766 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2122; /* neon_vcvtu_nv2si */

    case 5:
      if (!
#line 3766 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2124; /* neon_vcvtu_nv4si */

    case 6:
      if (!
#line 3780 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2126; /* neon_vcvtu_nv4hi */

    case 7:
      if (!
#line 3780 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2128; /* neon_vcvtu_nv8hi */

    default:
      return -1;
    }
}

static int
recog_155 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern171 (x1))
    {
    case 0:
      if (!
#line 3739 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2113; /* neon_vcvts_nv2sf */

    case 1:
      if (!
#line 3739 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2115; /* neon_vcvts_nv4sf */

    case 2:
      if (!
#line 3753 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2117; /* neon_vcvts_nv8hf */

    case 3:
      if (!
#line 3753 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2119; /* neon_vcvts_nv4hf */

    case 4:
      if (!
#line 3766 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2121; /* neon_vcvts_nv2si */

    case 5:
      if (!
#line 3766 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2123; /* neon_vcvts_nv4si */

    case 6:
      if (!
#line 3780 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2125; /* neon_vcvts_nv4hi */

    case 7:
      if (!
#line 3780 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2127; /* neon_vcvts_nv8hi */

    default:
      return -1;
    }
}

static int
recog_156 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V2SFmode:
      if (pattern42 (x3, E_V2SFmode) != 0
          || !
#line 2758 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1896; /* neon_vrecpsv2sf */

    case E_V4SFmode:
      if (pattern42 (x3, E_V4SFmode) != 0
          || !
#line 2758 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1897; /* neon_vrecpsv4sf */

    case E_V8HFmode:
      if (pattern42 (x3, E_V8HFmode) != 0
          || !
#line 2769 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1898; /* neon_vrecpsv8hf */

    case E_V4HFmode:
      if (pattern42 (x3, E_V4HFmode) != 0
          || !
#line 2769 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1899; /* neon_vrecpsv4hf */

    default:
      return -1;
    }
}

static int
recog_157 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HFmode:
      if (pattern42 (x3, E_V8HFmode) != 0
          || !
#line 2554 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1782; /* neon_vabdv8hf */

    case E_V4HFmode:
      if (pattern42 (x3, E_V4HFmode) != 0
          || !
#line 2554 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1783; /* neon_vabdv4hf */

    case E_V2SFmode:
      if (pattern42 (x3, E_V2SFmode) != 0
          || !
#line 2564 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1784; /* neon_vabdfv2sf */

    case E_V4SFmode:
      if (pattern42 (x3, E_V4SFmode) != 0
          || !
#line 2564 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1785; /* neon_vabdfv4sf */

    default:
      return -1;
    }
}

static int
recog_158 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern159 (x1))
    {
    case 0:
      if (!
#line 2244 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1617; /* neon_vqsubuv8qi */

    case 1:
      if (!
#line 2244 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1619; /* neon_vqsubuv16qi */

    case 2:
      if (!
#line 2244 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1621; /* neon_vqsubuv4hi */

    case 3:
      if (!
#line 2244 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1623; /* neon_vqsubuv8hi */

    case 4:
      if (!
#line 2244 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1625; /* neon_vqsubuv2si */

    case 5:
      if (!
#line 2244 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1627; /* neon_vqsubuv4si */

    case 6:
      if (!
#line 2244 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1629; /* neon_vqsubudi */

    case 7:
      if (!
#line 2244 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1631; /* neon_vqsubuv2di */

    default:
      return -1;
    }
}

static int
recog_159 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern159 (x1))
    {
    case 0:
      if (!
#line 2244 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1616; /* neon_vqsubsv8qi */

    case 1:
      if (!
#line 2244 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1618; /* neon_vqsubsv16qi */

    case 2:
      if (!
#line 2244 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1620; /* neon_vqsubsv4hi */

    case 3:
      if (!
#line 2244 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1622; /* neon_vqsubsv8hi */

    case 4:
      if (!
#line 2244 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1624; /* neon_vqsubsv2si */

    case 5:
      if (!
#line 2244 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1626; /* neon_vqsubsv4si */

    case 6:
      if (!
#line 2244 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1628; /* neon_vqsubsdi */

    case 7:
      if (!
#line 2244 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1630; /* neon_vqsubsv2di */

    default:
      return -1;
    }
}

static int
recog_160 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V8QImode:
      if (pattern42 (x3, E_V8QImode) != 0
          || !
#line 1572 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1513; /* neon_vmulpv8qi */

    case E_V16QImode:
      if (pattern42 (x3, E_V16QImode) != 0
          || !
#line 1572 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1514; /* neon_vmulpv16qi */

    case E_V2SFmode:
      if (pattern42 (x3, E_V2SFmode) != 0
          || !
#line 1572 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1515; /* neon_vmulfv2sf */

    case E_V4SFmode:
      if (pattern42 (x3, E_V4SFmode) != 0
          || !
#line 1572 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1516; /* neon_vmulfv4sf */

    default:
      return -1;
    }
}

static int
recog_161 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern159 (x1))
    {
    case 0:
      if (!
#line 1551 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1492; /* neon_vqadduv8qi */

    case 1:
      if (!
#line 1551 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1494; /* neon_vqadduv16qi */

    case 2:
      if (!
#line 1551 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1496; /* neon_vqadduv4hi */

    case 3:
      if (!
#line 1551 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1498; /* neon_vqadduv8hi */

    case 4:
      if (!
#line 1551 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1500; /* neon_vqadduv2si */

    case 5:
      if (!
#line 1551 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1502; /* neon_vqadduv4si */

    case 6:
      if (!
#line 1551 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1504; /* neon_vqaddudi */

    case 7:
      if (!
#line 1551 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1506; /* neon_vqadduv2di */

    default:
      return -1;
    }
}

static int
recog_162 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern159 (x1))
    {
    case 0:
      if (!
#line 1551 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1491; /* neon_vqaddsv8qi */

    case 1:
      if (!
#line 1551 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1493; /* neon_vqaddsv16qi */

    case 2:
      if (!
#line 1551 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1495; /* neon_vqaddsv4hi */

    case 3:
      if (!
#line 1551 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1497; /* neon_vqaddsv8hi */

    case 4:
      if (!
#line 1551 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1499; /* neon_vqaddsv2si */

    case 5:
      if (!
#line 1551 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1501; /* neon_vqaddsv4si */

    case 6:
      if (!
#line 1551 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1503; /* neon_vqaddsdi */

    case 7:
      if (!
#line 1551 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1505; /* neon_vqaddsv2di */

    default:
      return -1;
    }
}

static int
recog_163 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_V2SImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!register_operand (operands[0], E_V2SImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[1]))
    {
    case E_V8QImode:
      if (!register_operand (operands[1], E_V8QImode)
          || !register_operand (operands[2], E_V8QImode)
          || !
#line 1750 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 678; /* iwmmxt_wsadbz */

    case E_V4HImode:
      if (!register_operand (operands[1], E_V4HImode)
          || !register_operand (operands[2], E_V4HImode)
          || !
#line 1760 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 679; /* iwmmxt_wsadhz */

    default:
      return -1;
    }
}

static int
recog_164 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern180 (x1, E_OImode))
    {
    case 0:
      if (!
#line 5875 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2739; /* neon_vst4v8qi */

    case 1:
      if (!
#line 5875 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2740; /* neon_vst4v4hi */

    case 2:
      if (!
#line 5875 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2741; /* neon_vst4v4hf */

    case 3:
      if (!(
#line 5875 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 94 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
        return -1;
      return 2742; /* neon_vst4v4bf */

    case 4:
      if (!
#line 5875 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2743; /* neon_vst4v2si */

    case 5:
      if (!
#line 5875 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2744; /* neon_vst4v2sf */

    case 6:
      if (!
#line 5875 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2745; /* neon_vst4di */

    default:
      return -1;
    }
}

static int
recog_165 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern177 (x1, E_OImode))
    {
    case 0:
      if (!
#line 5684 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2701; /* neon_vld4v8qi */

    case 1:
      if (!
#line 5684 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2702; /* neon_vld4v4hi */

    case 2:
      if (!
#line 5684 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2703; /* neon_vld4v4hf */

    case 3:
      if (!(
#line 5684 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 94 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
        return -1;
      return 2704; /* neon_vld4v4bf */

    case 4:
      if (!
#line 5684 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2705; /* neon_vld4v2si */

    case 5:
      if (!
#line 5684 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2706; /* neon_vld4v2sf */

    case 6:
      if (!
#line 5684 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2707; /* neon_vld4di */

    default:
      return -1;
    }
}

static int
recog_166 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern180 (x1, E_EImode))
    {
    case 0:
      if (!
#line 5539 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2671; /* neon_vst3v8qi */

    case 1:
      if (!
#line 5539 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2672; /* neon_vst3v4hi */

    case 2:
      if (!
#line 5539 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2673; /* neon_vst3v4hf */

    case 3:
      if (!(
#line 5539 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 94 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
        return -1;
      return 2674; /* neon_vst3v4bf */

    case 4:
      if (!
#line 5539 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2675; /* neon_vst3v2si */

    case 5:
      if (!
#line 5539 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2676; /* neon_vst3v2sf */

    case 6:
      if (!
#line 5539 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2677; /* neon_vst3di */

    default:
      return -1;
    }
}

static int
recog_167 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern177 (x1, E_EImode))
    {
    case 0:
      if (!
#line 5346 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2633; /* neon_vld3v8qi */

    case 1:
      if (!
#line 5346 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2634; /* neon_vld3v4hi */

    case 2:
      if (!
#line 5346 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2635; /* neon_vld3v4hf */

    case 3:
      if (!(
#line 5346 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 94 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
        return -1;
      return 2636; /* neon_vld3v4bf */

    case 4:
      if (!
#line 5346 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2637; /* neon_vld3v2si */

    case 5:
      if (!
#line 5346 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2638; /* neon_vld3v2sf */

    case 6:
      if (!
#line 5346 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2639; /* neon_vld3di */

    default:
      return -1;
    }
}

static int
recog_168 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern152 (x1))
    {
    case 0:
      if (!
#line 903 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1373; /* ashlv8qi3_unsigned */

    case 1:
      if (!
#line 903 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1374; /* ashlv16qi3_unsigned */

    case 2:
      if (!
#line 903 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1375; /* ashlv4hi3_unsigned */

    case 3:
      if (!
#line 903 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1376; /* ashlv8hi3_unsigned */

    case 4:
      if (!
#line 903 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1377; /* ashlv2si3_unsigned */

    case 5:
      if (!
#line 903 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1378; /* ashlv4si3_unsigned */

    case 6:
      if (!
#line 903 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1379; /* ashlv2di3_unsigned */

    default:
      return -1;
    }
}

static int
recog_169 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern152 (x1))
    {
    case 0:
      if (!
#line 890 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1366; /* ashlv8qi3_signed */

    case 1:
      if (!
#line 890 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1367; /* ashlv16qi3_signed */

    case 2:
      if (!
#line 890 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1368; /* ashlv4hi3_signed */

    case 3:
      if (!
#line 890 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1369; /* ashlv8hi3_signed */

    case 4:
      if (!
#line 890 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1370; /* ashlv2si3_signed */

    case 5:
      if (!
#line 890 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1371; /* ashlv4si3_signed */

    case 6:
      if (!
#line 890 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1372; /* ashlv2di3_signed */

    default:
      return -1;
    }
}

static int
recog_170 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern151 (x1))
    {
    case 0:
      if (!
#line 2095 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
        return -1;
      return 913; /* neon_vminnmhf */

    case 1:
      if (!
#line 2106 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
        return -1;
      return 915; /* fminsf3 */

    case 2:
      if (!(
#line 2106 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
        return -1;
      return 917; /* fmindf3 */

    case 3:
      if (!
#line 2676 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1845; /* neon_vminnmv8hf */

    case 4:
      if (!
#line 2676 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1847; /* neon_vminnmv4hf */

    case 5:
      if (!
#line 2687 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
        return -1;
      return 1849; /* neon_vminnmv2sf */

    case 6:
      if (!
#line 2687 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
        return -1;
      return 1851; /* neon_vminnmv4sf */

    default:
      return -1;
    }
}

static int
recog_171 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern151 (x1))
    {
    case 0:
      if (!
#line 2095 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
        return -1;
      return 912; /* neon_vmaxnmhf */

    case 1:
      if (!
#line 2106 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
        return -1;
      return 914; /* fmaxsf3 */

    case 2:
      if (!(
#line 2106 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
        return -1;
      return 916; /* fmaxdf3 */

    case 3:
      if (!
#line 2676 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1844; /* neon_vmaxnmv8hf */

    case 4:
      if (!
#line 2676 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1846; /* neon_vmaxnmv4hf */

    case 5:
      if (!
#line 2687 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
        return -1;
      return 1848; /* neon_vmaxnmv2sf */

    case 6:
      if (!
#line 2687 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
        return -1;
      return 1850; /* neon_vmaxnmv4sf */

    default:
      return -1;
    }
}

static int
recog_172 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (pattern131 (x3))
    {
    case 0:
      if (!mve_imm_7 (operands[2], E_SImode)
          || !
#line 1631 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3474; /* mve_vqshluq_n_sv16qi */

    case 1:
      if (!mve_imm_15 (operands[2], E_SImode)
          || !
#line 1631 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3475; /* mve_vqshluq_n_sv8hi */

    case 2:
      if (!mve_imm_31 (operands[2], E_SImode)
          || !
#line 1631 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3476; /* mve_vqshluq_n_sv4si */

    default:
      return -1;
    }
}

static int
recog_173 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern181 (x1, E_XImode, E_OImode))
    {
    case 0:
      if (!
#line 5928 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2752; /* neon_vst4qbv16qi */

    case 1:
      if (!
#line 5928 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2753; /* neon_vst4qbv8hi */

    case 2:
      if (!
#line 5928 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2754; /* neon_vst4qbv8hf */

    case 3:
      if (!(
#line 5928 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 116 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
        return -1;
      return 2755; /* neon_vst4qbv8bf */

    case 4:
      if (!
#line 5928 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2756; /* neon_vst4qbv4si */

    case 5:
      if (!
#line 5928 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2757; /* neon_vst4qbv4sf */

    default:
      return -1;
    }
}

static int
recog_174 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern181 (x1, E_XImode, E_OImode))
    {
    case 0:
      if (!
#line 5908 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2746; /* neon_vst4qav16qi */

    case 1:
      if (!
#line 5908 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2747; /* neon_vst4qav8hi */

    case 2:
      if (!
#line 5908 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2748; /* neon_vst4qav8hf */

    case 3:
      if (!(
#line 5908 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 116 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
        return -1;
      return 2749; /* neon_vst4qav8bf */

    case 4:
      if (!
#line 5908 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2750; /* neon_vst4qav4si */

    case 5:
      if (!
#line 5908 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2751; /* neon_vst4qav4sf */

    default:
      return -1;
    }
}

static int
recog_175 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern178 (x1, E_OImode, E_XImode))
    {
    case 0:
      if (!
#line 5717 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2708; /* neon_vld4qav16qi */

    case 1:
      if (!
#line 5717 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2709; /* neon_vld4qav8hi */

    case 2:
      if (!
#line 5717 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2710; /* neon_vld4qav8hf */

    case 3:
      if (!(
#line 5717 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 116 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
        return -1;
      return 2711; /* neon_vld4qav8bf */

    case 4:
      if (!
#line 5717 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2712; /* neon_vld4qav4si */

    case 5:
      if (!
#line 5717 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2713; /* neon_vld4qav4sf */

    default:
      return -1;
    }
}

static int
recog_176 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern181 (x1, E_CImode, E_EImode))
    {
    case 0:
      if (!
#line 5600 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2684; /* neon_vst3qbv16qi */

    case 1:
      if (!
#line 5600 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2685; /* neon_vst3qbv8hi */

    case 2:
      if (!
#line 5600 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2686; /* neon_vst3qbv8hf */

    case 3:
      if (!(
#line 5600 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 116 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
        return -1;
      return 2687; /* neon_vst3qbv8bf */

    case 4:
      if (!
#line 5600 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2688; /* neon_vst3qbv4si */

    case 5:
      if (!
#line 5600 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2689; /* neon_vst3qbv4sf */

    default:
      return -1;
    }
}

static int
recog_177 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern181 (x1, E_CImode, E_EImode))
    {
    case 0:
      if (!
#line 5581 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2678; /* neon_vst3qav16qi */

    case 1:
      if (!
#line 5581 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2679; /* neon_vst3qav8hi */

    case 2:
      if (!
#line 5581 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2680; /* neon_vst3qav8hf */

    case 3:
      if (!(
#line 5581 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 116 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
        return -1;
      return 2681; /* neon_vst3qav8bf */

    case 4:
      if (!
#line 5581 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2682; /* neon_vst3qav4si */

    case 5:
      if (!
#line 5581 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2683; /* neon_vst3qav4sf */

    default:
      return -1;
    }
}

static int
recog_178 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern178 (x1, E_EImode, E_CImode))
    {
    case 0:
      if (!
#line 5389 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2640; /* neon_vld3qav16qi */

    case 1:
      if (!
#line 5389 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2641; /* neon_vld3qav8hi */

    case 2:
      if (!
#line 5389 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2642; /* neon_vld3qav8hf */

    case 3:
      if (!(
#line 5389 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 116 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
        return -1;
      return 2643; /* neon_vld3qav8bf */

    case 4:
      if (!
#line 5389 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2644; /* neon_vld3qav4si */

    case 5:
      if (!
#line 5389 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2645; /* neon_vld3qav4sf */

    default:
      return -1;
    }
}

static int
recog_179 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern168 (x1))
    {
    case 0:
      if (!
#line 2728 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1869; /* neon_vpadaluv8qi */

    case 1:
      if (!
#line 2728 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1871; /* neon_vpadaluv16qi */

    case 2:
      if (!
#line 2728 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1873; /* neon_vpadaluv4hi */

    case 3:
      if (!
#line 2728 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1875; /* neon_vpadaluv8hi */

    case 4:
      if (!
#line 2728 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1877; /* neon_vpadaluv2si */

    case 5:
      if (!
#line 2728 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1879; /* neon_vpadaluv4si */

    default:
      return -1;
    }
}

static int
recog_180 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern168 (x1))
    {
    case 0:
      if (!
#line 2728 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1868; /* neon_vpadalsv8qi */

    case 1:
      if (!
#line 2728 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1870; /* neon_vpadalsv16qi */

    case 2:
      if (!
#line 2728 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1872; /* neon_vpadalsv4hi */

    case 3:
      if (!
#line 2728 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1874; /* neon_vpadalsv8hi */

    case 4:
      if (!
#line 2728 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1876; /* neon_vpadalsv2si */

    case 5:
      if (!
#line 2728 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1878; /* neon_vpadalsv4si */

    default:
      return -1;
    }
}

static int
recog_181 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern167 (x1))
    {
    case 0:
      if (!
#line 2664 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1843; /* neon_vpminfv4hf */

    case 1:
      if (!
#line 2738 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1882; /* neon_vpminsv8qi */

    case 2:
      if (!
#line 2738 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1886; /* neon_vpminsv4hi */

    case 3:
      if (!
#line 2738 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1890; /* neon_vpminsv2si */

    case 4:
      if (!
#line 2748 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1893; /* neon_vpminfv2sf */

    case 5:
      if (!
#line 2748 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1895; /* neon_vpminfv4sf */

    default:
      return -1;
    }
}

static int
recog_182 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern167 (x1))
    {
    case 0:
      if (!
#line 2664 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1842; /* neon_vpmaxfv4hf */

    case 1:
      if (!
#line 2738 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1880; /* neon_vpmaxsv8qi */

    case 2:
      if (!
#line 2738 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1884; /* neon_vpmaxsv4hi */

    case 3:
      if (!
#line 2738 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1888; /* neon_vpmaxsv2si */

    case 4:
      if (!
#line 2748 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1892; /* neon_vpmaxfv2sf */

    case 5:
      if (!
#line 2748 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1894; /* neon_vpmaxfv4sf */

    default:
      return -1;
    }
}

static int
recog_183 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern158 (x1))
    {
    case 0:
      if (!
#line 2632 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1813; /* neon_vminuv8qi */

    case 1:
      if (!
#line 2632 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1817; /* neon_vminuv16qi */

    case 2:
      if (!
#line 2632 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1821; /* neon_vminuv4hi */

    case 3:
      if (!
#line 2632 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1825; /* neon_vminuv8hi */

    case 4:
      if (!
#line 2632 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1829; /* neon_vminuv2si */

    case 5:
      if (!
#line 2632 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1833; /* neon_vminuv4si */

    default:
      return -1;
    }
}

static int
recog_184 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern158 (x1))
    {
    case 0:
      if (!
#line 2632 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1811; /* neon_vmaxuv8qi */

    case 1:
      if (!
#line 2632 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1815; /* neon_vmaxuv16qi */

    case 2:
      if (!
#line 2632 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1819; /* neon_vmaxuv4hi */

    case 3:
      if (!
#line 2632 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1823; /* neon_vmaxuv8hi */

    case 4:
      if (!
#line 2632 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1827; /* neon_vmaxuv2si */

    case 5:
      if (!
#line 2632 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1831; /* neon_vmaxuv4si */

    default:
      return -1;
    }
}

static int
recog_185 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern158 (x1))
    {
    case 0:
      if (!
#line 2544 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1771; /* neon_vabduv8qi */

    case 1:
      if (!
#line 2544 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1773; /* neon_vabduv16qi */

    case 2:
      if (!
#line 2544 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1775; /* neon_vabduv4hi */

    case 3:
      if (!
#line 2544 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1777; /* neon_vabduv8hi */

    case 4:
      if (!
#line 2544 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1779; /* neon_vabduv2si */

    case 5:
      if (!
#line 2544 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1781; /* neon_vabduv4si */

    default:
      return -1;
    }
}

static int
recog_186 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern158 (x1))
    {
    case 0:
      if (!
#line 2544 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1770; /* neon_vabdsv8qi */

    case 1:
      if (!
#line 2544 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1772; /* neon_vabdsv16qi */

    case 2:
      if (!
#line 2544 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1774; /* neon_vabdsv4hi */

    case 3:
      if (!
#line 2544 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1776; /* neon_vabdsv8hi */

    case 4:
      if (!
#line 2544 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1778; /* neon_vabdsv2si */

    case 5:
      if (!
#line 2544 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1780; /* neon_vabdsv4si */

    default:
      return -1;
    }
}

static int
recog_187 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern158 (x1))
    {
    case 0:
      if (!
#line 2254 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1633; /* neon_vhsubuv8qi */

    case 1:
      if (!
#line 2254 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1635; /* neon_vhsubuv16qi */

    case 2:
      if (!
#line 2254 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1637; /* neon_vhsubuv4hi */

    case 3:
      if (!
#line 2254 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1639; /* neon_vhsubuv8hi */

    case 4:
      if (!
#line 2254 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1641; /* neon_vhsubuv2si */

    case 5:
      if (!
#line 2254 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1643; /* neon_vhsubuv4si */

    default:
      return -1;
    }
}

static int
recog_188 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern158 (x1))
    {
    case 0:
      if (!
#line 2254 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1632; /* neon_vhsubsv8qi */

    case 1:
      if (!
#line 2254 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1634; /* neon_vhsubsv16qi */

    case 2:
      if (!
#line 2254 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1636; /* neon_vhsubsv4hi */

    case 3:
      if (!
#line 2254 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1638; /* neon_vhsubsv8hi */

    case 4:
      if (!
#line 2254 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1640; /* neon_vhsubsv2si */

    case 5:
      if (!
#line 2254 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1642; /* neon_vhsubsv4si */

    default:
      return -1;
    }
}

static int
recog_189 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern158 (x1))
    {
    case 0:
      if (!
#line 1541 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1470; /* neon_vhadduv8qi */

    case 1:
      if (!
#line 1541 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1474; /* neon_vhadduv16qi */

    case 2:
      if (!
#line 1541 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1478; /* neon_vhadduv4hi */

    case 3:
      if (!
#line 1541 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1482; /* neon_vhadduv8hi */

    case 4:
      if (!
#line 1541 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1486; /* neon_vhadduv2si */

    case 5:
      if (!
#line 1541 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1490; /* neon_vhadduv4si */

    default:
      return -1;
    }
}

static int
recog_190 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern158 (x1))
    {
    case 0:
      if (!
#line 1541 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1469; /* neon_vhaddsv8qi */

    case 1:
      if (!
#line 1541 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1473; /* neon_vhaddsv16qi */

    case 2:
      if (!
#line 1541 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1477; /* neon_vhaddsv4hi */

    case 3:
      if (!
#line 1541 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1481; /* neon_vhaddsv8hi */

    case 4:
      if (!
#line 1541 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1485; /* neon_vhaddsv2si */

    case 5:
      if (!
#line 1541 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1489; /* neon_vhaddsv4si */

    default:
      return -1;
    }
}

static int
recog_191 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern158 (x1))
    {
    case 0:
      if (!
#line 1541 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1468; /* neon_vrhadduv8qi */

    case 1:
      if (!
#line 1541 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1472; /* neon_vrhadduv16qi */

    case 2:
      if (!
#line 1541 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1476; /* neon_vrhadduv4hi */

    case 3:
      if (!
#line 1541 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1480; /* neon_vrhadduv8hi */

    case 4:
      if (!
#line 1541 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1484; /* neon_vrhadduv2si */

    case 5:
      if (!
#line 1541 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1488; /* neon_vrhadduv4si */

    default:
      return -1;
    }
}

static int
recog_192 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern158 (x1))
    {
    case 0:
      if (!
#line 1541 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1467; /* neon_vrhaddsv8qi */

    case 1:
      if (!
#line 1541 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1471; /* neon_vrhaddsv16qi */

    case 2:
      if (!
#line 1541 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1475; /* neon_vrhaddsv4hi */

    case 3:
      if (!
#line 1541 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1479; /* neon_vrhaddsv8hi */

    case 4:
      if (!
#line 1541 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1483; /* neon_vrhaddsv2si */

    case 5:
      if (!
#line 1541 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1487; /* neon_vrhaddsv4si */

    default:
      return -1;
    }
}

static int
recog_193 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  if (pnum_clobbers == NULL)
    return -1;
  x2 = XEXP (x1, 1);
  x3 = XVECEXP (x2, 0, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != 0
      || GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XVECEXP (x2, 0, 1);
  if (GET_CODE (x4) != LABEL_REF)
    return -1;
  x5 = XEXP (x1, 0);
  if (GET_CODE (x5) != PC)
    return -1;
  x6 = XEXP (x4, 0);
  operands[0] = x6;
  if (!
#line 1944 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
    return -1;
  *pnum_clobbers = 2;
  return 992; /* thumb1_casesi_dispatch */
}

static int
recog_194 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern147 (x1))
    {
    case 0:
      if (!
#line 365 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vec-common.md"
(ARM_HAVE_V8QI_ARITH && !TARGET_REALLY_IWMMXT))
        return -1;
      return 512; /* mve_vshlq_uv8qi */

    case 1:
      if (!
#line 365 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vec-common.md"
(ARM_HAVE_V16QI_ARITH && !TARGET_REALLY_IWMMXT))
        return -1;
      return 514; /* mve_vshlq_uv16qi */

    case 2:
      if (!
#line 365 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vec-common.md"
(ARM_HAVE_V4HI_ARITH && !TARGET_REALLY_IWMMXT))
        return -1;
      return 516; /* mve_vshlq_uv4hi */

    case 3:
      if (!
#line 365 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vec-common.md"
(ARM_HAVE_V8HI_ARITH && !TARGET_REALLY_IWMMXT))
        return -1;
      return 518; /* mve_vshlq_uv8hi */

    case 4:
      if (!
#line 365 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vec-common.md"
(ARM_HAVE_V2SI_ARITH && !TARGET_REALLY_IWMMXT))
        return -1;
      return 520; /* mve_vshlq_uv2si */

    case 5:
      if (!
#line 365 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vec-common.md"
(ARM_HAVE_V4SI_ARITH && !TARGET_REALLY_IWMMXT))
        return -1;
      return 522; /* mve_vshlq_uv4si */

    default:
      return -1;
    }
}

static int
recog_195 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern147 (x1))
    {
    case 0:
      if (!
#line 365 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vec-common.md"
(ARM_HAVE_V8QI_ARITH && !TARGET_REALLY_IWMMXT))
        return -1;
      return 511; /* mve_vshlq_sv8qi */

    case 1:
      if (!
#line 365 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vec-common.md"
(ARM_HAVE_V16QI_ARITH && !TARGET_REALLY_IWMMXT))
        return -1;
      return 513; /* mve_vshlq_sv16qi */

    case 2:
      if (!
#line 365 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vec-common.md"
(ARM_HAVE_V4HI_ARITH && !TARGET_REALLY_IWMMXT))
        return -1;
      return 515; /* mve_vshlq_sv4hi */

    case 3:
      if (!
#line 365 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vec-common.md"
(ARM_HAVE_V8HI_ARITH && !TARGET_REALLY_IWMMXT))
        return -1;
      return 517; /* mve_vshlq_sv8hi */

    case 4:
      if (!
#line 365 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vec-common.md"
(ARM_HAVE_V2SI_ARITH && !TARGET_REALLY_IWMMXT))
        return -1;
      return 519; /* mve_vshlq_sv2si */

    case 5:
      if (!
#line 365 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vec-common.md"
(ARM_HAVE_V4SI_ARITH && !TARGET_REALLY_IWMMXT))
        return -1;
      return 521; /* mve_vshlq_sv4si */

    default:
      return -1;
    }
}

static int
recog_196 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern222 (x1, E_XImode))
    {
    case 0:
      if (!
#line 10032 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V16QImode))
   || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V16QImode))))
        return -1;
      return 4899; /* mve_vld4qv16qi */

    case 1:
      if (!
#line 10032 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V8HImode))
   || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V8HImode))))
        return -1;
      return 4900; /* mve_vld4qv8hi */

    case 2:
      if (!
#line 10032 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V4SImode))
   || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V4SImode))))
        return -1;
      return 4901; /* mve_vld4qv4si */

    case 3:
      if (!
#line 10032 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V8HFmode))
   || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V8HFmode))))
        return -1;
      return 4902; /* mve_vld4qv8hf */

    case 4:
      if (!
#line 10032 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V4SFmode))
   || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V4SFmode))))
        return -1;
      return 4903; /* mve_vld4qv4sf */

    default:
      return -1;
    }
}

static int
recog_197 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern222 (x1, E_OImode))
    {
    case 0:
      if (!
#line 10004 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V16QImode))
   || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V16QImode))))
        return -1;
      return 4894; /* mve_vld2qv16qi */

    case 1:
      if (!
#line 10004 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V8HImode))
   || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V8HImode))))
        return -1;
      return 4895; /* mve_vld2qv8hi */

    case 2:
      if (!
#line 10004 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V4SImode))
   || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V4SImode))))
        return -1;
      return 4896; /* mve_vld2qv4si */

    case 3:
      if (!
#line 10004 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V8HFmode))
   || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V8HFmode))))
        return -1;
      return 4897; /* mve_vld2qv8hf */

    case 4:
      if (!
#line 10004 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V4SFmode))
   || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V4SFmode))))
        return -1;
      return 4898; /* mve_vld2qv4sf */

    default:
      return -1;
    }
}

static int
recog_198 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern182 (x1, E_OImode))
    {
    case 0:
      if (!
#line 9976 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V16QImode))
   || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V16QImode))))
        return -1;
      return 4889; /* mve_vst2qv16qi */

    case 1:
      if (!
#line 9976 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V8HImode))
   || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V8HImode))))
        return -1;
      return 4890; /* mve_vst2qv8hi */

    case 2:
      if (!
#line 9976 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V4SImode))
   || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V4SImode))))
        return -1;
      return 4891; /* mve_vst2qv4si */

    case 3:
      if (!
#line 9976 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V8HFmode))
   || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V8HFmode))))
        return -1;
      return 4892; /* mve_vst2qv8hf */

    case 4:
      if (!
#line 9976 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V4SFmode))
   || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V4SFmode))))
        return -1;
      return 4893; /* mve_vst2qv4sf */

    default:
      return -1;
    }
}

static int
recog_199 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern182 (x1, E_XImode))
    {
    case 0:
      if (!
#line 107 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3053; /* mve_vst4qv16qi */

    case 1:
      if (!
#line 107 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3054; /* mve_vst4qv8hi */

    case 2:
      if (!
#line 107 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3055; /* mve_vst4qv4si */

    case 3:
      if (!
#line 107 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3056; /* mve_vst4qv8hf */

    case 4:
      if (!
#line 107 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3057; /* mve_vst4qv4sf */

    default:
      return -1;
    }
}

static int
recog_200 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_BLKmode)
    return -1;
  x3 = XEXP (x1, 0);
  if (GET_CODE (x3) != MEM
      || GET_MODE (x3) != E_BLKmode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != SCRATCH)
    return -1;
  x5 = XVECEXP (x2, 0, 0);
  operands[0] = x5;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x6 = XVECEXP (x2, 0, 1);
  operands[1] = x6;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  return 385; /* stack_tie */
}

static int
recog_201 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_V8HFmode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], E_V8HFmode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!mve_memory_operand (operands[1], E_V8HImode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!vpr_register_operand (operands[2], E_V8BImode)
      || !
#line 7512 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
    return -1;
  return 4719; /* mve_vldrhq_z_fv8hf */
}

static int
recog_202 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern185 (x1))
    {
    case 0:
      if (!
#line 740 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3182; /* mve_vcreateq_sv16qi */

    case 1:
      if (!
#line 740 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3184; /* mve_vcreateq_sv8hi */

    case 2:
      if (!
#line 740 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3186; /* mve_vcreateq_sv4si */

    case 3:
      if (!
#line 740 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3188; /* mve_vcreateq_sv2di */

    default:
      return -1;
    }
}

static int
recog_203 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern185 (x1))
    {
    case 0:
      if (!
#line 740 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3181; /* mve_vcreateq_uv16qi */

    case 1:
      if (!
#line 740 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3183; /* mve_vcreateq_uv8hi */

    case 2:
      if (!
#line 740 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3185; /* mve_vcreateq_uv4si */

    case 3:
      if (!
#line 740 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3187; /* mve_vcreateq_uv2di */

    default:
      return -1;
    }
}

static int
recog_204 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_V8BFmode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!register_operand (operands[0], E_V8BFmode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!register_operand (operands[1], E_V8BFmode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!register_operand (operands[2], E_V4SFmode)
      || !
#line 6403 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
    return -1;
  return 2836; /* neon_vbfcvtv4sf_highv8bf */
}

static int
recog_205 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern165 (x1))
    {
    case 0:
      if (!
#line 2467 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1743; /* neon_vcaltv2sf_insn_unspec */

    case 1:
      if (!
#line 2467 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1747; /* neon_vcaltv4sf_insn_unspec */

    case 2:
      if (!
#line 2508 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1759; /* neon_vcaltv8hf_fp16insn_unspec */

    case 3:
      if (!
#line 2508 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1763; /* neon_vcaltv4hf_fp16insn_unspec */

    default:
      return -1;
    }
}

static int
recog_206 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern165 (x1))
    {
    case 0:
      if (!
#line 2467 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1742; /* neon_vcalev2sf_insn_unspec */

    case 1:
      if (!
#line 2467 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1746; /* neon_vcalev4sf_insn_unspec */

    case 2:
      if (!
#line 2508 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1758; /* neon_vcalev8hf_fp16insn_unspec */

    case 3:
      if (!
#line 2508 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1762; /* neon_vcalev4hf_fp16insn_unspec */

    default:
      return -1;
    }
}

static int
recog_207 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern165 (x1))
    {
    case 0:
      if (!
#line 2467 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1741; /* neon_vcagtv2sf_insn_unspec */

    case 1:
      if (!
#line 2467 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1745; /* neon_vcagtv4sf_insn_unspec */

    case 2:
      if (!
#line 2508 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1757; /* neon_vcagtv8hf_fp16insn_unspec */

    case 3:
      if (!
#line 2508 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1761; /* neon_vcagtv4hf_fp16insn_unspec */

    default:
      return -1;
    }
}

static int
recog_208 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern165 (x1))
    {
    case 0:
      if (!
#line 2467 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1740; /* neon_vcagev2sf_insn_unspec */

    case 1:
      if (!
#line 2467 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1744; /* neon_vcagev4sf_insn_unspec */

    case 2:
      if (!
#line 2508 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1756; /* neon_vcagev8hf_fp16insn_unspec */

    case 3:
      if (!
#line 2508 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1760; /* neon_vcagev4hf_fp16insn_unspec */

    default:
      return -1;
    }
}

static int
recog_209 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern164 (x1))
    {
    case 0:
      if (!
#line 2342 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1694; /* neon_vclev2sf_insn_unspec */

    case 1:
      if (!
#line 2342 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1699; /* neon_vclev4sf_insn_unspec */

    case 2:
      if (!
#line 2409 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1714; /* neon_vclev8hf_fp16insn_unspec */

    case 3:
      if (!
#line 2409 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1719; /* neon_vclev4hf_fp16insn_unspec */

    default:
      return -1;
    }
}

static int
recog_210 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern164 (x1))
    {
    case 0:
      if (!
#line 2342 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1693; /* neon_vcltv2sf_insn_unspec */

    case 1:
      if (!
#line 2342 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1698; /* neon_vcltv4sf_insn_unspec */

    case 2:
      if (!
#line 2409 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1713; /* neon_vcltv8hf_fp16insn_unspec */

    case 3:
      if (!
#line 2409 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1718; /* neon_vcltv4hf_fp16insn_unspec */

    default:
      return -1;
    }
}

static int
recog_211 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern164 (x1))
    {
    case 0:
      if (!
#line 2342 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1692; /* neon_vcgev2sf_insn_unspec */

    case 1:
      if (!
#line 2342 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1697; /* neon_vcgev4sf_insn_unspec */

    case 2:
      if (!
#line 2409 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1712; /* neon_vcgev8hf_fp16insn_unspec */

    case 3:
      if (!
#line 2409 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1717; /* neon_vcgev4hf_fp16insn_unspec */

    default:
      return -1;
    }
}

static int
recog_212 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern164 (x1))
    {
    case 0:
      if (!
#line 2342 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1691; /* neon_vcgtv2sf_insn_unspec */

    case 1:
      if (!
#line 2342 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1696; /* neon_vcgtv4sf_insn_unspec */

    case 2:
      if (!
#line 2409 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1711; /* neon_vcgtv8hf_fp16insn_unspec */

    case 3:
      if (!
#line 2409 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1716; /* neon_vcgtv4hf_fp16insn_unspec */

    default:
      return -1;
    }
}

static int
recog_213 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern164 (x1))
    {
    case 0:
      if (!
#line 2342 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1690; /* neon_vceqv2sf_insn_unspec */

    case 1:
      if (!
#line 2342 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1695; /* neon_vceqv4sf_insn_unspec */

    case 2:
      if (!
#line 2409 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1710; /* neon_vceqv8hf_fp16insn_unspec */

    case 3:
      if (!
#line 2409 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1715; /* neon_vceqv4hf_fp16insn_unspec */

    default:
      return -1;
    }
}

static int
recog_214 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern161 (x1))
    {
    case 0:
      if (!
#line 2131 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1572; /* neon_vqrdmulhv4hi */

    case 1:
      if (!
#line 2131 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1574; /* neon_vqrdmulhv2si */

    case 2:
      if (!
#line 2131 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1576; /* neon_vqrdmulhv8hi */

    case 3:
      if (!
#line 2131 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1578; /* neon_vqrdmulhv4si */

    default:
      return -1;
    }
}

static int
recog_215 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern161 (x1))
    {
    case 0:
      if (!
#line 2131 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1571; /* neon_vqdmulhv4hi */

    case 1:
      if (!
#line 2131 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1573; /* neon_vqdmulhv2si */

    case 2:
      if (!
#line 2131 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1575; /* neon_vqdmulhv8hi */

    case 3:
      if (!
#line 2131 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1577; /* neon_vqdmulhv4si */

    default:
      return -1;
    }
}

static int
recog_216 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern153 (x1))
    {
    case 0:
      if (!
#line 1340 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1427; /* neon_vpsmaxv8qi */

    case 1:
      if (!
#line 1340 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1428; /* neon_vpsmaxv4hi */

    case 2:
      if (!
#line 1340 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1429; /* neon_vpsmaxv2si */

    case 3:
      if (!
#line 1340 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1430; /* neon_vpsmaxv2sf */

    default:
      return -1;
    }
}

static int
recog_217 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern153 (x1))
    {
    case 0:
      if (!
#line 1327 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1423; /* neon_vpsminv8qi */

    case 1:
      if (!
#line 1327 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1424; /* neon_vpsminv4hi */

    case 2:
      if (!
#line 1327 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1425; /* neon_vpsminv2si */

    case 3:
      if (!
#line 1327 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1426; /* neon_vpsminv2sf */

    default:
      return -1;
    }
}

static int
recog_218 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_V4HImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!register_operand (operands[0], E_V4HImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!register_operand (operands[1], E_V4HImode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!immediate_operand (operands[2], E_SImode)
      || !
#line 780 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
    return -1;
  return 586; /* iwmmxt_wshufh */
}

static int
recog_219 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!usat16_imm (operands[2], E_SImode)
      || !
#line 6152 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ))
    return -1;
  return 252; /* arm_usat16_insn */
}

static int
recog_220 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!ssat16_imm (operands[2], E_SImode)
      || !
#line 6152 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ))
    return -1;
  return 250; /* arm_ssat16_insn */
}

static int
recog_221 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  if (!const_int_coproc_operand (operands[1], E_SImode))
    return -1;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  if (!const_int_ccde1_operand (operands[2], E_SImode))
    return -1;
  switch (pattern431 (x3))
    {
    case 0:
      if (!
#line 4514 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_CDE))
        return -1;
      return 139; /* arm_cx1si */

    case 1:
      if (!
#line 4514 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_CDE))
        return -1;
      return 140; /* arm_cx1di */

    default:
      return -1;
    }
}

static int
recog_222 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (pattern231 (x1) != 0)
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_OImode:
      if (!s_register_operand (operands[0], E_OImode))
        return -1;
      x2 = XEXP (x1, 1);
      if (GET_MODE (x2) != E_OImode
          || !s_register_operand (operands[2], E_OImode))
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case E_SImode:
          if (!neon_struct_operand (operands[1], E_SImode))
            return -1;
          x3 = XVECEXP (x2, 0, 3);
          if (GET_MODE (x3) != E_V8QImode
              || !
#line 5762 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2720; /* neon_vld4_lanev8qi */

        case E_V4HImode:
          if (!neon_struct_operand (operands[1], E_V4HImode))
            return -1;
          x3 = XVECEXP (x2, 0, 3);
          if (GET_MODE (x3) != E_V4HImode
              || !
#line 5762 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2721; /* neon_vld4_lanev4hi */

        case E_V4HFmode:
          if (!neon_struct_operand (operands[1], E_V4HFmode))
            return -1;
          x3 = XVECEXP (x2, 0, 3);
          if (GET_MODE (x3) != E_V4HFmode
              || !
#line 5762 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2722; /* neon_vld4_lanev4hf */

        case E_V4BFmode:
          if (!neon_struct_operand (operands[1], E_V4BFmode))
            return -1;
          x3 = XVECEXP (x2, 0, 3);
          if (GET_MODE (x3) != E_V4BFmode
              || !
#line 5762 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2723; /* neon_vld4_lanev4bf */

        case E_V4SImode:
          if (!neon_struct_operand (operands[1], E_V4SImode))
            return -1;
          x3 = XVECEXP (x2, 0, 3);
          if (GET_MODE (x3) != E_V2SImode
              || !
#line 5762 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2724; /* neon_vld4_lanev2si */

        case E_V4SFmode:
          if (!neon_struct_operand (operands[1], E_V4SFmode))
            return -1;
          x3 = XVECEXP (x2, 0, 3);
          if (GET_MODE (x3) != E_V2SFmode
              || !
#line 5762 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2725; /* neon_vld4_lanev2sf */

        default:
          return -1;
        }

    case E_XImode:
      if (!s_register_operand (operands[0], E_XImode))
        return -1;
      x2 = XEXP (x1, 1);
      if (GET_MODE (x2) != E_XImode
          || !s_register_operand (operands[2], E_XImode))
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case E_V4HImode:
          if (!neon_struct_operand (operands[1], E_V4HImode))
            return -1;
          x3 = XVECEXP (x2, 0, 3);
          if (GET_MODE (x3) != E_V8HImode
              || !
#line 5789 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2726; /* neon_vld4_lanev8hi */

        case E_V4HFmode:
          if (!neon_struct_operand (operands[1], E_V4HFmode))
            return -1;
          x3 = XVECEXP (x2, 0, 3);
          if (GET_MODE (x3) != E_V8HFmode
              || !
#line 5789 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2727; /* neon_vld4_lanev8hf */

        case E_V4SImode:
          if (!neon_struct_operand (operands[1], E_V4SImode))
            return -1;
          x3 = XVECEXP (x2, 0, 3);
          if (GET_MODE (x3) != E_V4SImode
              || !
#line 5789 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2728; /* neon_vld4_lanev4si */

        case E_V4SFmode:
          if (!neon_struct_operand (operands[1], E_V4SFmode))
            return -1;
          x3 = XVECEXP (x2, 0, 3);
          if (GET_MODE (x3) != E_V4SFmode
              || !
#line 5789 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2729; /* neon_vld4_lanev4sf */

        case E_V4BFmode:
          if (!neon_struct_operand (operands[1], E_V4BFmode))
            return -1;
          x3 = XVECEXP (x2, 0, 3);
          if (GET_MODE (x3) != E_V8BFmode
              || !(
#line 5789 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 119 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
            return -1;
          return 2730; /* neon_vld4_lanev8bf */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_223 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (pattern231 (x1) != 0)
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_TImode:
      if (!s_register_operand (operands[0], E_TImode))
        return -1;
      x2 = XEXP (x1, 1);
      if (GET_MODE (x2) != E_TImode
          || !s_register_operand (operands[2], E_TImode))
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case E_HImode:
          if (!neon_struct_operand (operands[1], E_HImode))
            return -1;
          x3 = XVECEXP (x2, 0, 3);
          if (GET_MODE (x3) != E_V8QImode
              || !
#line 5161 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2590; /* neon_vld2_lanev8qi */

        case E_SImode:
          if (!neon_struct_operand (operands[1], E_SImode))
            return -1;
          x3 = XVECEXP (x2, 0, 3);
          if (GET_MODE (x3) != E_V4HImode
              || !
#line 5161 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2591; /* neon_vld2_lanev4hi */

        case E_SFmode:
          if (!neon_struct_operand (operands[1], E_SFmode))
            return -1;
          x3 = XVECEXP (x2, 0, 3);
          if (GET_MODE (x3) != E_V4HFmode
              || !
#line 5161 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2592; /* neon_vld2_lanev4hf */

        case E_BFmode:
          if (!neon_struct_operand (operands[1], E_BFmode))
            return -1;
          x3 = XVECEXP (x2, 0, 3);
          if (GET_MODE (x3) != E_V4BFmode
              || !
#line 5161 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2593; /* neon_vld2_lanev4bf */

        case E_V2SImode:
          if (!neon_struct_operand (operands[1], E_V2SImode))
            return -1;
          x3 = XVECEXP (x2, 0, 3);
          if (GET_MODE (x3) != E_V2SImode
              || !
#line 5161 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2594; /* neon_vld2_lanev2si */

        case E_V2SFmode:
          if (!neon_struct_operand (operands[1], E_V2SFmode))
            return -1;
          x3 = XVECEXP (x2, 0, 3);
          if (GET_MODE (x3) != E_V2SFmode
              || !
#line 5161 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2595; /* neon_vld2_lanev2sf */

        default:
          return -1;
        }

    case E_OImode:
      if (!s_register_operand (operands[0], E_OImode))
        return -1;
      x2 = XEXP (x1, 1);
      if (GET_MODE (x2) != E_OImode
          || !s_register_operand (operands[2], E_OImode))
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case E_SImode:
          if (!neon_struct_operand (operands[1], E_SImode))
            return -1;
          x3 = XVECEXP (x2, 0, 3);
          if (GET_MODE (x3) != E_V8HImode
              || !
#line 5185 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2596; /* neon_vld2_lanev8hi */

        case E_SFmode:
          if (!neon_struct_operand (operands[1], E_SFmode))
            return -1;
          x3 = XVECEXP (x2, 0, 3);
          if (GET_MODE (x3) != E_V8HFmode
              || !
#line 5185 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2597; /* neon_vld2_lanev8hf */

        case E_V2SImode:
          if (!neon_struct_operand (operands[1], E_V2SImode))
            return -1;
          x3 = XVECEXP (x2, 0, 3);
          if (GET_MODE (x3) != E_V4SImode
              || !
#line 5185 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2598; /* neon_vld2_lanev4si */

        case E_V2SFmode:
          if (!neon_struct_operand (operands[1], E_V2SFmode))
            return -1;
          x3 = XVECEXP (x2, 0, 3);
          if (GET_MODE (x3) != E_V4SFmode
              || !
#line 5185 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2599; /* neon_vld2_lanev4sf */

        case E_BFmode:
          if (!neon_struct_operand (operands[1], E_BFmode))
            return -1;
          x3 = XVECEXP (x2, 0, 3);
          if (GET_MODE (x3) != E_V8BFmode
              || !(
#line 5185 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 119 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
            return -1;
          return 2600; /* neon_vld2_lanev8bf */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_224 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XVECEXP (x2, 0, 3);
  if (GET_CODE (x3) != UNSPEC
      || XVECLEN (x3, 0) != 1
      || XINT (x3, 1) != 327)
    return -1;
  x4 = XVECEXP (x3, 0, 0);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x5 = XEXP (x1, 0);
  operands[0] = x5;
  x6 = XVECEXP (x2, 0, 0);
  operands[1] = x6;
  if (!neon_struct_operand (operands[1], E_BLKmode))
    return -1;
  x7 = XVECEXP (x2, 0, 1);
  operands[2] = x7;
  x8 = XVECEXP (x2, 0, 2);
  operands[3] = x8;
  if (!immediate_operand (operands[3], E_SImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_EImode:
      if (!s_register_operand (operands[0], E_EImode)
          || GET_MODE (x2) != E_EImode
          || !s_register_operand (operands[2], E_EImode))
        return -1;
      switch (GET_MODE (x3))
        {
        case E_V8QImode:
          if (!
#line 5432 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2652; /* neon_vld3_lanev8qi */

        case E_V4HImode:
          if (!
#line 5432 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2653; /* neon_vld3_lanev4hi */

        case E_V4HFmode:
          if (!
#line 5432 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2654; /* neon_vld3_lanev4hf */

        case E_V4BFmode:
          if (!
#line 5432 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2655; /* neon_vld3_lanev4bf */

        case E_V2SImode:
          if (!
#line 5432 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2656; /* neon_vld3_lanev2si */

        case E_V2SFmode:
          if (!
#line 5432 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2657; /* neon_vld3_lanev2sf */

        default:
          return -1;
        }

    case E_CImode:
      if (!s_register_operand (operands[0], E_CImode)
          || GET_MODE (x2) != E_CImode
          || !s_register_operand (operands[2], E_CImode))
        return -1;
      switch (GET_MODE (x3))
        {
        case E_V8HImode:
          if (!
#line 5458 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2658; /* neon_vld3_lanev8hi */

        case E_V8HFmode:
          if (!
#line 5458 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2659; /* neon_vld3_lanev8hf */

        case E_V4SImode:
          if (!
#line 5458 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2660; /* neon_vld3_lanev4si */

        case E_V4SFmode:
          if (!
#line 5458 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2661; /* neon_vld3_lanev4sf */

        case E_V8BFmode:
          if (!(
#line 5458 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 119 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
            return -1;
          return 2662; /* neon_vld3_lanev8bf */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_225 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  switch (pattern227 (x1))
    {
    case 0:
      x2 = XEXP (x1, 1);
      if (pattern518 (x2, E_SImode) != 0
          || !
#line 2238 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_CDE && (TARGET_ARM_FP || TARGET_HAVE_MVE)))
        return -1;
      return 930; /* arm_vcx3si */

    case 1:
      x2 = XEXP (x1, 1);
      if (pattern518 (x2, E_DImode) != 0
          || !
#line 2238 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_CDE && (TARGET_ARM_FP || TARGET_HAVE_MVE)))
        return -1;
      return 931; /* arm_vcx3di */

    case 2:
      x2 = XEXP (x1, 1);
      if (pattern517 (x2) != 0
          || !const_int_mve_cde3_operand (operands[4], E_SImode)
          || !
#line 10420 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_CDE && TARGET_HAVE_MVE))
        return -1;
      return 4946; /* arm_vcx3qv16qi */

    case 3:
      if (!
#line 10445 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_CDE && TARGET_HAVE_MVE))
        return -1;
      return 4948; /* arm_vcx1q_p_v16qi */

    default:
      return -1;
    }
}

static int
recog_226 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  switch (pattern227 (x1))
    {
    case 0:
      x2 = XEXP (x1, 1);
      if (pattern516 (x2, E_SImode) != 0
          || !
#line 2226 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_CDE && (TARGET_ARM_FP || TARGET_HAVE_MVE)))
        return -1;
      return 928; /* arm_vcx2asi */

    case 1:
      x2 = XEXP (x1, 1);
      if (pattern516 (x2, E_DImode) != 0
          || !
#line 2226 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_CDE && (TARGET_ARM_FP || TARGET_HAVE_MVE)))
        return -1;
      return 929; /* arm_vcx2adi */

    case 2:
      x2 = XEXP (x1, 1);
      if (pattern517 (x2) != 0
          || !const_int_mve_cde2_operand (operands[4], E_SImode)
          || !
#line 10408 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_CDE && TARGET_HAVE_MVE))
        return -1;
      return 4945; /* arm_vcx2qav16qi */

    case 3:
      if (!
#line 10445 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_CDE && TARGET_HAVE_MVE))
        return -1;
      return 4949; /* arm_vcx1qa_p_v16qi */

    default:
      return -1;
    }
}

static int
recog_227 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern229 (x1))
    {
    case 0:
      if (!
#line 4044 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2205; /* neon_vmls_lanev4hi */

    case 1:
      if (!
#line 4044 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2206; /* neon_vmls_lanev2si */

    case 2:
      if (!
#line 4044 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2207; /* neon_vmls_lanev2sf */

    case 3:
      if (!
#line 4062 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2208; /* neon_vmls_lanev8hi */

    case 4:
      if (!
#line 4062 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2209; /* neon_vmls_lanev4si */

    case 5:
      if (!
#line 4062 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2210; /* neon_vmls_lanev4sf */

    default:
      return -1;
    }
}

static int
recog_228 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern229 (x1))
    {
    case 0:
      if (!
#line 3978 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2193; /* neon_vmla_lanev4hi */

    case 1:
      if (!
#line 3978 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2194; /* neon_vmla_lanev2si */

    case 2:
      if (!
#line 3978 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2195; /* neon_vmla_lanev2sf */

    case 3:
      if (!
#line 3996 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2196; /* neon_vmla_lanev8hi */

    case 4:
      if (!
#line 3996 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2197; /* neon_vmla_lanev4si */

    case 5:
      if (!
#line 3996 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2198; /* neon_vmla_lanev4sf */

    default:
      return -1;
    }
}

static int
recog_229 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  if (!const_int_coproc_operand (operands[1], E_SImode))
    return -1;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  if (!s_register_operand (operands[2], E_SImode))
    return -1;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  if (!s_register_operand (operands[3], E_SImode))
    return -1;
  x7 = XVECEXP (x3, 0, 3);
  operands[4] = x7;
  if (!const_int_ccde3_operand (operands[4], E_SImode))
    return -1;
  switch (pattern431 (x3))
    {
    case 0:
      if (!
#line 4560 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_CDE))
        return -1;
      return 147; /* arm_cx3si */

    case 1:
      if (!
#line 4560 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_CDE))
        return -1;
      return 148; /* arm_cx3di */

    default:
      return -1;
    }
}

static int
recog_230 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  if (!s_register_operand (operands[3], E_SImode))
    return -1;
  x7 = XVECEXP (x3, 0, 3);
  operands[4] = x7;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HFmode:
      if (pattern244 (x3, E_V8BImode, E_V8HFmode) != 0
          || !
#line 6694 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4594; /* mve_vbrsrq_m_n_fv8hf */

    case E_V4SFmode:
      if (pattern244 (x3, E_V4BImode, E_V4SFmode) != 0
          || !
#line 6694 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4595; /* mve_vbrsrq_m_n_fv4sf */

    default:
      return -1;
    }
}

static int
recog_231 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  if (!const_int_coproc_operand (operands[1], E_SImode))
    return -1;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  if (!s_register_operand (operands[3], E_SImode))
    return -1;
  x7 = XVECEXP (x3, 0, 3);
  operands[4] = x7;
  if (!const_int_ccde2_operand (operands[4], E_SImode))
    return -1;
  switch (pattern462 (x3))
    {
    case 0:
      if (!
#line 4548 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_CDE))
        return -1;
      return 145; /* arm_cx2asi */

    case 1:
      if (!
#line 4548 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_CDE))
        return -1;
      return 146; /* arm_cx2adi */

    default:
      return -1;
    }
}

static int
recog_232 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern228 (x1))
    {
    case 0:
      if (!
#line 3946 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
        return -1;
      return 2186; /* neon_vqrdmlsh_lanev8hi */

    case 1:
      if (!
#line 3946 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
        return -1;
      return 2188; /* neon_vqrdmlsh_lanev4si */

    case 2:
      if (!
#line 3962 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
        return -1;
      return 2190; /* neon_vqrdmlsh_lanev4hi */

    case 3:
      if (!
#line 3962 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
        return -1;
      return 2192; /* neon_vqrdmlsh_lanev2si */

    default:
      return -1;
    }
}

static int
recog_233 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern228 (x1))
    {
    case 0:
      if (!
#line 3946 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
        return -1;
      return 2185; /* neon_vqrdmlah_lanev8hi */

    case 1:
      if (!
#line 3946 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
        return -1;
      return 2187; /* neon_vqrdmlah_lanev4si */

    case 2:
      if (!
#line 3962 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
        return -1;
      return 2189; /* neon_vqrdmlah_lanev4hi */

    case 3:
      if (!
#line 3962 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
        return -1;
      return 2191; /* neon_vqrdmlah_lanev2si */

    default:
      return -1;
    }
}

static int
recog_234 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (XINT (x2, 1))
    {
    case 79:
      if (pattern30 (x1) != 0
          || !
#line 2778 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY && !ARM_Q_BIT_READ))
        return -1;
      return 86; /* arm_smlawb_insn */

    case 80:
      if (pattern30 (x1) != 0
          || !
#line 2778 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY && !ARM_Q_BIT_READ))
        return -1;
      return 88; /* arm_smlawt_insn */

    case 103:
      return recog_94 (x1, insn, pnum_clobbers);

    case 102:
      return recog_87 (x1, insn, pnum_clobbers);

    case 74:
      if (pattern30 (x1) != 0
          || !
#line 6063 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 221; /* arm_usada8 */

    case 75:
      if (pattern31 (x1) != 0
          || !
#line 6074 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 222; /* arm_smlald */

    case 76:
      if (pattern31 (x1) != 0
          || !
#line 6074 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 223; /* arm_smlaldx */

    case 77:
      if (pattern31 (x1) != 0
          || !
#line 6074 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 224; /* arm_smlsld */

    case 78:
      if (pattern31 (x1) != 0
          || !
#line 6074 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 225; /* arm_smlsldx */

    case 94:
      if (pattern30 (x1) != 0
          || !
#line 6097 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ))
        return -1;
      return 238; /* arm_smlad_insn */

    case 95:
      if (pattern30 (x1) != 0
          || !
#line 6097 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ))
        return -1;
      return 240; /* arm_smladx_insn */

    case 96:
      if (pattern30 (x1) != 0
          || !
#line 6097 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ))
        return -1;
      return 242; /* arm_smlsd_insn */

    case 97:
      if (pattern30 (x1) != 0
          || !
#line 6097 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ))
        return -1;
      return 244; /* arm_smlsdx_insn */

    case 81:
      return recog_81 (x1, insn, pnum_clobbers);

    case 2:
      return recog_84 (x1, insn, pnum_clobbers);

    case 17:
      return recog_86 (x1, insn, pnum_clobbers);

    case 11:
      if (pattern32 (x1) != 0
          || !
#line 518 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 566; /* iwmmxt_wmacs */

    case 12:
      if (pattern32 (x1) != 0
          || !
#line 539 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 568; /* iwmmxt_wmacu */

    case 9:
      return recog_72 (x1, insn, pnum_clobbers);

    case 105:
      return recog_71 (x1, insn, pnum_clobbers);

    case 104:
      return recog_70 (x1, insn, pnum_clobbers);

    case 219:
      return recog_80 (x1, insn, pnum_clobbers);

    case 221:
      switch (pattern36 (x1))
        {
        case 0:
          if (!
#line 2077 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1551; /* neon_vmlalsv8qi */

        case 1:
          if (!
#line 2077 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1553; /* neon_vmlalsv4hi */

        case 2:
          if (!
#line 2077 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1555; /* neon_vmlalsv2si */

        default:
          return -1;
        }

    case 222:
      switch (pattern36 (x1))
        {
        case 0:
          if (!
#line 2077 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1552; /* neon_vmlaluv8qi */

        case 1:
          if (!
#line 2077 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1554; /* neon_vmlaluv4hi */

        case 2:
          if (!
#line 2077 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1556; /* neon_vmlaluv2si */

        default:
          return -1;
        }

    case 225:
      return recog_79 (x1, insn, pnum_clobbers);

    case 227:
      switch (pattern36 (x1))
        {
        case 0:
          if (!
#line 2120 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1565; /* neon_vmlslsv8qi */

        case 1:
          if (!
#line 2120 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1567; /* neon_vmlslsv4hi */

        case 2:
          if (!
#line 2120 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1569; /* neon_vmlslsv2si */

        default:
          return -1;
        }

    case 228:
      switch (pattern36 (x1))
        {
        case 0:
          if (!
#line 2120 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1566; /* neon_vmlsluv8qi */

        case 1:
          if (!
#line 2120 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1568; /* neon_vmlsluv4hi */

        case 2:
          if (!
#line 2120 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1570; /* neon_vmlsluv2si */

        default:
          return -1;
        }

    case 353:
      return recog_93 (x1, insn, pnum_clobbers);

    case 354:
      return recog_92 (x1, insn, pnum_clobbers);

    case 260:
      switch (pattern38 (x1))
        {
        case 0:
          if (!
#line 2154 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1587; /* neon_vqdmlalv4hi */

        case 1:
          if (!
#line 2154 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1588; /* neon_vqdmlalv2si */

        default:
          return -1;
        }

    case 262:
      switch (pattern38 (x1))
        {
        case 0:
          if (!
#line 2165 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1589; /* neon_vqdmlslv4hi */

        case 1:
          if (!
#line 2165 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1590; /* neon_vqdmlslv2si */

        default:
          return -1;
        }

    case 241:
      return recog_68 (x1, insn, pnum_clobbers);

    case 242:
      switch (pattern40 (x1))
        {
        case 0:
          if (!
#line 3888 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2171; /* neon_vmulls_lanev4hi */

        case 1:
          if (!
#line 3888 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2173; /* neon_vmulls_lanev2si */

        default:
          return -1;
        }

    case 243:
      switch (pattern40 (x1))
        {
        case 0:
          if (!
#line 3888 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2172; /* neon_vmullu_lanev4hi */

        case 1:
          if (!
#line 3888 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2174; /* neon_vmullu_lanev2si */

        default:
          return -1;
        }

    case 269:
      switch (pattern40 (x1))
        {
        case 0:
          if (!
#line 3902 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2175; /* neon_vqdmull_lanev4hi */

        case 1:
          if (!
#line 3902 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2176; /* neon_vqdmull_lanev2si */

        default:
          return -1;
        }

    case 265:
      return recog_91 (x1, insn, pnum_clobbers);

    case 267:
      return recog_90 (x1, insn, pnum_clobbers);

    case 191:
      return recog_63 (x1, insn, pnum_clobbers);

    case 160:
      return recog_64 (x1, insn, pnum_clobbers);

    case 310:
      return recog_78 (x1, insn, pnum_clobbers);

    case 311:
      return recog_76 (x1, insn, pnum_clobbers);

    case 312:
      return recog_77 (x1, insn, pnum_clobbers);

    case 313:
      return recog_75 (x1, insn, pnum_clobbers);

    case 314:
      return recog_74 (x1, insn, pnum_clobbers);

    case 309:
      return recog_73 (x1, insn, pnum_clobbers);

    case 336:
      return recog_69 (x1, insn, pnum_clobbers);

    case 199:
      return recog_62 (x1, insn, pnum_clobbers);

    case 318:
      return recog_67 (x1, insn, pnum_clobbers);

    case 205:
      return recog_83 (x1, insn, pnum_clobbers);

    case 322:
      return recog_65 (x1, insn, pnum_clobbers);

    case 210:
      return recog_82 (x1, insn, pnum_clobbers);

    case 326:
      return recog_66 (x1, insn, pnum_clobbers);

    case 138:
      if (pattern47 (x1) != 0
          || !
#line 225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO))
        return -1;
      return 2863; /* crypto_sha1su0 */

    case 140:
      if (pattern47 (x1) != 0
          || !
#line 225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO))
        return -1;
      return 2864; /* crypto_sha256h */

    case 141:
      if (pattern47 (x1) != 0
          || !
#line 225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO))
        return -1;
      return 2865; /* crypto_sha256h2 */

    case 143:
      if (pattern47 (x1) != 0
          || !
#line 225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO))
        return -1;
      return 2866; /* crypto_sha256su1 */

    case 134:
      if (pattern48 (x1) != 0
          || !
#line 295 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO && INTVAL (operands[4]) == NEON_ENDIAN_LANE_N (V2SImode, 0)))
        return -1;
      return 2869; /* crypto_sha1c_lb */

    case 135:
      if (pattern48 (x1) != 0
          || !
#line 295 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO && INTVAL (operands[4]) == NEON_ENDIAN_LANE_N (V2SImode, 0)))
        return -1;
      return 2870; /* crypto_sha1m_lb */

    case 136:
      if (pattern48 (x1) != 0
          || !
#line 295 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO && INTVAL (operands[4]) == NEON_ENDIAN_LANE_N (V2SImode, 0)))
        return -1;
      return 2871; /* crypto_sha1p_lb */

    case 750:
      switch (pattern50 (x1))
        {
        case 0:
          if (!
#line 143 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3058; /* mve_vrndq_m_fv8hf */

        case 1:
          if (!
#line 143 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3059; /* mve_vrndq_m_fv4sf */

        default:
          return -1;
        }

    case 598:
      switch (pattern52 (x1))
        {
        case 0:
          if (!
#line 2563 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3689; /* mve_vbicq_m_n_sv8hi */

        case 1:
          if (!
#line 2563 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3691; /* mve_vbicq_m_n_sv4si */

        default:
          return -1;
        }

    case 599:
      switch (pattern52 (x1))
        {
        case 0:
          if (!
#line 2563 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3690; /* mve_vbicq_m_n_uv8hi */

        case 1:
          if (!
#line 2563 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3692; /* mve_vbicq_m_n_uv4si */

        default:
          return -1;
        }

    case 600:
      switch (pattern54 (x1))
        {
        case 0:
          if (!
#line 2578 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3693; /* mve_vcmpeqq_m_fv8hf */

        case 1:
          if (!
#line 2578 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3694; /* mve_vcmpeqq_m_fv4sf */

        default:
          return -1;
        }

    case 601:
      switch (pattern56 (x1, E_V8BImode, E_V8HFmode, E_V4BImode, E_V4SFmode))
        {
        case 0:
          if (!
#line 2593 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3695; /* mve_vcvtaq_m_sv8hi */

        case 1:
          if (!
#line 2593 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3697; /* mve_vcvtaq_m_sv4si */

        default:
          return -1;
        }

    case 602:
      switch (pattern56 (x1, E_V8BImode, E_V8HFmode, E_V4BImode, E_V4SFmode))
        {
        case 0:
          if (!
#line 2593 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3696; /* mve_vcvtaq_m_uv8hi */

        case 1:
          if (!
#line 2593 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3698; /* mve_vcvtaq_m_uv4si */

        default:
          return -1;
        }

    case 603:
      switch (pattern57 (x1, E_V8HImode, E_V4SImode))
        {
        case 0:
          if (!
#line 2608 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3699; /* mve_vcvtq_m_to_f_sv8hf */

        case 1:
          if (!
#line 2608 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3701; /* mve_vcvtq_m_to_f_sv4sf */

        default:
          return -1;
        }

    case 604:
      switch (pattern57 (x1, E_V8HImode, E_V4SImode))
        {
        case 0:
          if (!
#line 2608 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3700; /* mve_vcvtq_m_to_f_uv8hf */

        case 1:
          if (!
#line 2608 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3702; /* mve_vcvtq_m_to_f_uv4sf */

        default:
          return -1;
        }

    case 605:
      switch (pattern60 (x1))
        {
        case 0:
          if (!
#line 2623 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3703; /* mve_vqrshrnbq_n_uv8hi */

        case 1:
          if (!
#line 2623 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3705; /* mve_vqrshrnbq_n_uv4si */

        default:
          return -1;
        }

    case 606:
      switch (pattern60 (x1))
        {
        case 0:
          if (!
#line 2623 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3704; /* mve_vqrshrnbq_n_sv8hi */

        case 1:
          if (!
#line 2623 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3706; /* mve_vqrshrnbq_n_sv4si */

        default:
          return -1;
        }

    case 607:
      switch (pattern60 (x1))
        {
        case 0:
          if (!
#line 2638 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3707; /* mve_vqrshrunbq_n_sv8hi */

        case 1:
          if (!
#line 2638 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3708; /* mve_vqrshrunbq_n_sv4si */

        default:
          return -1;
        }

    case 608:
      if (pattern61 (x1) != 0
          || !
#line 2653 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3709; /* mve_vrmlaldavhaq_sv4si */

    case 613:
      if (pattern61 (x1) != 0
          || !
#line 2653 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3710; /* mve_vrmlaldavhaq_uv4si */

    case 609:
      switch (pattern62 (x1))
        {
        case 0:
          if (!
#line 2669 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3711; /* mve_vabavq_sv16qi */

        case 1:
          if (!
#line 2669 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3713; /* mve_vabavq_sv8hi */

        case 2:
          if (!
#line 2669 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3715; /* mve_vabavq_sv4si */

        default:
          return -1;
        }

    case 610:
      switch (pattern62 (x1))
        {
        case 0:
          if (!
#line 2669 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3712; /* mve_vabavq_uv16qi */

        case 1:
          if (!
#line 2669 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3714; /* mve_vabavq_uv8hi */

        case 2:
          if (!
#line 2669 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3716; /* mve_vabavq_uv4si */

        default:
          return -1;
        }

    case 614:
      switch (pattern63 (x1))
        {
        case 0:
          if (!
#line 2730 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3723; /* mve_vabsq_m_sv16qi */

        case 1:
          if (!
#line 2730 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3724; /* mve_vabsq_m_sv8hi */

        case 2:
          if (!
#line 2730 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3725; /* mve_vabsq_m_sv4si */

        default:
          return -1;
        }

    case 615:
      switch (pattern64 (x1))
        {
        case 0:
          if (!
#line 2746 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3726; /* mve_vaddvaq_p_sv16qi */

        case 1:
          if (!
#line 2746 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3728; /* mve_vaddvaq_p_sv8hi */

        case 2:
          if (!
#line 2746 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3730; /* mve_vaddvaq_p_sv4si */

        default:
          return -1;
        }

    case 616:
      switch (pattern64 (x1))
        {
        case 0:
          if (!
#line 2746 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3727; /* mve_vaddvaq_p_uv16qi */

        case 1:
          if (!
#line 2746 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3729; /* mve_vaddvaq_p_uv8hi */

        case 2:
          if (!
#line 2746 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3731; /* mve_vaddvaq_p_uv4si */

        default:
          return -1;
        }

    case 617:
      switch (pattern63 (x1))
        {
        case 0:
          if (!
#line 2762 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3732; /* mve_vclsq_m_sv16qi */

        case 1:
          if (!
#line 2762 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3733; /* mve_vclsq_m_sv8hi */

        case 2:
          if (!
#line 2762 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3734; /* mve_vclsq_m_sv4si */

        default:
          return -1;
        }

    case 618:
      switch (pattern63 (x1))
        {
        case 0:
          if (!
#line 2778 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3735; /* mve_vclzq_m_sv16qi */

        case 1:
          if (!
#line 2778 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3737; /* mve_vclzq_m_sv8hi */

        case 2:
          if (!
#line 2778 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3739; /* mve_vclzq_m_sv4si */

        default:
          return -1;
        }

    case 619:
      switch (pattern63 (x1))
        {
        case 0:
          if (!
#line 2778 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3736; /* mve_vclzq_m_uv16qi */

        case 1:
          if (!
#line 2778 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3738; /* mve_vclzq_m_uv8hi */

        case 2:
          if (!
#line 2778 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3740; /* mve_vclzq_m_uv4si */

        default:
          return -1;
        }

    case 620:
      switch (pattern66 (x1))
        {
        case 0:
          if (!
#line 2794 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3741; /* mve_vcmpcsq_m_n_uv16qi */

        case 1:
          if (!
#line 2794 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3742; /* mve_vcmpcsq_m_n_uv8hi */

        case 2:
          if (!
#line 2794 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3743; /* mve_vcmpcsq_m_n_uv4si */

        default:
          return -1;
        }

    case 621:
      switch (pattern67 (x1))
        {
        case 0:
          if (!
#line 2810 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3744; /* mve_vcmpcsq_m_uv16qi */

        case 1:
          if (!
#line 2810 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3745; /* mve_vcmpcsq_m_uv8hi */

        case 2:
          if (!
#line 2810 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3746; /* mve_vcmpcsq_m_uv4si */

        default:
          return -1;
        }

    case 622:
      switch (pattern66 (x1))
        {
        case 0:
          if (!
#line 2826 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3747; /* mve_vcmpeqq_m_n_sv16qi */

        case 1:
          if (!
#line 2826 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3749; /* mve_vcmpeqq_m_n_sv8hi */

        case 2:
          if (!
#line 2826 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3751; /* mve_vcmpeqq_m_n_sv4si */

        default:
          return -1;
        }

    case 623:
      switch (pattern66 (x1))
        {
        case 0:
          if (!
#line 2826 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3748; /* mve_vcmpeqq_m_n_uv16qi */

        case 1:
          if (!
#line 2826 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3750; /* mve_vcmpeqq_m_n_uv8hi */

        case 2:
          if (!
#line 2826 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3752; /* mve_vcmpeqq_m_n_uv4si */

        default:
          return -1;
        }

    case 624:
      switch (pattern67 (x1))
        {
        case 0:
          if (!
#line 2842 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3753; /* mve_vcmpeqq_m_sv16qi */

        case 1:
          if (!
#line 2842 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3755; /* mve_vcmpeqq_m_sv8hi */

        case 2:
          if (!
#line 2842 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3757; /* mve_vcmpeqq_m_sv4si */

        default:
          return -1;
        }

    case 625:
      switch (pattern67 (x1))
        {
        case 0:
          if (!
#line 2842 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3754; /* mve_vcmpeqq_m_uv16qi */

        case 1:
          if (!
#line 2842 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3756; /* mve_vcmpeqq_m_uv8hi */

        case 2:
          if (!
#line 2842 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3758; /* mve_vcmpeqq_m_uv4si */

        default:
          return -1;
        }

    case 626:
      switch (pattern66 (x1))
        {
        case 0:
          if (!
#line 2858 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3759; /* mve_vcmpgeq_m_n_sv16qi */

        case 1:
          if (!
#line 2858 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3760; /* mve_vcmpgeq_m_n_sv8hi */

        case 2:
          if (!
#line 2858 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3761; /* mve_vcmpgeq_m_n_sv4si */

        default:
          return -1;
        }

    case 627:
      switch (pattern67 (x1))
        {
        case 0:
          if (!
#line 2874 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3762; /* mve_vcmpgeq_m_sv16qi */

        case 1:
          if (!
#line 2874 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3763; /* mve_vcmpgeq_m_sv8hi */

        case 2:
          if (!
#line 2874 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3764; /* mve_vcmpgeq_m_sv4si */

        default:
          return -1;
        }

    case 628:
      switch (pattern66 (x1))
        {
        case 0:
          if (!
#line 2890 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3765; /* mve_vcmpgtq_m_n_sv16qi */

        case 1:
          if (!
#line 2890 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3766; /* mve_vcmpgtq_m_n_sv8hi */

        case 2:
          if (!
#line 2890 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3767; /* mve_vcmpgtq_m_n_sv4si */

        default:
          return -1;
        }

    case 629:
      switch (pattern67 (x1))
        {
        case 0:
          if (!
#line 2906 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3768; /* mve_vcmpgtq_m_sv16qi */

        case 1:
          if (!
#line 2906 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3769; /* mve_vcmpgtq_m_sv8hi */

        case 2:
          if (!
#line 2906 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3770; /* mve_vcmpgtq_m_sv4si */

        default:
          return -1;
        }

    case 630:
      switch (pattern66 (x1))
        {
        case 0:
          if (!
#line 2922 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3771; /* mve_vcmphiq_m_n_uv16qi */

        case 1:
          if (!
#line 2922 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3772; /* mve_vcmphiq_m_n_uv8hi */

        case 2:
          if (!
#line 2922 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3773; /* mve_vcmphiq_m_n_uv4si */

        default:
          return -1;
        }

    case 631:
      switch (pattern67 (x1))
        {
        case 0:
          if (!
#line 2938 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3774; /* mve_vcmphiq_m_uv16qi */

        case 1:
          if (!
#line 2938 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3775; /* mve_vcmphiq_m_uv8hi */

        case 2:
          if (!
#line 2938 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3776; /* mve_vcmphiq_m_uv4si */

        default:
          return -1;
        }

    case 632:
      switch (pattern66 (x1))
        {
        case 0:
          if (!
#line 2954 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3777; /* mve_vcmpleq_m_n_sv16qi */

        case 1:
          if (!
#line 2954 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3778; /* mve_vcmpleq_m_n_sv8hi */

        case 2:
          if (!
#line 2954 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3779; /* mve_vcmpleq_m_n_sv4si */

        default:
          return -1;
        }

    case 633:
      switch (pattern67 (x1))
        {
        case 0:
          if (!
#line 2970 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3780; /* mve_vcmpleq_m_sv16qi */

        case 1:
          if (!
#line 2970 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3781; /* mve_vcmpleq_m_sv8hi */

        case 2:
          if (!
#line 2970 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3782; /* mve_vcmpleq_m_sv4si */

        default:
          return -1;
        }

    case 634:
      switch (pattern66 (x1))
        {
        case 0:
          if (!
#line 2986 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3783; /* mve_vcmpltq_m_n_sv16qi */

        case 1:
          if (!
#line 2986 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3784; /* mve_vcmpltq_m_n_sv8hi */

        case 2:
          if (!
#line 2986 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3785; /* mve_vcmpltq_m_n_sv4si */

        default:
          return -1;
        }

    case 635:
      switch (pattern67 (x1))
        {
        case 0:
          if (!
#line 3002 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3786; /* mve_vcmpltq_m_sv16qi */

        case 1:
          if (!
#line 3002 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3787; /* mve_vcmpltq_m_sv8hi */

        case 2:
          if (!
#line 3002 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3788; /* mve_vcmpltq_m_sv4si */

        default:
          return -1;
        }

    case 636:
      switch (pattern66 (x1))
        {
        case 0:
          if (!
#line 3018 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3789; /* mve_vcmpneq_m_n_sv16qi */

        case 1:
          if (!
#line 3018 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3791; /* mve_vcmpneq_m_n_sv8hi */

        case 2:
          if (!
#line 3018 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3793; /* mve_vcmpneq_m_n_sv4si */

        default:
          return -1;
        }

    case 637:
      switch (pattern66 (x1))
        {
        case 0:
          if (!
#line 3018 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3790; /* mve_vcmpneq_m_n_uv16qi */

        case 1:
          if (!
#line 3018 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3792; /* mve_vcmpneq_m_n_uv8hi */

        case 2:
          if (!
#line 3018 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3794; /* mve_vcmpneq_m_n_uv4si */

        default:
          return -1;
        }

    case 638:
      switch (pattern67 (x1))
        {
        case 0:
          if (!
#line 3034 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3795; /* mve_vcmpneq_m_sv16qi */

        case 1:
          if (!
#line 3034 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3797; /* mve_vcmpneq_m_sv8hi */

        case 2:
          if (!
#line 3034 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3799; /* mve_vcmpneq_m_sv4si */

        default:
          return -1;
        }

    case 639:
      switch (pattern67 (x1))
        {
        case 0:
          if (!
#line 3034 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3796; /* mve_vcmpneq_m_uv16qi */

        case 1:
          if (!
#line 3034 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3798; /* mve_vcmpneq_m_uv8hi */

        case 2:
          if (!
#line 3034 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3800; /* mve_vcmpneq_m_uv4si */

        default:
          return -1;
        }

    case 640:
      switch (pattern68 (x1))
        {
        case 0:
          if (!
#line 3050 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3801; /* mve_vdupq_m_n_sv16qi */

        case 1:
          if (!
#line 3050 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3803; /* mve_vdupq_m_n_sv8hi */

        case 2:
          if (!
#line 3050 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3805; /* mve_vdupq_m_n_sv4si */

        default:
          return -1;
        }

    case 641:
      switch (pattern68 (x1))
        {
        case 0:
          if (!
#line 3050 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3802; /* mve_vdupq_m_n_uv16qi */

        case 1:
          if (!
#line 3050 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3804; /* mve_vdupq_m_n_uv8hi */

        case 2:
          if (!
#line 3050 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3806; /* mve_vdupq_m_n_uv4si */

        default:
          return -1;
        }

    case 646:
      switch (pattern63 (x1))
        {
        case 0:
          if (!
#line 3066 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3807; /* mve_vmaxaq_m_sv16qi */

        case 1:
          if (!
#line 3066 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3808; /* mve_vmaxaq_m_sv8hi */

        case 2:
          if (!
#line 3066 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3809; /* mve_vmaxaq_m_sv4si */

        default:
          return -1;
        }

    case 647:
      switch (pattern69 (x1))
        {
        case 0:
          if (!
#line 3082 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3810; /* mve_vmaxavq_p_sv16qi */

        case 1:
          if (!
#line 3082 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3811; /* mve_vmaxavq_p_sv8hi */

        case 2:
          if (!
#line 3082 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3812; /* mve_vmaxavq_p_sv4si */

        default:
          return -1;
        }

    case 648:
      switch (pattern69 (x1))
        {
        case 0:
          if (!
#line 3098 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3813; /* mve_vmaxvq_p_sv16qi */

        case 1:
          if (!
#line 3098 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3815; /* mve_vmaxvq_p_sv8hi */

        case 2:
          if (!
#line 3098 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3817; /* mve_vmaxvq_p_sv4si */

        default:
          return -1;
        }

    case 649:
      switch (pattern69 (x1))
        {
        case 0:
          if (!
#line 3098 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3814; /* mve_vmaxvq_p_uv16qi */

        case 1:
          if (!
#line 3098 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3816; /* mve_vmaxvq_p_uv8hi */

        case 2:
          if (!
#line 3098 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3818; /* mve_vmaxvq_p_uv4si */

        default:
          return -1;
        }

    case 650:
      switch (pattern63 (x1))
        {
        case 0:
          if (!
#line 3114 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3819; /* mve_vminaq_m_sv16qi */

        case 1:
          if (!
#line 3114 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3820; /* mve_vminaq_m_sv8hi */

        case 2:
          if (!
#line 3114 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3821; /* mve_vminaq_m_sv4si */

        default:
          return -1;
        }

    case 651:
      switch (pattern69 (x1))
        {
        case 0:
          if (!
#line 3130 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3822; /* mve_vminavq_p_sv16qi */

        case 1:
          if (!
#line 3130 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3823; /* mve_vminavq_p_sv8hi */

        case 2:
          if (!
#line 3130 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3824; /* mve_vminavq_p_sv4si */

        default:
          return -1;
        }

    case 652:
      switch (pattern69 (x1))
        {
        case 0:
          if (!
#line 3146 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3825; /* mve_vminvq_p_sv16qi */

        case 1:
          if (!
#line 3146 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3827; /* mve_vminvq_p_sv8hi */

        case 2:
          if (!
#line 3146 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3829; /* mve_vminvq_p_sv4si */

        default:
          return -1;
        }

    case 653:
      switch (pattern69 (x1))
        {
        case 0:
          if (!
#line 3146 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3826; /* mve_vminvq_p_uv16qi */

        case 1:
          if (!
#line 3146 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3828; /* mve_vminvq_p_uv8hi */

        case 2:
          if (!
#line 3146 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3830; /* mve_vminvq_p_uv4si */

        default:
          return -1;
        }

    case 654:
      switch (pattern62 (x1))
        {
        case 0:
          if (!
#line 3162 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3831; /* mve_vmladavaq_sv16qi */

        case 1:
          if (!
#line 3162 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3833; /* mve_vmladavaq_sv8hi */

        case 2:
          if (!
#line 3162 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3835; /* mve_vmladavaq_sv4si */

        default:
          return -1;
        }

    case 655:
      switch (pattern62 (x1))
        {
        case 0:
          if (!
#line 3162 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3832; /* mve_vmladavaq_uv16qi */

        case 1:
          if (!
#line 3162 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3834; /* mve_vmladavaq_uv8hi */

        case 2:
          if (!
#line 3162 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3836; /* mve_vmladavaq_uv4si */

        default:
          return -1;
        }

    case 656:
      switch (pattern70 (x1))
        {
        case 0:
          if (!
#line 3178 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3837; /* mve_vmladavq_p_sv16qi */

        case 1:
          if (!
#line 3178 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3839; /* mve_vmladavq_p_sv8hi */

        case 2:
          if (!
#line 3178 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3841; /* mve_vmladavq_p_sv4si */

        default:
          return -1;
        }

    case 657:
      switch (pattern70 (x1))
        {
        case 0:
          if (!
#line 3178 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3838; /* mve_vmladavq_p_uv16qi */

        case 1:
          if (!
#line 3178 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3840; /* mve_vmladavq_p_uv8hi */

        case 2:
          if (!
#line 3178 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3842; /* mve_vmladavq_p_uv4si */

        default:
          return -1;
        }

    case 658:
      switch (pattern70 (x1))
        {
        case 0:
          if (!
#line 3194 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3843; /* mve_vmladavxq_p_sv16qi */

        case 1:
          if (!
#line 3194 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3844; /* mve_vmladavxq_p_sv8hi */

        case 2:
          if (!
#line 3194 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3845; /* mve_vmladavxq_p_sv4si */

        default:
          return -1;
        }

    case 659:
      switch (pattern72 (x1))
        {
        case 0:
          if (!
#line 3210 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3846; /* mve_vmlaq_n_sv16qi */

        case 1:
          if (!
#line 3210 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3848; /* mve_vmlaq_n_sv8hi */

        case 2:
          if (!
#line 3210 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3850; /* mve_vmlaq_n_sv4si */

        default:
          return -1;
        }

    case 660:
      switch (pattern72 (x1))
        {
        case 0:
          if (!
#line 3210 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3847; /* mve_vmlaq_n_uv16qi */

        case 1:
          if (!
#line 3210 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3849; /* mve_vmlaq_n_uv8hi */

        case 2:
          if (!
#line 3210 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3851; /* mve_vmlaq_n_uv4si */

        default:
          return -1;
        }

    case 661:
      switch (pattern72 (x1))
        {
        case 0:
          if (!
#line 3226 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3852; /* mve_vmlasq_n_sv16qi */

        case 1:
          if (!
#line 3226 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3854; /* mve_vmlasq_n_sv8hi */

        case 2:
          if (!
#line 3226 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3856; /* mve_vmlasq_n_sv4si */

        default:
          return -1;
        }

    case 662:
      switch (pattern72 (x1))
        {
        case 0:
          if (!
#line 3226 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3853; /* mve_vmlasq_n_uv16qi */

        case 1:
          if (!
#line 3226 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3855; /* mve_vmlasq_n_uv8hi */

        case 2:
          if (!
#line 3226 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3857; /* mve_vmlasq_n_uv4si */

        default:
          return -1;
        }

    case 663:
      switch (pattern70 (x1))
        {
        case 0:
          if (!
#line 3242 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3858; /* mve_vmlsdavq_p_sv16qi */

        case 1:
          if (!
#line 3242 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3859; /* mve_vmlsdavq_p_sv8hi */

        case 2:
          if (!
#line 3242 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3860; /* mve_vmlsdavq_p_sv4si */

        default:
          return -1;
        }

    case 664:
      switch (pattern70 (x1))
        {
        case 0:
          if (!
#line 3258 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3861; /* mve_vmlsdavxq_p_sv16qi */

        case 1:
          if (!
#line 3258 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3862; /* mve_vmlsdavxq_p_sv8hi */

        case 2:
          if (!
#line 3258 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3863; /* mve_vmlsdavxq_p_sv4si */

        default:
          return -1;
        }

    case 665:
      switch (pattern63 (x1))
        {
        case 0:
          if (!
#line 3274 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3864; /* mve_vmvnq_m_sv16qi */

        case 1:
          if (!
#line 3274 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3866; /* mve_vmvnq_m_sv8hi */

        case 2:
          if (!
#line 3274 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3868; /* mve_vmvnq_m_sv4si */

        default:
          return -1;
        }

    case 666:
      switch (pattern63 (x1))
        {
        case 0:
          if (!
#line 3274 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3865; /* mve_vmvnq_m_uv16qi */

        case 1:
          if (!
#line 3274 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3867; /* mve_vmvnq_m_uv8hi */

        case 2:
          if (!
#line 3274 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3869; /* mve_vmvnq_m_uv4si */

        default:
          return -1;
        }

    case 667:
      switch (pattern63 (x1))
        {
        case 0:
          if (!
#line 3290 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3870; /* mve_vnegq_m_sv16qi */

        case 1:
          if (!
#line 3290 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3871; /* mve_vnegq_m_sv8hi */

        case 2:
          if (!
#line 3290 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3872; /* mve_vnegq_m_sv4si */

        default:
          return -1;
        }

    case 668:
      return recog_88 (x1, insn, pnum_clobbers);

    case 669:
      return recog_89 (x1, insn, pnum_clobbers);

    case 670:
      switch (pattern63 (x1))
        {
        case 0:
          if (!
#line 3322 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3881; /* mve_vqabsq_m_sv16qi */

        case 1:
          if (!
#line 3322 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3882; /* mve_vqabsq_m_sv8hi */

        case 2:
          if (!
#line 3322 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3883; /* mve_vqabsq_m_sv4si */

        default:
          return -1;
        }

    case 671:
      switch (pattern72 (x1))
        {
        case 0:
          if (!
#line 3338 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3884; /* mve_vqdmlahq_n_sv16qi */

        case 1:
          if (!
#line 3338 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3885; /* mve_vqdmlahq_n_sv8hi */

        case 2:
          if (!
#line 3338 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3886; /* mve_vqdmlahq_n_sv4si */

        default:
          return -1;
        }

    case 672:
      switch (pattern72 (x1))
        {
        case 0:
          if (!
#line 3354 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3887; /* mve_vqdmlashq_n_sv16qi */

        case 1:
          if (!
#line 3354 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3888; /* mve_vqdmlashq_n_sv8hi */

        case 2:
          if (!
#line 3354 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3889; /* mve_vqdmlashq_n_sv4si */

        default:
          return -1;
        }

    case 673:
      switch (pattern63 (x1))
        {
        case 0:
          if (!
#line 3370 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3890; /* mve_vqnegq_m_sv16qi */

        case 1:
          if (!
#line 3370 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3891; /* mve_vqnegq_m_sv8hi */

        case 2:
          if (!
#line 3370 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3892; /* mve_vqnegq_m_sv4si */

        default:
          return -1;
        }

    case 674:
      switch (pattern74 (x1))
        {
        case 0:
          if (!
#line 3386 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3893; /* mve_vqrdmladhq_sv16qi */

        case 1:
          if (!
#line 3386 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3894; /* mve_vqrdmladhq_sv8hi */

        case 2:
          if (!
#line 3386 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3895; /* mve_vqrdmladhq_sv4si */

        default:
          return -1;
        }

    case 675:
      switch (pattern74 (x1))
        {
        case 0:
          if (!
#line 3402 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3896; /* mve_vqrdmladhxq_sv16qi */

        case 1:
          if (!
#line 3402 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3897; /* mve_vqrdmladhxq_sv8hi */

        case 2:
          if (!
#line 3402 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3898; /* mve_vqrdmladhxq_sv4si */

        default:
          return -1;
        }

    case 676:
      switch (pattern72 (x1))
        {
        case 0:
          if (!
#line 3418 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3899; /* mve_vqrdmlahq_n_sv16qi */

        case 1:
          if (!
#line 3418 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3900; /* mve_vqrdmlahq_n_sv8hi */

        case 2:
          if (!
#line 3418 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3901; /* mve_vqrdmlahq_n_sv4si */

        default:
          return -1;
        }

    case 677:
      switch (pattern72 (x1))
        {
        case 0:
          if (!
#line 3434 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3902; /* mve_vqrdmlashq_n_sv16qi */

        case 1:
          if (!
#line 3434 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3903; /* mve_vqrdmlashq_n_sv8hi */

        case 2:
          if (!
#line 3434 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3904; /* mve_vqrdmlashq_n_sv4si */

        default:
          return -1;
        }

    case 678:
      switch (pattern74 (x1))
        {
        case 0:
          if (!
#line 3450 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3905; /* mve_vqrdmlsdhq_sv16qi */

        case 1:
          if (!
#line 3450 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3906; /* mve_vqrdmlsdhq_sv8hi */

        case 2:
          if (!
#line 3450 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3907; /* mve_vqrdmlsdhq_sv4si */

        default:
          return -1;
        }

    case 679:
      switch (pattern74 (x1))
        {
        case 0:
          if (!
#line 3466 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3908; /* mve_vqrdmlsdhxq_sv16qi */

        case 1:
          if (!
#line 3466 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3909; /* mve_vqrdmlsdhxq_sv8hi */

        case 2:
          if (!
#line 3466 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3910; /* mve_vqrdmlsdhxq_sv4si */

        default:
          return -1;
        }

    case 680:
      switch (pattern75 (x1))
        {
        case 0:
          if (!
#line 3482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3911; /* mve_vqrshlq_m_n_sv16qi */

        case 1:
          if (!
#line 3482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3913; /* mve_vqrshlq_m_n_sv8hi */

        case 2:
          if (!
#line 3482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3915; /* mve_vqrshlq_m_n_sv4si */

        default:
          return -1;
        }

    case 681:
      switch (pattern75 (x1))
        {
        case 0:
          if (!
#line 3482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3912; /* mve_vqrshlq_m_n_uv16qi */

        case 1:
          if (!
#line 3482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3914; /* mve_vqrshlq_m_n_uv8hi */

        case 2:
          if (!
#line 3482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3916; /* mve_vqrshlq_m_n_uv4si */

        default:
          return -1;
        }

    case 682:
      switch (pattern75 (x1))
        {
        case 0:
          if (!
#line 3498 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3917; /* mve_vqshlq_m_r_sv16qi */

        case 1:
          if (!
#line 3498 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3919; /* mve_vqshlq_m_r_sv8hi */

        case 2:
          if (!
#line 3498 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3921; /* mve_vqshlq_m_r_sv4si */

        default:
          return -1;
        }

    case 683:
      switch (pattern75 (x1))
        {
        case 0:
          if (!
#line 3498 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3918; /* mve_vqshlq_m_r_uv16qi */

        case 1:
          if (!
#line 3498 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3920; /* mve_vqshlq_m_r_uv8hi */

        case 2:
          if (!
#line 3498 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3922; /* mve_vqshlq_m_r_uv4si */

        default:
          return -1;
        }

    case 684:
      switch (pattern63 (x1))
        {
        case 0:
          if (!
#line 3514 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3923; /* mve_vrev64q_m_sv16qi */

        case 1:
          if (!
#line 3514 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3925; /* mve_vrev64q_m_sv8hi */

        case 2:
          if (!
#line 3514 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3927; /* mve_vrev64q_m_sv4si */

        default:
          return -1;
        }

    case 685:
      switch (pattern63 (x1))
        {
        case 0:
          if (!
#line 3514 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3924; /* mve_vrev64q_m_uv16qi */

        case 1:
          if (!
#line 3514 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3926; /* mve_vrev64q_m_uv8hi */

        case 2:
          if (!
#line 3514 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3928; /* mve_vrev64q_m_uv4si */

        default:
          return -1;
        }

    case 686:
      switch (pattern75 (x1))
        {
        case 0:
          if (!
#line 3530 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3929; /* mve_vrshlq_m_n_sv16qi */

        case 1:
          if (!
#line 3530 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3931; /* mve_vrshlq_m_n_sv8hi */

        case 2:
          if (!
#line 3530 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3933; /* mve_vrshlq_m_n_sv4si */

        default:
          return -1;
        }

    case 687:
      switch (pattern75 (x1))
        {
        case 0:
          if (!
#line 3530 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3930; /* mve_vrshlq_m_n_uv16qi */

        case 1:
          if (!
#line 3530 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3932; /* mve_vrshlq_m_n_uv8hi */

        case 2:
          if (!
#line 3530 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3934; /* mve_vrshlq_m_n_uv4si */

        default:
          return -1;
        }

    case 688:
      switch (pattern75 (x1))
        {
        case 0:
          if (!
#line 3546 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3935; /* mve_vshlq_m_r_sv16qi */

        case 1:
          if (!
#line 3546 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3937; /* mve_vshlq_m_r_sv8hi */

        case 2:
          if (!
#line 3546 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3939; /* mve_vshlq_m_r_sv4si */

        default:
          return -1;
        }

    case 689:
      switch (pattern75 (x1))
        {
        case 0:
          if (!
#line 3546 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3936; /* mve_vshlq_m_r_uv16qi */

        case 1:
          if (!
#line 3546 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3938; /* mve_vshlq_m_r_uv8hi */

        case 2:
          if (!
#line 3546 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3940; /* mve_vshlq_m_r_uv4si */

        default:
          return -1;
        }

    case 690:
      switch (pattern76 (x1))
        {
        case 0:
          if (!
#line 3562 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3941; /* mve_vsliq_n_sv16qi */

        case 1:
          if (!
#line 3562 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3943; /* mve_vsliq_n_sv8hi */

        case 2:
          if (!
#line 3562 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3945; /* mve_vsliq_n_sv4si */

        default:
          return -1;
        }

    case 691:
      switch (pattern76 (x1))
        {
        case 0:
          if (!
#line 3562 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3942; /* mve_vsliq_n_uv16qi */

        case 1:
          if (!
#line 3562 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3944; /* mve_vsliq_n_uv8hi */

        case 2:
          if (!
#line 3562 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3946; /* mve_vsliq_n_uv4si */

        default:
          return -1;
        }

    case 692:
      switch (pattern77 (x1))
        {
        case 0:
          if (!
#line 3578 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3947; /* mve_vsriq_n_sv16qi */

        case 1:
          if (!
#line 3578 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3949; /* mve_vsriq_n_sv8hi */

        case 2:
          if (!
#line 3578 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3951; /* mve_vsriq_n_sv4si */

        default:
          return -1;
        }

    case 693:
      switch (pattern77 (x1))
        {
        case 0:
          if (!
#line 3578 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3948; /* mve_vsriq_n_uv16qi */

        case 1:
          if (!
#line 3578 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3950; /* mve_vsriq_n_uv8hi */

        case 2:
          if (!
#line 3578 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3952; /* mve_vsriq_n_uv4si */

        default:
          return -1;
        }

    case 694:
      switch (pattern74 (x1))
        {
        case 0:
          if (!
#line 3594 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3953; /* mve_vqdmlsdhxq_sv16qi */

        case 1:
          if (!
#line 3594 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3954; /* mve_vqdmlsdhxq_sv8hi */

        case 2:
          if (!
#line 3594 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3955; /* mve_vqdmlsdhxq_sv4si */

        default:
          return -1;
        }

    case 695:
      switch (pattern74 (x1))
        {
        case 0:
          if (!
#line 3610 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3956; /* mve_vqdmlsdhq_sv16qi */

        case 1:
          if (!
#line 3610 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3957; /* mve_vqdmlsdhq_sv8hi */

        case 2:
          if (!
#line 3610 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3958; /* mve_vqdmlsdhq_sv4si */

        default:
          return -1;
        }

    case 696:
      switch (pattern74 (x1))
        {
        case 0:
          if (!
#line 3626 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3959; /* mve_vqdmladhxq_sv16qi */

        case 1:
          if (!
#line 3626 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3960; /* mve_vqdmladhxq_sv8hi */

        case 2:
          if (!
#line 3626 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3961; /* mve_vqdmladhxq_sv4si */

        default:
          return -1;
        }

    case 697:
      switch (pattern74 (x1))
        {
        case 0:
          if (!
#line 3642 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3962; /* mve_vqdmladhq_sv16qi */

        case 1:
          if (!
#line 3642 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3963; /* mve_vqdmladhq_sv8hi */

        case 2:
          if (!
#line 3642 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3964; /* mve_vqdmladhq_sv4si */

        default:
          return -1;
        }

    case 698:
      switch (pattern62 (x1))
        {
        case 0:
          if (!
#line 3658 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3965; /* mve_vmlsdavaxq_sv16qi */

        case 1:
          if (!
#line 3658 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3966; /* mve_vmlsdavaxq_sv8hi */

        case 2:
          if (!
#line 3658 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3967; /* mve_vmlsdavaxq_sv4si */

        default:
          return -1;
        }

    case 699:
      switch (pattern62 (x1))
        {
        case 0:
          if (!
#line 3674 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3968; /* mve_vmlsdavaq_sv16qi */

        case 1:
          if (!
#line 3674 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3969; /* mve_vmlsdavaq_sv8hi */

        case 2:
          if (!
#line 3674 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3970; /* mve_vmlsdavaq_sv4si */

        default:
          return -1;
        }

    case 700:
      switch (pattern62 (x1))
        {
        case 0:
          if (!
#line 3690 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3971; /* mve_vmladavaxq_sv16qi */

        case 1:
          if (!
#line 3690 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3972; /* mve_vmladavaxq_sv8hi */

        case 2:
          if (!
#line 3690 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3973; /* mve_vmladavaxq_sv4si */

        default:
          return -1;
        }

    case 717:
      switch (pattern50 (x1))
        {
        case 0:
          if (!
#line 3705 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3974; /* mve_vabsq_m_fv8hf */

        case 1:
          if (!
#line 3705 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3975; /* mve_vabsq_m_fv4sf */

        default:
          return -1;
        }

    case 808:
      if (pattern78 (x1, E_V4SImode, E_DImode, E_V4BImode) != 0
          || !
#line 3721 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3976; /* mve_vaddlvaq_p_uv4si */

    case 728:
      if (pattern78 (x1, E_V4SImode, E_DImode, E_V4BImode) != 0
          || !
#line 3721 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3977; /* mve_vaddlvaq_p_sv4si */

    case 748:
      switch (pattern79 (x1))
        {
        case 0:
          if (!
#line 3755 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3986; /* mve_vcmpeqq_m_n_fv8hf */

        case 1:
          if (!
#line 3755 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3987; /* mve_vcmpeqq_m_n_fv4sf */

        default:
          return -1;
        }

    case 701:
      switch (pattern54 (x1))
        {
        case 0:
          if (!
#line 3771 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3988; /* mve_vcmpgeq_m_fv8hf */

        case 1:
          if (!
#line 3771 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3989; /* mve_vcmpgeq_m_fv4sf */

        default:
          return -1;
        }

    case 742:
      switch (pattern79 (x1))
        {
        case 0:
          if (!
#line 3787 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3990; /* mve_vcmpgeq_m_n_fv8hf */

        case 1:
          if (!
#line 3787 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3991; /* mve_vcmpgeq_m_n_fv4sf */

        default:
          return -1;
        }

    case 713:
      switch (pattern54 (x1))
        {
        case 0:
          if (!
#line 3803 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3992; /* mve_vcmpgtq_m_fv8hf */

        case 1:
          if (!
#line 3803 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3993; /* mve_vcmpgtq_m_fv4sf */

        default:
          return -1;
        }

    case 702:
      switch (pattern79 (x1))
        {
        case 0:
          if (!
#line 3819 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3994; /* mve_vcmpgtq_m_n_fv8hf */

        case 1:
          if (!
#line 3819 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3995; /* mve_vcmpgtq_m_n_fv4sf */

        default:
          return -1;
        }

    case 730:
      switch (pattern54 (x1))
        {
        case 0:
          if (!
#line 3835 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3996; /* mve_vcmpleq_m_fv8hf */

        case 1:
          if (!
#line 3835 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3997; /* mve_vcmpleq_m_fv4sf */

        default:
          return -1;
        }

    case 741:
      switch (pattern79 (x1))
        {
        case 0:
          if (!
#line 3851 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3998; /* mve_vcmpleq_m_n_fv8hf */

        case 1:
          if (!
#line 3851 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3999; /* mve_vcmpleq_m_n_fv4sf */

        default:
          return -1;
        }

    case 714:
      switch (pattern54 (x1))
        {
        case 0:
          if (!
#line 3867 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4000; /* mve_vcmpltq_m_fv8hf */

        case 1:
          if (!
#line 3867 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4001; /* mve_vcmpltq_m_fv4sf */

        default:
          return -1;
        }

    case 724:
      switch (pattern79 (x1))
        {
        case 0:
          if (!
#line 3883 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4002; /* mve_vcmpltq_m_n_fv8hf */

        case 1:
          if (!
#line 3883 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4003; /* mve_vcmpltq_m_n_fv4sf */

        default:
          return -1;
        }

    case 725:
      switch (pattern54 (x1))
        {
        case 0:
          if (!
#line 3899 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4004; /* mve_vcmpneq_m_fv8hf */

        case 1:
          if (!
#line 3899 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4005; /* mve_vcmpneq_m_fv4sf */

        default:
          return -1;
        }

    case 745:
      switch (pattern79 (x1))
        {
        case 0:
          if (!
#line 3915 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4006; /* mve_vcmpneq_m_n_fv8hf */

        case 1:
          if (!
#line 3915 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4007; /* mve_vcmpneq_m_n_fv4sf */

        default:
          return -1;
        }

    case 791:
      if (pattern78 (x1, E_V4SFmode, E_V8HFmode, E_V8BImode) != 0
          || !
#line 3931 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4008; /* mve_vcvtbq_m_f16_f32v8hf */

    case 792:
      if (pattern78 (x1, E_V8HFmode, E_V4SFmode, E_V8BImode) != 0
          || !
#line 3947 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4009; /* mve_vcvtbq_m_f32_f16v4sf */

    case 793:
      if (pattern78 (x1, E_V4SFmode, E_V8HFmode, E_V8BImode) != 0
          || !
#line 3963 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4010; /* mve_vcvttq_m_f16_f32v8hf */

    case 794:
      if (pattern78 (x1, E_V8HFmode, E_V4SFmode, E_V8BImode) != 0
          || !
#line 3979 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4011; /* mve_vcvttq_m_f32_f16v4sf */

    case 712:
      switch (pattern57 (x1, E_HFmode, E_SFmode))
        {
        case 0:
          if (!
#line 3995 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4012; /* mve_vdupq_m_n_fv8hf */

        case 1:
          if (!
#line 3995 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4013; /* mve_vdupq_m_n_fv4sf */

        default:
          return -1;
        }

    case 706:
      switch (pattern80 (x1))
        {
        case 0:
          if (!
#line 4011 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4014; /* mve_vfmaq_fv8hf */

        case 1:
          if (!
#line 4011 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4015; /* mve_vfmaq_fv4sf */

        default:
          return -1;
        }

    case 719:
      switch (pattern81 (x1))
        {
        case 0:
          if (!
#line 4027 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4016; /* mve_vfmaq_n_fv8hf */

        case 1:
          if (!
#line 4027 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4017; /* mve_vfmaq_n_fv4sf */

        default:
          return -1;
        }

    case 711:
      switch (pattern81 (x1))
        {
        case 0:
          if (!
#line 4043 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4018; /* mve_vfmasq_n_fv8hf */

        case 1:
          if (!
#line 4043 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4019; /* mve_vfmasq_n_fv4sf */

        default:
          return -1;
        }

    case 733:
      switch (pattern80 (x1))
        {
        case 0:
          if (!
#line 4058 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4020; /* mve_vfmsq_fv8hf */

        case 1:
          if (!
#line 4058 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4021; /* mve_vfmsq_fv4sf */

        default:
          return -1;
        }

    case 749:
      switch (pattern50 (x1))
        {
        case 0:
          if (!
#line 4074 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4022; /* mve_vmaxnmaq_m_fv8hf */

        case 1:
          if (!
#line 4074 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4023; /* mve_vmaxnmaq_m_fv4sf */

        default:
          return -1;
        }

    case 718:
      switch (pattern82 (x1))
        {
        case 0:
          if (!
#line 4089 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4024; /* mve_vmaxnmavq_p_fv8hf */

        case 1:
          if (!
#line 4089 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4025; /* mve_vmaxnmavq_p_fv4sf */

        default:
          return -1;
        }

    case 735:
      switch (pattern82 (x1))
        {
        case 0:
          if (!
#line 4105 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4026; /* mve_vmaxnmvq_p_fv8hf */

        case 1:
          if (!
#line 4105 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4027; /* mve_vmaxnmvq_p_fv4sf */

        default:
          return -1;
        }

    case 710:
      switch (pattern50 (x1))
        {
        case 0:
          if (!
#line 4120 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4028; /* mve_vminnmaq_m_fv8hf */

        case 1:
          if (!
#line 4120 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4029; /* mve_vminnmaq_m_fv4sf */

        default:
          return -1;
        }

    case 744:
      switch (pattern82 (x1))
        {
        case 0:
          if (!
#line 4136 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4030; /* mve_vminnmavq_p_fv8hf */

        case 1:
          if (!
#line 4136 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4031; /* mve_vminnmavq_p_fv4sf */

        default:
          return -1;
        }

    case 734:
      switch (pattern82 (x1))
        {
        case 0:
          if (!
#line 4151 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4032; /* mve_vminnmvq_p_fv8hf */

        case 1:
          if (!
#line 4151 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4033; /* mve_vminnmvq_p_fv4sf */

        default:
          return -1;
        }

    case 771:
      switch (pattern83 (x1))
        {
        case 0:
          if (!
#line 4167 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4034; /* mve_vmlaldavaq_sv8hi */

        case 1:
          if (!
#line 4167 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4036; /* mve_vmlaldavaq_sv4si */

        default:
          return -1;
        }

    case 772:
      switch (pattern83 (x1))
        {
        case 0:
          if (!
#line 4167 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4035; /* mve_vmlaldavaq_uv8hi */

        case 1:
          if (!
#line 4167 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4037; /* mve_vmlaldavaq_uv4si */

        default:
          return -1;
        }

    case 787:
      switch (pattern83 (x1))
        {
        case 0:
          if (!
#line 4183 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4038; /* mve_vmlaldavaxq_sv8hi */

        case 1:
          if (!
#line 4183 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4039; /* mve_vmlaldavaxq_sv4si */

        default:
          return -1;
        }

    case 751:
      switch (pattern84 (x1))
        {
        case 0:
          if (!
#line 4199 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4040; /* mve_vmlaldavq_p_uv8hi */

        case 1:
          if (!
#line 4199 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4042; /* mve_vmlaldavq_p_uv4si */

        default:
          return -1;
        }

    case 752:
      switch (pattern84 (x1))
        {
        case 0:
          if (!
#line 4199 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4041; /* mve_vmlaldavq_p_sv8hi */

        case 1:
          if (!
#line 4199 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4043; /* mve_vmlaldavq_p_sv4si */

        default:
          return -1;
        }

    case 780:
      switch (pattern84 (x1))
        {
        case 0:
          if (!
#line 4215 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4044; /* mve_vmlaldavxq_p_sv8hi */

        case 1:
          if (!
#line 4215 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4045; /* mve_vmlaldavxq_p_sv4si */

        default:
          return -1;
        }

    case 707:
      switch (pattern83 (x1))
        {
        case 0:
          if (!
#line 4230 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4046; /* mve_vmlsldavaq_sv8hi */

        case 1:
          if (!
#line 4230 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4047; /* mve_vmlsldavaq_sv4si */

        default:
          return -1;
        }

    case 731:
      switch (pattern83 (x1))
        {
        case 0:
          if (!
#line 4246 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4048; /* mve_vmlsldavaxq_sv8hi */

        case 1:
          if (!
#line 4246 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4049; /* mve_vmlsldavaxq_sv4si */

        default:
          return -1;
        }

    case 703:
      switch (pattern84 (x1))
        {
        case 0:
          if (!
#line 4262 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4050; /* mve_vmlsldavq_p_sv8hi */

        case 1:
          if (!
#line 4262 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4051; /* mve_vmlsldavq_p_sv4si */

        default:
          return -1;
        }

    case 705:
      switch (pattern84 (x1))
        {
        case 0:
          if (!
#line 4278 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4052; /* mve_vmlsldavxq_p_sv8hi */

        case 1:
          if (!
#line 4278 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4053; /* mve_vmlsldavxq_p_sv4si */

        default:
          return -1;
        }

    case 769:
      switch (pattern56 (x1, E_V16BImode, E_V16QImode, E_V8BImode, E_V8HImode))
        {
        case 0:
          if (!
#line 4293 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4054; /* mve_vmovlbq_m_uv16qi */

        case 1:
          if (!
#line 4293 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4056; /* mve_vmovlbq_m_uv8hi */

        default:
          return -1;
        }

    case 770:
      switch (pattern56 (x1, E_V16BImode, E_V16QImode, E_V8BImode, E_V8HImode))
        {
        case 0:
          if (!
#line 4293 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4055; /* mve_vmovlbq_m_sv16qi */

        case 1:
          if (!
#line 4293 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4057; /* mve_vmovlbq_m_sv8hi */

        default:
          return -1;
        }

    case 755:
      switch (pattern56 (x1, E_V16BImode, E_V16QImode, E_V8BImode, E_V8HImode))
        {
        case 0:
          if (!
#line 4308 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4058; /* mve_vmovltq_m_uv16qi */

        case 1:
          if (!
#line 4308 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4060; /* mve_vmovltq_m_uv8hi */

        default:
          return -1;
        }

    case 756:
      switch (pattern56 (x1, E_V16BImode, E_V16QImode, E_V8BImode, E_V8HImode))
        {
        case 0:
          if (!
#line 4308 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4059; /* mve_vmovltq_m_sv16qi */

        case 1:
          if (!
#line 4308 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4061; /* mve_vmovltq_m_sv8hi */

        default:
          return -1;
        }

    case 757:
      switch (pattern85 (x1))
        {
        case 0:
          if (!
#line 4323 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4062; /* mve_vmovnbq_m_uv8hi */

        case 1:
          if (!
#line 4323 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4064; /* mve_vmovnbq_m_uv4si */

        default:
          return -1;
        }

    case 758:
      switch (pattern85 (x1))
        {
        case 0:
          if (!
#line 4323 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4063; /* mve_vmovnbq_m_sv8hi */

        case 1:
          if (!
#line 4323 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4065; /* mve_vmovnbq_m_sv4si */

        default:
          return -1;
        }

    case 767:
      switch (pattern85 (x1))
        {
        case 0:
          if (!
#line 4339 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4066; /* mve_vmovntq_m_uv8hi */

        case 1:
          if (!
#line 4339 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4068; /* mve_vmovntq_m_uv4si */

        default:
          return -1;
        }

    case 768:
      switch (pattern85 (x1))
        {
        case 0:
          if (!
#line 4339 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4067; /* mve_vmovntq_m_sv8hi */

        case 1:
          if (!
#line 4339 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4069; /* mve_vmovntq_m_sv4si */

        default:
          return -1;
        }

    case 783:
      switch (pattern52 (x1))
        {
        case 0:
          if (!
#line 4355 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4070; /* mve_vmvnq_m_n_uv8hi */

        case 1:
          if (!
#line 4355 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4072; /* mve_vmvnq_m_n_uv4si */

        default:
          return -1;
        }

    case 784:
      switch (pattern52 (x1))
        {
        case 0:
          if (!
#line 4355 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4071; /* mve_vmvnq_m_n_sv8hi */

        case 1:
          if (!
#line 4355 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4073; /* mve_vmvnq_m_n_sv4si */

        default:
          return -1;
        }

    case 739:
      switch (pattern50 (x1))
        {
        case 0:
          if (!
#line 4370 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4074; /* mve_vnegq_m_fv8hf */

        case 1:
          if (!
#line 4370 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4075; /* mve_vnegq_m_fv4sf */

        default:
          return -1;
        }

    case 761:
      switch (pattern52 (x1))
        {
        case 0:
          if (!
#line 4386 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4076; /* mve_vorrq_m_n_sv8hi */

        case 1:
          if (!
#line 4386 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4078; /* mve_vorrq_m_n_sv4si */

        default:
          return -1;
        }

    case 762:
      switch (pattern52 (x1))
        {
        case 0:
          if (!
#line 4386 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4077; /* mve_vorrq_m_n_uv8hi */

        case 1:
          if (!
#line 4386 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4079; /* mve_vorrq_m_n_uv4si */

        default:
          return -1;
        }

    case 736:
      switch (pattern50 (x1))
        {
        case 0:
          if (!
#line 4401 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4080; /* mve_vpselq_fv8hf */

        case 1:
          if (!
#line 4401 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4081; /* mve_vpselq_fv4sf */

        default:
          return -1;
        }

    case 753:
      switch (pattern85 (x1))
        {
        case 0:
          if (!
#line 4417 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4082; /* mve_vqmovnbq_m_sv8hi */

        case 1:
          if (!
#line 4417 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4084; /* mve_vqmovnbq_m_sv4si */

        default:
          return -1;
        }

    case 754:
      switch (pattern85 (x1))
        {
        case 0:
          if (!
#line 4417 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4083; /* mve_vqmovnbq_m_uv8hi */

        case 1:
          if (!
#line 4417 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4085; /* mve_vqmovnbq_m_uv4si */

        default:
          return -1;
        }

    case 781:
      switch (pattern85 (x1))
        {
        case 0:
          if (!
#line 4433 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4086; /* mve_vqmovntq_m_uv8hi */

        case 1:
          if (!
#line 4433 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4088; /* mve_vqmovntq_m_uv4si */

        default:
          return -1;
        }

    case 782:
      switch (pattern85 (x1))
        {
        case 0:
          if (!
#line 4433 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4087; /* mve_vqmovntq_m_sv8hi */

        case 1:
          if (!
#line 4433 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4089; /* mve_vqmovntq_m_sv4si */

        default:
          return -1;
        }

    case 729:
      switch (pattern85 (x1))
        {
        case 0:
          if (!
#line 4449 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4090; /* mve_vqmovunbq_m_sv8hi */

        case 1:
          if (!
#line 4449 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4091; /* mve_vqmovunbq_m_sv4si */

        default:
          return -1;
        }

    case 737:
      switch (pattern85 (x1))
        {
        case 0:
          if (!
#line 4465 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4092; /* mve_vqmovuntq_m_sv8hi */

        case 1:
          if (!
#line 4465 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4093; /* mve_vqmovuntq_m_sv4si */

        default:
          return -1;
        }

    case 765:
      switch (pattern60 (x1))
        {
        case 0:
          if (!
#line 4481 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4094; /* mve_vqrshrntq_n_uv8hi */

        case 1:
          if (!
#line 4481 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4096; /* mve_vqrshrntq_n_uv4si */

        default:
          return -1;
        }

    case 766:
      switch (pattern60 (x1))
        {
        case 0:
          if (!
#line 4481 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4095; /* mve_vqrshrntq_n_sv8hi */

        case 1:
          if (!
#line 4481 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4097; /* mve_vqrshrntq_n_sv4si */

        default:
          return -1;
        }

    case 709:
      switch (pattern60 (x1))
        {
        case 0:
          if (!
#line 4497 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4098; /* mve_vqrshruntq_n_sv8hi */

        case 1:
          if (!
#line 4497 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4099; /* mve_vqrshruntq_n_sv4si */

        default:
          return -1;
        }

    case 773:
      switch (pattern60 (x1))
        {
        case 0:
          if (!
#line 4513 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4100; /* mve_vqshrnbq_n_uv8hi */

        case 1:
          if (!
#line 4513 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4102; /* mve_vqshrnbq_n_uv4si */

        default:
          return -1;
        }

    case 774:
      switch (pattern60 (x1))
        {
        case 0:
          if (!
#line 4513 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4101; /* mve_vqshrnbq_n_sv8hi */

        case 1:
          if (!
#line 4513 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4103; /* mve_vqshrnbq_n_sv4si */

        default:
          return -1;
        }

    case 785:
      switch (pattern60 (x1))
        {
        case 0:
          if (!
#line 4529 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4104; /* mve_vqshrntq_n_uv8hi */

        case 1:
          if (!
#line 4529 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4106; /* mve_vqshrntq_n_uv4si */

        default:
          return -1;
        }

    case 786:
      switch (pattern60 (x1))
        {
        case 0:
          if (!
#line 4529 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4105; /* mve_vqshrntq_n_sv8hi */

        case 1:
          if (!
#line 4529 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4107; /* mve_vqshrntq_n_sv4si */

        default:
          return -1;
        }

    case 708:
      switch (pattern60 (x1))
        {
        case 0:
          if (!
#line 4545 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4108; /* mve_vqshrunbq_n_sv8hi */

        case 1:
          if (!
#line 4545 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4109; /* mve_vqshrunbq_n_sv4si */

        default:
          return -1;
        }

    case 716:
      switch (pattern60 (x1))
        {
        case 0:
          if (!
#line 4561 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4110; /* mve_vqshruntq_n_sv8hi */

        case 1:
          if (!
#line 4561 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4111; /* mve_vqshruntq_n_sv4si */

        default:
          return -1;
        }

    case 721:
      if (pattern86 (x1, E_V8BImode, E_V8HFmode) != 0
          || !
#line 4577 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4112; /* mve_vrev32q_m_fv8hf */

    case 763:
      switch (pattern87 (x1))
        {
        case 0:
          if (!
#line 4593 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4113; /* mve_vrev32q_m_sv16qi */

        case 1:
          if (!
#line 4593 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4115; /* mve_vrev32q_m_sv8hi */

        default:
          return -1;
        }

    case 764:
      switch (pattern87 (x1))
        {
        case 0:
          if (!
#line 4593 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4114; /* mve_vrev32q_m_uv16qi */

        case 1:
          if (!
#line 4593 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4116; /* mve_vrev32q_m_uv8hi */

        default:
          return -1;
        }

    case 738:
      switch (pattern50 (x1))
        {
        case 0:
          if (!
#line 4609 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4117; /* mve_vrev64q_m_fv8hf */

        case 1:
          if (!
#line 4609 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4118; /* mve_vrev64q_m_fv4sf */

        default:
          return -1;
        }

    case 704:
      if (pattern61 (x1) != 0
          || !
#line 4625 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4119; /* mve_vrmlaldavhaxq_sv4si */

    case 747:
      if (pattern88 (x1, E_V8BImode) != 0
          || !
#line 4641 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4120; /* mve_vrmlaldavhxq_p_sv4si */

    case 723:
      if (pattern61 (x1) != 0
          || !
#line 4657 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4121; /* mve_vrmlsldavhaxq_sv4si */

    case 715:
      if (pattern88 (x1, E_V8BImode) != 0
          || !
#line 4673 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4122; /* mve_vrmlsldavhq_p_sv4si */

    case 720:
      if (pattern88 (x1, E_V8BImode) != 0
          || !
#line 4689 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4123; /* mve_vrmlsldavhxq_p_sv4si */

    case 726:
      switch (pattern50 (x1))
        {
        case 0:
          if (!
#line 4705 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4124; /* mve_vrndaq_m_fv8hf */

        case 1:
          if (!
#line 4705 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4125; /* mve_vrndaq_m_fv4sf */

        default:
          return -1;
        }

    case 740:
      switch (pattern50 (x1))
        {
        case 0:
          if (!
#line 4721 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4126; /* mve_vrndmq_m_fv8hf */

        case 1:
          if (!
#line 4721 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4127; /* mve_vrndmq_m_fv4sf */

        default:
          return -1;
        }

    case 743:
      switch (pattern50 (x1))
        {
        case 0:
          if (!
#line 4737 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4128; /* mve_vrndnq_m_fv8hf */

        case 1:
          if (!
#line 4737 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4129; /* mve_vrndnq_m_fv4sf */

        default:
          return -1;
        }

    case 727:
      switch (pattern50 (x1))
        {
        case 0:
          if (!
#line 4753 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4130; /* mve_vrndpq_m_fv8hf */

        case 1:
          if (!
#line 4753 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4131; /* mve_vrndpq_m_fv4sf */

        default:
          return -1;
        }

    case 732:
      switch (pattern50 (x1))
        {
        case 0:
          if (!
#line 4769 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4132; /* mve_vrndxq_m_fv8hf */

        case 1:
          if (!
#line 4769 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4133; /* mve_vrndxq_m_fv4sf */

        default:
          return -1;
        }

    case 777:
      switch (pattern60 (x1))
        {
        case 0:
          if (!
#line 4785 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4134; /* mve_vrshrnbq_n_sv8hi */

        case 1:
          if (!
#line 4785 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4136; /* mve_vrshrnbq_n_sv4si */

        default:
          return -1;
        }

    case 778:
      switch (pattern60 (x1))
        {
        case 0:
          if (!
#line 4785 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4135; /* mve_vrshrnbq_n_uv8hi */

        case 1:
          if (!
#line 4785 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4137; /* mve_vrshrnbq_n_uv4si */

        default:
          return -1;
        }

    case 759:
      switch (pattern60 (x1))
        {
        case 0:
          if (!
#line 4801 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4138; /* mve_vrshrntq_n_uv8hi */

        case 1:
          if (!
#line 4801 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4140; /* mve_vrshrntq_n_uv4si */

        default:
          return -1;
        }

    case 760:
      switch (pattern60 (x1))
        {
        case 0:
          if (!
#line 4801 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4139; /* mve_vrshrntq_n_sv8hi */

        case 1:
          if (!
#line 4801 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4141; /* mve_vrshrntq_n_sv4si */

        default:
          return -1;
        }

    case 775:
      switch (pattern60 (x1))
        {
        case 0:
          if (!
#line 4817 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4142; /* mve_vshrnbq_n_uv8hi */

        case 1:
          if (!
#line 4817 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4144; /* mve_vshrnbq_n_uv4si */

        default:
          return -1;
        }

    case 776:
      switch (pattern60 (x1))
        {
        case 0:
          if (!
#line 4817 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4143; /* mve_vshrnbq_n_sv8hi */

        case 1:
          if (!
#line 4817 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4145; /* mve_vshrnbq_n_sv4si */

        default:
          return -1;
        }

    case 789:
      switch (pattern60 (x1))
        {
        case 0:
          if (!
#line 4833 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4146; /* mve_vshrntq_n_sv8hi */

        case 1:
          if (!
#line 4833 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4148; /* mve_vshrntq_n_sv4si */

        default:
          return -1;
        }

    case 790:
      switch (pattern60 (x1))
        {
        case 0:
          if (!
#line 4833 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4147; /* mve_vshrntq_n_uv8hi */

        case 1:
          if (!
#line 4833 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4149; /* mve_vshrntq_n_uv4si */

        default:
          return -1;
        }

    case 795:
      switch (pattern56 (x1, E_V8BImode, E_V8HFmode, E_V4BImode, E_V4SFmode))
        {
        case 0:
          if (!
#line 4849 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4150; /* mve_vcvtmq_m_sv8hi */

        case 1:
          if (!
#line 4849 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4152; /* mve_vcvtmq_m_sv4si */

        default:
          return -1;
        }

    case 796:
      switch (pattern56 (x1, E_V8BImode, E_V8HFmode, E_V4BImode, E_V4SFmode))
        {
        case 0:
          if (!
#line 4849 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4151; /* mve_vcvtmq_m_uv8hi */

        case 1:
          if (!
#line 4849 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4153; /* mve_vcvtmq_m_uv4si */

        default:
          return -1;
        }

    case 798:
      switch (pattern56 (x1, E_V8BImode, E_V8HFmode, E_V4BImode, E_V4SFmode))
        {
        case 0:
          if (!
#line 4865 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4154; /* mve_vcvtpq_m_sv8hi */

        case 1:
          if (!
#line 4865 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4156; /* mve_vcvtpq_m_sv4si */

        default:
          return -1;
        }

    case 799:
      switch (pattern56 (x1, E_V8BImode, E_V8HFmode, E_V4BImode, E_V4SFmode))
        {
        case 0:
          if (!
#line 4865 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4155; /* mve_vcvtpq_m_uv8hi */

        case 1:
          if (!
#line 4865 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4157; /* mve_vcvtpq_m_uv4si */

        default:
          return -1;
        }

    case 797:
      switch (pattern56 (x1, E_V8BImode, E_V8HFmode, E_V4BImode, E_V4SFmode))
        {
        case 0:
          if (!
#line 4881 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4158; /* mve_vcvtnq_m_sv8hi */

        case 1:
          if (!
#line 4881 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4160; /* mve_vcvtnq_m_sv4si */

        default:
          return -1;
        }

    case 801:
      switch (pattern56 (x1, E_V8BImode, E_V8HFmode, E_V4BImode, E_V4SFmode))
        {
        case 0:
          if (!
#line 4881 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4159; /* mve_vcvtnq_m_uv8hi */

        case 1:
          if (!
#line 4881 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4161; /* mve_vcvtnq_m_uv4si */

        default:
          return -1;
        }

    case 802:
      if (pattern86 (x1, E_V16BImode, E_V16QImode) != 0
          || !
#line 4914 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4166; /* mve_vrev16q_m_sv16qi */

    case 803:
      if (pattern86 (x1, E_V16BImode, E_V16QImode) != 0
          || !
#line 4914 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4167; /* mve_vrev16q_m_uv16qi */

    case 805:
      switch (pattern56 (x1, E_V8BImode, E_V8HFmode, E_V4BImode, E_V4SFmode))
        {
        case 0:
          if (!
#line 4930 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4168; /* mve_vcvtq_m_from_f_uv8hi */

        case 1:
          if (!
#line 4930 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4170; /* mve_vcvtq_m_from_f_uv4si */

        default:
          return -1;
        }

    case 806:
      switch (pattern56 (x1, E_V8BImode, E_V8HFmode, E_V4BImode, E_V4SFmode))
        {
        case 0:
          if (!
#line 4930 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4169; /* mve_vcvtq_m_from_f_sv8hi */

        case 1:
          if (!
#line 4930 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4171; /* mve_vcvtq_m_from_f_sv4si */

        default:
          return -1;
        }

    case 746:
      if (pattern88 (x1, E_V4BImode) != 0
          || !
#line 4946 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4172; /* mve_vrmlaldavhq_p_sv4si */

    case 807:
      if (pattern88 (x1, E_V4BImode) != 0
          || !
#line 4946 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4173; /* mve_vrmlaldavhq_p_uv4si */

    case 722:
      if (pattern61 (x1) != 0
          || !
#line 4962 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4174; /* mve_vrmlsldavhaq_sv4si */

    case 994:
      switch (pattern89 (x1))
        {
        case 0:
          if (!
#line 7133 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4648; /* mve_vstrbq_scatter_offset_sv16qi_insn */

        case 1:
          if (!
#line 7133 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4650; /* mve_vstrbq_scatter_offset_sv8hi_insn */

        case 2:
          if (!
#line 7133 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4652; /* mve_vstrbq_scatter_offset_sv4si_insn */

        default:
          return -1;
        }

    case 995:
      switch (pattern89 (x1))
        {
        case 0:
          if (!
#line 7133 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4649; /* mve_vstrbq_scatter_offset_uv16qi_insn */

        case 1:
          if (!
#line 7133 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4651; /* mve_vstrbq_scatter_offset_uv8hi_insn */

        case 2:
          if (!
#line 7133 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4653; /* mve_vstrbq_scatter_offset_uv4si_insn */

        default:
          return -1;
        }

    case 992:
      if (pattern90 (x1, E_V4SImode) != 0
          || !
#line 7148 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4654; /* mve_vstrwq_scatter_base_sv4si */

    case 993:
      if (pattern90 (x1, E_V4SImode) != 0
          || !
#line 7148 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4655; /* mve_vstrwq_scatter_base_uv4si */

    case 996:
      switch (pattern93 (x1))
        {
        case 0:
          if (!
#line 7286 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4678; /* mve_vstrbq_p_sv16qi */

        case 1:
          if (!
#line 7286 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4680; /* mve_vstrbq_p_sv8hi */

        case 2:
          if (!
#line 7286 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4682; /* mve_vstrbq_p_sv4si */

        default:
          return -1;
        }

    case 997:
      switch (pattern93 (x1))
        {
        case 0:
          if (!
#line 7286 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4679; /* mve_vstrbq_p_uv16qi */

        case 1:
          if (!
#line 7286 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4681; /* mve_vstrbq_p_uv8hi */

        case 2:
          if (!
#line 7286 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4683; /* mve_vstrbq_p_uv4si */

        default:
          return -1;
        }

    case 998:
      switch (pattern96 (x1))
        {
        case 0:
          if (!
#line 7307 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4684; /* mve_vldrbq_gather_offset_z_sv16qi */

        case 1:
          if (!
#line 7307 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4686; /* mve_vldrbq_gather_offset_z_sv8hi */

        case 2:
          if (!
#line 7307 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4688; /* mve_vldrbq_gather_offset_z_sv4si */

        default:
          return -1;
        }

    case 999:
      switch (pattern96 (x1))
        {
        case 0:
          if (!
#line 7307 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4685; /* mve_vldrbq_gather_offset_z_uv16qi */

        case 1:
          if (!
#line 7307 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4687; /* mve_vldrbq_gather_offset_z_uv8hi */

        case 2:
          if (!
#line 7307 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4689; /* mve_vldrbq_gather_offset_z_uv4si */

        default:
          return -1;
        }

    case 1002:
      if (pattern97 (x1, E_V4SImode) != 0
          || !
#line 7355 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4696; /* mve_vldrwq_gather_base_z_sv4si */

    case 1003:
      if (pattern97 (x1, E_V4SImode) != 0
          || !
#line 7355 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4697; /* mve_vldrwq_gather_base_z_uv4si */

    case 1008:
      switch (pattern98 (x1))
        {
        case 0:
          if (!
#line 7418 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4703; /* mve_vldrhq_gather_offset_z_sv8hi */

        case 1:
          if (!
#line 7418 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4705; /* mve_vldrhq_gather_offset_z_sv4si */

        default:
          return -1;
        }

    case 1009:
      switch (pattern98 (x1))
        {
        case 0:
          if (!
#line 7418 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4704; /* mve_vldrhq_gather_offset_z_uv8hi */

        case 1:
          if (!
#line 7418 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4706; /* mve_vldrhq_gather_offset_z_uv4si */

        default:
          return -1;
        }

    case 1010:
      switch (pattern98 (x1))
        {
        case 0:
          if (!
#line 7466 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4711; /* mve_vldrhq_gather_shifted_offset_z_sv8hi */

        case 1:
          if (!
#line 7466 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4713; /* mve_vldrhq_gather_shifted_offset_z_sv4si */

        default:
          return -1;
        }

    case 1011:
      switch (pattern98 (x1))
        {
        case 0:
          if (!
#line 7466 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4712; /* mve_vldrhq_gather_shifted_offset_z_uv8hi */

        case 1:
          if (!
#line 7466 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4714; /* mve_vldrhq_gather_shifted_offset_z_uv4si */

        default:
          return -1;
        }

    case 1017:
      if (pattern99 (x1) != 0
          || !
#line 7674 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4732; /* mve_vldrdq_gather_base_z_sv2di */

    case 1018:
      if (pattern99 (x1) != 0
          || !
#line 7674 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4733; /* mve_vldrdq_gather_base_z_uv2di */

    case 1019:
      if (pattern100 (x1) != 0
          || !
#line 7715 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4736; /* mve_vldrdq_gather_offset_z_sv2di */

    case 1020:
      if (pattern100 (x1) != 0
          || !
#line 7715 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4737; /* mve_vldrdq_gather_offset_z_uv2di */

    case 1021:
      if (pattern100 (x1) != 0
          || !
#line 7756 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4740; /* mve_vldrdq_gather_shifted_offset_z_sv2di */

    case 1022:
      if (pattern100 (x1) != 0
          || !
#line 7756 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4741; /* mve_vldrdq_gather_shifted_offset_z_uv2di */

    case 1023:
      if (pattern101 (x1) != 0
          || !
#line 7797 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4743; /* mve_vldrhq_gather_offset_z_fv8hf */

    case 1024:
      if (pattern101 (x1) != 0
          || !
#line 7839 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4745; /* mve_vldrhq_gather_shifted_offset_z_fv8hf */

    case 1025:
      if (pattern97 (x1, E_V4SFmode) != 0
          || !
#line 7881 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4747; /* mve_vldrwq_gather_base_z_fv4sf */

    case 1026:
      if (pattern102 (x1, E_V4SFmode) != 0
          || !
#line 7942 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4751; /* mve_vldrwq_gather_offset_z_fv4sf */

    case 1027:
      if (pattern102 (x1, E_V4SImode) != 0
          || !
#line 7964 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4752; /* mve_vldrwq_gather_offset_z_sv4si */

    case 1028:
      if (pattern102 (x1, E_V4SImode) != 0
          || !
#line 7964 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4753; /* mve_vldrwq_gather_offset_z_uv4si */

    case 1029:
      if (pattern102 (x1, E_V4SFmode) != 0
          || !
#line 8026 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4757; /* mve_vldrwq_gather_shifted_offset_z_fv4sf */

    case 1030:
      if (pattern102 (x1, E_V4SImode) != 0
          || !
#line 8048 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4758; /* mve_vldrwq_gather_shifted_offset_z_sv4si */

    case 1031:
      if (pattern102 (x1, E_V4SImode) != 0
          || !
#line 8048 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4759; /* mve_vldrwq_gather_shifted_offset_z_uv4si */

    case 1032:
      return recog_85 (x1, insn, pnum_clobbers);

    case 1098:
      switch (pattern103 (x1))
        {
        case 0:
          if (!
#line 8111 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4762; /* mve_vstrhq_p_sv8hi */

        case 1:
          if (!
#line 8111 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4764; /* mve_vstrhq_p_sv4si */

        default:
          return -1;
        }

    case 1036:
      switch (pattern103 (x1))
        {
        case 0:
          if (!
#line 8111 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4763; /* mve_vstrhq_p_uv8hi */

        case 1:
          if (!
#line 8111 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4765; /* mve_vstrhq_p_uv4si */

        default:
          return -1;
        }

    case 1035:
      switch (pattern104 (x1))
        {
        case 0:
          if (!
#line 8178 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4770; /* mve_vstrhq_scatter_offset_sv8hi_insn */

        case 1:
          if (!
#line 8178 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4772; /* mve_vstrhq_scatter_offset_sv4si_insn */

        default:
          return -1;
        }

    case 1095:
      switch (pattern104 (x1))
        {
        case 0:
          if (!
#line 8178 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4771; /* mve_vstrhq_scatter_offset_uv8hi_insn */

        case 1:
          if (!
#line 8178 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4773; /* mve_vstrhq_scatter_offset_uv4si_insn */

        default:
          return -1;
        }

    case 1096:
      switch (pattern104 (x1))
        {
        case 0:
          if (!
#line 8239 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4778; /* mve_vstrhq_scatter_shifted_offset_sv8hi_insn */

        case 1:
          if (!
#line 8239 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4780; /* mve_vstrhq_scatter_shifted_offset_sv4si_insn */

        default:
          return -1;
        }

    case 1097:
      switch (pattern104 (x1))
        {
        case 0:
          if (!
#line 8239 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4779; /* mve_vstrhq_scatter_shifted_offset_uv8hi_insn */

        case 1:
          if (!
#line 8239 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4781; /* mve_vstrhq_scatter_shifted_offset_uv4si_insn */

        default:
          return -1;
        }

    case 1039:
      if (pattern105 (x1, E_V8BImode, E_V4SFmode) != 0
          || !
#line 8291 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4787; /* mve_vstrwq_p_fv4sf */

    case 1037:
      if (pattern105 (x1, E_V4BImode, E_V4SImode) != 0
          || !
#line 8312 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4788; /* mve_vstrwq_p_sv4si */

    case 1038:
      if (pattern105 (x1, E_V4BImode, E_V4SImode) != 0
          || !
#line 8312 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4789; /* mve_vstrwq_p_uv4si */

    case 1041:
      if (pattern106 (x1) != 0
          || !
#line 8396 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4794; /* mve_vstrdq_scatter_base_sv2di */

    case 1042:
      if (pattern106 (x1) != 0
          || !
#line 8396 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4795; /* mve_vstrdq_scatter_base_uv2di */

    case 1043:
      if (pattern107 (x1) != 0
          || !
#line 8462 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4798; /* mve_vstrdq_scatter_offset_sv2di_insn */

    case 1044:
      if (pattern107 (x1) != 0
          || !
#line 8462 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4799; /* mve_vstrdq_scatter_offset_uv2di_insn */

    case 1045:
      if (pattern107 (x1) != 0
          || !
#line 8523 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4802; /* mve_vstrdq_scatter_shifted_offset_sv2di_insn */

    case 1046:
      if (pattern107 (x1) != 0
          || !
#line 8523 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4803; /* mve_vstrdq_scatter_shifted_offset_uv2di_insn */

    case 1051:
      if (pattern108 (x1) != 0
          || !
#line 8551 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4804; /* mve_vstrhq_scatter_offset_fv8hf_insn */

    case 1052:
      if (pattern108 (x1) != 0
          || !
#line 8610 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4806; /* mve_vstrhq_scatter_shifted_offset_fv8hf_insn */

    case 1053:
      if (pattern90 (x1, E_V4SFmode) != 0
          || !
#line 8657 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4808; /* mve_vstrwq_scatter_base_fv4sf */

    case 1054:
      if (pattern109 (x1, E_V4SFmode) != 0
          || !
#line 8715 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4810; /* mve_vstrwq_scatter_offset_fv4sf_insn */

    case 1047:
      if (pattern109 (x1, E_V4SImode) != 0
          || !
#line 8805 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4814; /* mve_vstrwq_scatter_offset_sv4si_insn */

    case 1048:
      if (pattern109 (x1, E_V4SImode) != 0
          || !
#line 8805 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4815; /* mve_vstrwq_scatter_offset_uv4si_insn */

    case 1055:
      if (pattern109 (x1, E_V4SFmode) != 0
          || !
#line 8833 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4816; /* mve_vstrwq_scatter_shifted_offset_fv4sf_insn */

    case 1049:
      if (pattern109 (x1, E_V4SImode) != 0
          || !
#line 8926 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4820; /* mve_vstrwq_scatter_shifted_offset_sv4si_insn */

    case 1050:
      if (pattern109 (x1, E_V4SImode) != 0
          || !
#line 8926 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4821; /* mve_vstrwq_scatter_shifted_offset_uv4si_insn */

    default:
      return -1;
    }
}

static int
recog_235 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (XINT (x2, 1))
    {
    case 102:
      return recog_221 (x1, insn, pnum_clobbers);

    case 47:
      if (pattern143 (x1) != 0
          || !
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 192; /* arm_qadd8 */

    case 48:
      if (pattern143 (x1) != 0
          || !
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 193; /* arm_qsub8 */

    case 49:
      if (pattern143 (x1) != 0
          || !
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 194; /* arm_shadd8 */

    case 50:
      if (pattern143 (x1) != 0
          || !
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 195; /* arm_shsub8 */

    case 51:
      if (pattern143 (x1) != 0
          || !
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 196; /* arm_uhadd8 */

    case 52:
      if (pattern143 (x1) != 0
          || !
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 197; /* arm_uhsub8 */

    case 53:
      if (pattern143 (x1) != 0
          || !
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 198; /* arm_uqadd8 */

    case 54:
      if (pattern143 (x1) != 0
          || !
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 199; /* arm_uqsub8 */

    case 55:
      if (pattern143 (x1) != 0
          || !
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 200; /* arm_qadd16 */

    case 56:
      if (pattern143 (x1) != 0
          || !
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 201; /* arm_qasx */

    case 57:
      if (pattern143 (x1) != 0
          || !
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 202; /* arm_qsax */

    case 58:
      if (pattern143 (x1) != 0
          || !
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 203; /* arm_qsub16 */

    case 59:
      if (pattern143 (x1) != 0
          || !
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 204; /* arm_shadd16 */

    case 60:
      if (pattern143 (x1) != 0
          || !
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 205; /* arm_shasx */

    case 61:
      if (pattern143 (x1) != 0
          || !
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 206; /* arm_shsax */

    case 62:
      if (pattern143 (x1) != 0
          || !
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 207; /* arm_shsub16 */

    case 63:
      if (pattern143 (x1) != 0
          || !
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 208; /* arm_uhadd16 */

    case 64:
      if (pattern143 (x1) != 0
          || !
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 209; /* arm_uhasx */

    case 65:
      if (pattern143 (x1) != 0
          || !
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 210; /* arm_uhsax */

    case 66:
      if (pattern143 (x1) != 0
          || !
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 211; /* arm_uhsub16 */

    case 67:
      if (pattern143 (x1) != 0
          || !
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 212; /* arm_uqadd16 */

    case 68:
      if (pattern143 (x1) != 0
          || !
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 213; /* arm_uqasx */

    case 69:
      if (pattern143 (x1) != 0
          || !
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 214; /* arm_uqsax */

    case 70:
      if (pattern143 (x1) != 0
          || !
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 215; /* arm_uqsub16 */

    case 71:
      if (pattern143 (x1) != 0
          || !
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 216; /* arm_smusd */

    case 72:
      if (pattern143 (x1) != 0
          || !
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 217; /* arm_smusdx */

    case 43:
      if (pattern143 (x1) != 0
          || !
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 218; /* arm_sxtab16 */

    case 44:
      if (pattern143 (x1) != 0
          || !
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 219; /* arm_uxtab16 */

    case 73:
      if (pattern143 (x1) != 0
          || !
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 220; /* arm_usad8 */

    case 98:
      if (pattern143 (x1) != 0
          || !
#line 6125 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ))
        return -1;
      return 246; /* arm_smuad_insn */

    case 99:
      if (pattern143 (x1) != 0
          || !
#line 6125 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ))
        return -1;
      return 248; /* arm_smuadx_insn */

    case 100:
      return recog_220 (x1, insn, pnum_clobbers);

    case 101:
      return recog_219 (x1, insn, pnum_clobbers);

    case 27:
      if (GET_MODE (x2) != E_SImode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x2, 0, 1);
      operands[2] = x5;
      if (!
#line 6676 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(flag_pic))
        return -1;
      return 258; /* pic_load_addr_unified */

    case 42:
      if (GET_MODE (x2) != E_SImode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x5 = XVECEXP (x2, 0, 1);
      operands[1] = x5;
      if (!nonimmediate_operand (operands[1], E_SImode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      if (!rtx_equal_p (x4, operands[0]))
        return -1;
      return 289; /* restore_pic_register_after_call */

    case 3:
      return recog_200 (x1, insn, pnum_clobbers);

    case 123:
      if (pattern144 (x1, E_QImode, E_SImode) != 0
          || !
#line 12700 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_CRC32))
        return -1;
      return 422; /* arm_crc32b */

    case 124:
      if (pattern144 (x1, E_HImode, E_SImode) != 0
          || !
#line 12700 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_CRC32))
        return -1;
      return 423; /* arm_crc32h */

    case 125:
      if (pattern143 (x1) != 0
          || !
#line 12700 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_CRC32))
        return -1;
      return 424; /* arm_crc32w */

    case 126:
      if (pattern144 (x1, E_QImode, E_SImode) != 0
          || !
#line 12700 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_CRC32))
        return -1;
      return 425; /* arm_crc32cb */

    case 127:
      if (pattern144 (x1, E_HImode, E_SImode) != 0
          || !
#line 12700 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_CRC32))
        return -1;
      return 426; /* arm_crc32ch */

    case 128:
      if (pattern143 (x1) != 0
          || !
#line 12700 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_CRC32))
        return -1;
      return 427; /* arm_crc32cw */

    case 107:
      if (pattern145 (x1) != 0
          || !
#line 12994 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_arch8m_main))
        return -1;
      return 507; /* pac_nop */

    case 450:
      return recog_195 (x1, insn, pnum_clobbers);

    case 451:
      return recog_194 (x1, insn, pnum_clobbers);

    case 13:
      if (pattern148 (x1, E_V4HImode, E_DImode) != 0
          || !
#line 528 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 567; /* iwmmxt_wmacsz */

    case 14:
      if (pattern148 (x1, E_V4HImode, E_DImode) != 0
          || !
#line 549 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 569; /* iwmmxt_wmacuz */

    case 6:
      return recog_218 (x1, insn, pnum_clobbers);

    case 10:
      return recog_163 (x1, insn, pnum_clobbers);

    case 113:
      if (pattern149 (x1, E_V4HImode) != 0
          || !
#line 371 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 703; /* iwmmxt_wqmulm */

    case 112:
      if (pattern149 (x1, E_V2SImode) != 0
          || !
#line 381 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 704; /* iwmmxt_wqmulwm */

    case 111:
      if (pattern149 (x1, E_V4HImode) != 0
          || !
#line 391 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 705; /* iwmmxt_wqmulmr */

    case 110:
      if (pattern149 (x1, E_V2SImode) != 0
          || !
#line 401 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 706; /* iwmmxt_wqmulwmr */

    case 295:
      return recog_136 (x1, insn, pnum_clobbers);

    case 179:
      if (pattern150 (x1) != 0
          || !
#line 1982 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
        return -1;
      return 873; /* neon_vcvths_nsi_unspec */

    case 180:
      if (pattern150 (x1) != 0
          || !
#line 1982 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
        return -1;
      return 874; /* neon_vcvthu_nsi_unspec */

    case 215:
      return recog_171 (x1, insn, pnum_clobbers);

    case 218:
      return recog_170 (x1, insn, pnum_clobbers);

    case 104:
      return recog_131 (x1, insn, pnum_clobbers);

    case 21:
      return recog_193 (x1, insn, pnum_clobbers);

    case 121:
      return recog_169 (x1, insn, pnum_clobbers);

    case 122:
      return recog_168 (x1, insn, pnum_clobbers);

    case 246:
      return recog_135 (x1, insn, pnum_clobbers);

    case 254:
      return recog_217 (x1, insn, pnum_clobbers);

    case 253:
      return recog_216 (x1, insn, pnum_clobbers);

    case 256:
      switch (pattern154 (x1))
        {
        case 0:
          if (!
#line 1353 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1431; /* neon_vpuminv8qi */

        case 1:
          if (!
#line 1353 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1432; /* neon_vpuminv4hi */

        case 2:
          if (!
#line 1353 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1433; /* neon_vpuminv2si */

        default:
          return -1;
        }

    case 255:
      switch (pattern154 (x1))
        {
        case 0:
          if (!
#line 1363 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1434; /* neon_vpumaxv8qi */

        case 1:
          if (!
#line 1363 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1435; /* neon_vpumaxv4hi */

        case 2:
          if (!
#line 1363 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1436; /* neon_vpumaxv2si */

        default:
          return -1;
        }

    case 153:
      switch (pattern155 (x1))
        {
        case 0:
          if (!
#line 1506 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1453; /* neon_vaddv2sf_unspec */

        case 1:
          if (!
#line 1506 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1454; /* neon_vaddv4sf_unspec */

        default:
          return -1;
        }

    case 156:
      switch (pattern156 (x1, E_V8QImode, E_V4HImode, E_V2SImode))
        {
        case 0:
          if (!
#line 1519 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1455; /* neon_vaddlsv8qi */

        case 1:
          if (!
#line 1519 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1457; /* neon_vaddlsv4hi */

        case 2:
          if (!
#line 1519 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1459; /* neon_vaddlsv2si */

        default:
          return -1;
        }

    case 157:
      switch (pattern156 (x1, E_V8QImode, E_V4HImode, E_V2SImode))
        {
        case 0:
          if (!
#line 1519 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1456; /* neon_vaddluv8qi */

        case 1:
          if (!
#line 1519 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1458; /* neon_vaddluv4hi */

        case 2:
          if (!
#line 1519 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1460; /* neon_vaddluv2si */

        default:
          return -1;
        }

    case 158:
      switch (pattern157 (x1))
        {
        case 0:
          if (!
#line 1529 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1461; /* neon_vaddwsv8qi */

        case 1:
          if (!
#line 1529 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1463; /* neon_vaddwsv4hi */

        case 2:
          if (!
#line 1529 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1465; /* neon_vaddwsv2si */

        default:
          return -1;
        }

    case 159:
      switch (pattern157 (x1))
        {
        case 0:
          if (!
#line 1529 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1462; /* neon_vaddwuv8qi */

        case 1:
          if (!
#line 1529 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1464; /* neon_vaddwuv4hi */

        case 2:
          if (!
#line 1529 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1466; /* neon_vaddwuv2si */

        default:
          return -1;
        }

    case 194:
      return recog_192 (x1, insn, pnum_clobbers);

    case 195:
      return recog_191 (x1, insn, pnum_clobbers);

    case 192:
      return recog_190 (x1, insn, pnum_clobbers);

    case 193:
      return recog_189 (x1, insn, pnum_clobbers);

    case 258:
      return recog_162 (x1, insn, pnum_clobbers);

    case 259:
      return recog_161 (x1, insn, pnum_clobbers);

    case 154:
      switch (pattern160 (x1))
        {
        case 0:
          if (!
#line 1561 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1507; /* neon_vaddhnv8hi */

        case 1:
          if (!
#line 1561 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1509; /* neon_vaddhnv4si */

        case 2:
          if (!
#line 1561 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1511; /* neon_vaddhnv2di */

        default:
          return -1;
        }

    case 155:
      switch (pattern160 (x1))
        {
        case 0:
          if (!
#line 1561 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1508; /* neon_vraddhnv8hi */

        case 1:
          if (!
#line 1561 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1510; /* neon_vraddhnv4si */

        case 2:
          if (!
#line 1561 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1512; /* neon_vraddhnv2di */

        default:
          return -1;
        }

    case 237:
      return recog_160 (x1, insn, pnum_clobbers);

    case 264:
      return recog_215 (x1, insn, pnum_clobbers);

    case 266:
      return recog_214 (x1, insn, pnum_clobbers);

    case 239:
      switch (pattern156 (x1, E_V8QImode, E_V4HImode, E_V2SImode))
        {
        case 0:
          if (!
#line 2175 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1591; /* neon_vmullsv8qi */

        case 1:
          if (!
#line 2175 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1594; /* neon_vmullsv4hi */

        case 2:
          if (!
#line 2175 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1597; /* neon_vmullsv2si */

        default:
          return -1;
        }

    case 240:
      switch (pattern156 (x1, E_V8QImode, E_V4HImode, E_V2SImode))
        {
        case 0:
          if (!
#line 2175 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1592; /* neon_vmulluv8qi */

        case 1:
          if (!
#line 2175 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1595; /* neon_vmulluv4hi */

        case 2:
          if (!
#line 2175 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1598; /* neon_vmulluv2si */

        default:
          return -1;
        }

    case 238:
      switch (pattern156 (x1, E_V8QImode, E_V4HImode, E_V2SImode))
        {
        case 0:
          if (!
#line 2175 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1593; /* neon_vmullpv8qi */

        case 1:
          if (!
#line 2175 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1596; /* neon_vmullpv4hi */

        case 2:
          if (!
#line 2175 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1599; /* neon_vmullpv2si */

        default:
          return -1;
        }

    case 268:
      switch (pattern162 (x1, E_V4HImode, E_V2SImode))
        {
        case 0:
          if (!
#line 2185 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1600; /* neon_vqdmullv4hi */

        case 1:
          if (!
#line 2185 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1601; /* neon_vqdmullv2si */

        default:
          return -1;
        }

    case 328:
      switch (pattern155 (x1))
        {
        case 0:
          if (!
#line 2211 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1602; /* neon_vsubv2sf_unspec */

        case 1:
          if (!
#line 2211 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1603; /* neon_vsubv4sf_unspec */

        default:
          return -1;
        }

    case 331:
      switch (pattern156 (x1, E_V8QImode, E_V4HImode, E_V2SImode))
        {
        case 0:
          if (!
#line 2224 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1604; /* neon_vsublsv8qi */

        case 1:
          if (!
#line 2224 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1606; /* neon_vsublsv4hi */

        case 2:
          if (!
#line 2224 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1608; /* neon_vsublsv2si */

        default:
          return -1;
        }

    case 332:
      switch (pattern156 (x1, E_V8QImode, E_V4HImode, E_V2SImode))
        {
        case 0:
          if (!
#line 2224 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1605; /* neon_vsubluv8qi */

        case 1:
          if (!
#line 2224 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1607; /* neon_vsubluv4hi */

        case 2:
          if (!
#line 2224 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1609; /* neon_vsubluv2si */

        default:
          return -1;
        }

    case 333:
      switch (pattern157 (x1))
        {
        case 0:
          if (!
#line 2234 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1610; /* neon_vsubwsv8qi */

        case 1:
          if (!
#line 2234 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1612; /* neon_vsubwsv4hi */

        case 2:
          if (!
#line 2234 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1614; /* neon_vsubwsv2si */

        default:
          return -1;
        }

    case 334:
      switch (pattern157 (x1))
        {
        case 0:
          if (!
#line 2234 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1611; /* neon_vsubwuv8qi */

        case 1:
          if (!
#line 2234 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1613; /* neon_vsubwuv4hi */

        case 2:
          if (!
#line 2234 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1615; /* neon_vsubwuv2si */

        default:
          return -1;
        }

    case 287:
      return recog_159 (x1, insn, pnum_clobbers);

    case 288:
      return recog_158 (x1, insn, pnum_clobbers);

    case 196:
      return recog_188 (x1, insn, pnum_clobbers);

    case 197:
      return recog_187 (x1, insn, pnum_clobbers);

    case 329:
      switch (pattern160 (x1))
        {
        case 0:
          if (!
#line 2264 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1644; /* neon_vsubhnv8hi */

        case 1:
          if (!
#line 2264 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1646; /* neon_vsubhnv4si */

        case 2:
          if (!
#line 2264 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1648; /* neon_vsubhnv2di */

        default:
          return -1;
        }

    case 330:
      switch (pattern160 (x1))
        {
        case 0:
          if (!
#line 2264 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1645; /* neon_vrsubhnv8hi */

        case 1:
          if (!
#line 2264 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1647; /* neon_vrsubhnv4si */

        case 2:
          if (!
#line 2264 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1649; /* neon_vrsubhnv2di */

        default:
          return -1;
        }

    case 165:
      return recog_213 (x1, insn, pnum_clobbers);

    case 168:
      return recog_212 (x1, insn, pnum_clobbers);

    case 166:
      return recog_211 (x1, insn, pnum_clobbers);

    case 346:
      return recog_210 (x1, insn, pnum_clobbers);

    case 345:
      return recog_209 (x1, insn, pnum_clobbers);

    case 161:
      return recog_208 (x1, insn, pnum_clobbers);

    case 162:
      return recog_207 (x1, insn, pnum_clobbers);

    case 163:
      return recog_206 (x1, insn, pnum_clobbers);

    case 164:
      return recog_205 (x1, insn, pnum_clobbers);

    case 149:
      return recog_186 (x1, insn, pnum_clobbers);

    case 150:
      return recog_185 (x1, insn, pnum_clobbers);

    case 148:
      return recog_157 (x1, insn, pnum_clobbers);

    case 151:
      switch (pattern156 (x1, E_V8QImode, E_V4HImode, E_V2SImode))
        {
        case 0:
          if (!
#line 2574 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1786; /* neon_vabdlsv8qi */

        case 1:
          if (!
#line 2574 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1788; /* neon_vabdlsv4hi */

        case 2:
          if (!
#line 2574 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1790; /* neon_vabdlsv2si */

        default:
          return -1;
        }

    case 152:
      switch (pattern156 (x1, E_V8QImode, E_V4HImode, E_V2SImode))
        {
        case 0:
          if (!
#line 2574 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1787; /* neon_vabdluv8qi */

        case 1:
          if (!
#line 2574 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1789; /* neon_vabdluv4hi */

        case 2:
          if (!
#line 2574 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1791; /* neon_vabdluv2si */

        default:
          return -1;
        }

    case 213:
      return recog_134 (x1, insn, pnum_clobbers);

    case 214:
      return recog_184 (x1, insn, pnum_clobbers);

    case 216:
      return recog_133 (x1, insn, pnum_clobbers);

    case 217:
      return recog_183 (x1, insn, pnum_clobbers);

    case 249:
      return recog_182 (x1, insn, pnum_clobbers);

    case 251:
      return recog_181 (x1, insn, pnum_clobbers);

    case 244:
      return recog_180 (x1, insn, pnum_clobbers);

    case 245:
      return recog_179 (x1, insn, pnum_clobbers);

    case 250:
      switch (pattern154 (x1))
        {
        case 0:
          if (!
#line 2738 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1881; /* neon_vpmaxuv8qi */

        case 1:
          if (!
#line 2738 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1885; /* neon_vpmaxuv4hi */

        case 2:
          if (!
#line 2738 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1889; /* neon_vpmaxuv2si */

        default:
          return -1;
        }

    case 252:
      switch (pattern154 (x1))
        {
        case 0:
          if (!
#line 2738 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1883; /* neon_vpminuv8qi */

        case 1:
          if (!
#line 2738 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1887; /* neon_vpminuv4hi */

        case 2:
          if (!
#line 2738 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1891; /* neon_vpminuv2si */

        default:
          return -1;
        }

    case 290:
      return recog_156 (x1, insn, pnum_clobbers);

    case 368:
      return recog_128 (x1, insn, pnum_clobbers);

    case 369:
      return recog_127 (x1, insn, pnum_clobbers);

    case 175:
      return recog_155 (x1, insn, pnum_clobbers);

    case 176:
      return recog_154 (x1, insn, pnum_clobbers);

    case 296:
      return recog_153 (x1, insn, pnum_clobbers);

    case 297:
      return recog_152 (x1, insn, pnum_clobbers);

    case 298:
      return recog_151 (x1, insn, pnum_clobbers);

    case 299:
      return recog_150 (x1, insn, pnum_clobbers);

    case 274:
      return recog_149 (x1, insn, pnum_clobbers);

    case 275:
      return recog_148 (x1, insn, pnum_clobbers);

    case 276:
      return recog_147 (x1, insn, pnum_clobbers);

    case 277:
      return recog_146 (x1, insn, pnum_clobbers);

    case 303:
      return recog_145 (x1, insn, pnum_clobbers);

    case 304:
      return recog_144 (x1, insn, pnum_clobbers);

    case 305:
      return recog_143 (x1, insn, pnum_clobbers);

    case 306:
      return recog_142 (x1, insn, pnum_clobbers);

    case 307:
      switch (pattern173 (x1))
        {
        case 0:
          if (!
#line 4496 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2358; /* neon_vshrn_nv8hi */

        case 1:
          if (!
#line 4496 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2360; /* neon_vshrn_nv4si */

        case 2:
          if (!
#line 4496 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2362; /* neon_vshrn_nv2di */

        default:
          return -1;
        }

    case 308:
      switch (pattern173 (x1))
        {
        case 0:
          if (!
#line 4496 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2359; /* neon_vrshrn_nv8hi */

        case 1:
          if (!
#line 4496 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2361; /* neon_vrshrn_nv4si */

        case 2:
          if (!
#line 4496 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2363; /* neon_vrshrn_nv2di */

        default:
          return -1;
        }

    case 281:
      switch (pattern173 (x1))
        {
        case 0:
          if (!
#line 4510 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2364; /* neon_vqshrns_nv8hi */

        case 1:
          if (!
#line 4510 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2368; /* neon_vqshrns_nv4si */

        case 2:
          if (!
#line 4510 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2372; /* neon_vqshrns_nv2di */

        default:
          return -1;
        }

    case 282:
      switch (pattern173 (x1))
        {
        case 0:
          if (!
#line 4510 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2365; /* neon_vqshrnu_nv8hi */

        case 1:
          if (!
#line 4510 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2369; /* neon_vqshrnu_nv4si */

        case 2:
          if (!
#line 4510 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2373; /* neon_vqshrnu_nv2di */

        default:
          return -1;
        }

    case 283:
      switch (pattern173 (x1))
        {
        case 0:
          if (!
#line 4510 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2366; /* neon_vqrshrns_nv8hi */

        case 1:
          if (!
#line 4510 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2370; /* neon_vqrshrns_nv4si */

        case 2:
          if (!
#line 4510 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2374; /* neon_vqrshrns_nv2di */

        default:
          return -1;
        }

    case 284:
      switch (pattern173 (x1))
        {
        case 0:
          if (!
#line 4510 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2367; /* neon_vqrshrnu_nv8hi */

        case 1:
          if (!
#line 4510 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2371; /* neon_vqrshrnu_nv4si */

        case 2:
          if (!
#line 4510 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2375; /* neon_vqrshrnu_nv2di */

        default:
          return -1;
        }

    case 285:
      switch (pattern173 (x1))
        {
        case 0:
          if (!
#line 4524 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2376; /* neon_vqshrun_nv8hi */

        case 1:
          if (!
#line 4524 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2378; /* neon_vqshrun_nv4si */

        case 2:
          if (!
#line 4524 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2380; /* neon_vqshrun_nv2di */

        default:
          return -1;
        }

    case 286:
      switch (pattern173 (x1))
        {
        case 0:
          if (!
#line 4524 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2377; /* neon_vqrshrun_nv8hi */

        case 1:
          if (!
#line 4524 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2379; /* neon_vqrshrun_nv4si */

        case 2:
          if (!
#line 4524 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2381; /* neon_vqrshrun_nv2di */

        default:
          return -1;
        }

    case 302:
      return recog_141 (x1, insn, pnum_clobbers);

    case 278:
      return recog_140 (x1, insn, pnum_clobbers);

    case 279:
      return recog_139 (x1, insn, pnum_clobbers);

    case 280:
      return recog_138 (x1, insn, pnum_clobbers);

    case 300:
      switch (pattern174 (x1))
        {
        case 0:
          if (!
#line 4576 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2414; /* neon_vshlls_nv8qi */

        case 1:
          if (!
#line 4576 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2416; /* neon_vshlls_nv4hi */

        case 2:
          if (!
#line 4576 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2418; /* neon_vshlls_nv2si */

        default:
          return -1;
        }

    case 301:
      switch (pattern174 (x1))
        {
        case 0:
          if (!
#line 4576 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2415; /* neon_vshllu_nv8qi */

        case 1:
          if (!
#line 4576 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2417; /* neon_vshllu_nv4hi */

        case 2:
          if (!
#line 4576 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2419; /* neon_vshllu_nv2si */

        default:
          return -1;
        }

    case 335:
      return recog_130 (x1, insn, pnum_clobbers);

    case 171:
      if (pattern175 (x1, E_V16QImode, E_OImode) != 0
          || !
#line 4776 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2474; /* neon_vcombinev16qi */

    case 316:
      return recog_122 (x1, insn, pnum_clobbers);

    case 200:
      return recog_126 (x1, insn, pnum_clobbers);

    case 201:
      return recog_123 (x1, insn, pnum_clobbers);

    case 317:
      return recog_125 (x1, insn, pnum_clobbers);

    case 203:
      return recog_167 (x1, insn, pnum_clobbers);

    case 204:
      return recog_178 (x1, insn, pnum_clobbers);

    case 206:
      return recog_132 (x1, insn, pnum_clobbers);

    case 319:
      return recog_166 (x1, insn, pnum_clobbers);

    case 320:
      return recog_177 (x1, insn, pnum_clobbers);

    case 321:
      return recog_176 (x1, insn, pnum_clobbers);

    case 208:
      return recog_165 (x1, insn, pnum_clobbers);

    case 209:
      return recog_175 (x1, insn, pnum_clobbers);

    case 211:
      return recog_124 (x1, insn, pnum_clobbers);

    case 323:
      return recog_164 (x1, insn, pnum_clobbers);

    case 324:
      return recog_174 (x1, insn, pnum_clobbers);

    case 325:
      return recog_173 (x1, insn, pnum_clobbers);

    case 385:
      return recog_204 (x1, insn, pnum_clobbers);

    case 139:
      if (pattern149 (x1, E_V4SImode) != 0
          || !
#line 213 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO))
        return -1;
      return 2861; /* crypto_sha1su1 */

    case 142:
      if (pattern149 (x1, E_V4SImode) != 0
          || !
#line 213 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO))
        return -1;
      return 2862; /* crypto_sha256su0 */

    case 144:
      if (pattern148 (x1, E_DImode, E_TImode) != 0
          || !
#line 262 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO))
        return -1;
      return 2868; /* crypto_vmullp64 */

    case 389:
      return recog_199 (x1, insn, pnum_clobbers);

    case 441:
      switch (pattern183 (x1))
        {
        case 0:
          if (!
#line 681 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3171; /* mve_vsubq_n_fv8hf */

        case 1:
          if (!
#line 681 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3172; /* mve_vsubq_n_fv4sf */

        default:
          return -1;
        }

    case 440:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      x5 = XVECEXP (x2, 0, 1);
      operands[2] = x5;
      if (!s_register_operand (operands[2], E_SImode))
        return -1;
      switch (pattern128 (x2))
        {
        case 0:
          if (!
#line 696 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3173; /* mve_vbrsrq_n_fv8hf */

        case 1:
          if (!
#line 696 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3174; /* mve_vbrsrq_n_fv4sf */

        default:
          return -1;
        }

    case 438:
      switch (pattern184 (x1))
        {
        case 0:
          if (!
#line 711 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3175; /* mve_vcvtq_n_to_f_sv8hf */

        case 1:
          if (!
#line 711 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3177; /* mve_vcvtq_n_to_f_sv4sf */

        default:
          return -1;
        }

    case 439:
      switch (pattern184 (x1))
        {
        case 0:
          if (!
#line 711 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3176; /* mve_vcvtq_n_to_f_uv8hf */

        case 1:
          if (!
#line 711 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3178; /* mve_vcvtq_n_to_f_uv4sf */

        default:
          return -1;
        }

    case 437:
      return recog_137 (x1, insn, pnum_clobbers);

    case 442:
      return recog_203 (x1, insn, pnum_clobbers);

    case 443:
      return recog_202 (x1, insn, pnum_clobbers);

    case 444:
      switch (pattern188 (x1))
        {
        case 0:
          if (!
#line 756 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3189; /* mve_vshrq_n_sv16qi */

        case 1:
          if (!
#line 756 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3191; /* mve_vshrq_n_sv8hi */

        case 2:
          if (!
#line 756 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3193; /* mve_vshrq_n_sv4si */

        default:
          return -1;
        }

    case 445:
      switch (pattern188 (x1))
        {
        case 0:
          if (!
#line 756 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3190; /* mve_vshrq_n_uv16qi */

        case 1:
          if (!
#line 756 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3192; /* mve_vshrq_n_uv8hi */

        case 2:
          if (!
#line 756 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3194; /* mve_vshrq_n_uv4si */

        default:
          return -1;
        }

    case 446:
      switch (pattern189 (x1))
        {
        case 0:
          if (!
#line 804 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3201; /* mve_vcvtq_n_from_f_sv8hi */

        case 1:
          if (!
#line 804 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3203; /* mve_vcvtq_n_from_f_sv4si */

        default:
          return -1;
        }

    case 447:
      switch (pattern189 (x1))
        {
        case 0:
          if (!
#line 804 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3202; /* mve_vcvtq_n_from_f_uv8hi */

        case 1:
          if (!
#line 804 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3204; /* mve_vcvtq_n_from_f_uv4si */

        default:
          return -1;
        }

    case 448:
      if (pattern190 (x1) != 0
          || !
#line 819 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3205; /* mve_vaddlvq_p_sv4si */

    case 449:
      if (pattern190 (x1) != 0
          || !
#line 819 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3206; /* mve_vaddlvq_p_uv4si */

    case 452:
      switch (pattern191 (x1))
        {
        case 0:
          if (!
#line 867 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3255; /* mve_vabdq_sv16qi */

        case 1:
          if (!
#line 867 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3257; /* mve_vabdq_sv8hi */

        case 2:
          if (!
#line 867 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3259; /* mve_vabdq_sv4si */

        default:
          return -1;
        }

    case 489:
      switch (pattern191 (x1))
        {
        case 0:
          if (!
#line 867 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3256; /* mve_vabdq_uv16qi */

        case 1:
          if (!
#line 867 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3258; /* mve_vabdq_uv8hi */

        case 2:
          if (!
#line 867 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3260; /* mve_vabdq_uv4si */

        default:
          return -1;
        }

    case 453:
      switch (pattern192 (x1))
        {
        case 0:
          if (!
#line 882 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3261; /* mve_vaddq_n_sv16qi */

        case 1:
          if (!
#line 882 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3263; /* mve_vaddq_n_sv8hi */

        case 2:
          if (!
#line 882 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3265; /* mve_vaddq_n_sv4si */

        default:
          return -1;
        }

    case 490:
      switch (pattern192 (x1))
        {
        case 0:
          if (!
#line 882 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3262; /* mve_vaddq_n_uv16qi */

        case 1:
          if (!
#line 882 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3264; /* mve_vaddq_n_uv8hi */

        case 2:
          if (!
#line 882 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3266; /* mve_vaddq_n_uv4si */

        default:
          return -1;
        }

    case 454:
      switch (pattern193 (x1))
        {
        case 0:
          if (!
#line 897 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3267; /* mve_vaddvaq_sv16qi */

        case 1:
          if (!
#line 897 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3269; /* mve_vaddvaq_sv8hi */

        case 2:
          if (!
#line 897 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3271; /* mve_vaddvaq_sv4si */

        default:
          return -1;
        }

    case 491:
      switch (pattern193 (x1))
        {
        case 0:
          if (!
#line 897 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3268; /* mve_vaddvaq_uv16qi */

        case 1:
          if (!
#line 897 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3270; /* mve_vaddvaq_uv8hi */

        case 2:
          if (!
#line 897 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3272; /* mve_vaddvaq_uv4si */

        default:
          return -1;
        }

    case 492:
      switch (pattern194 (x1))
        {
        case 0:
          if (!
#line 912 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3273; /* mve_vaddvq_p_uv16qi */

        case 1:
          if (!
#line 912 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3275; /* mve_vaddvq_p_uv8hi */

        case 2:
          if (!
#line 912 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3277; /* mve_vaddvq_p_uv4si */

        default:
          return -1;
        }

    case 455:
      switch (pattern194 (x1))
        {
        case 0:
          if (!
#line 912 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3274; /* mve_vaddvq_p_sv16qi */

        case 1:
          if (!
#line 912 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3276; /* mve_vaddvq_p_sv8hi */

        case 2:
          if (!
#line 912 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3278; /* mve_vaddvq_p_sv4si */

        default:
          return -1;
        }

    case 493:
      switch (pattern195 (x1))
        {
        case 0:
          if (!
#line 978 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3285; /* mve_vbrsrq_n_uv16qi */

        case 1:
          if (!
#line 978 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3287; /* mve_vbrsrq_n_uv8hi */

        case 2:
          if (!
#line 978 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3289; /* mve_vbrsrq_n_uv4si */

        default:
          return -1;
        }

    case 456:
      switch (pattern195 (x1))
        {
        case 0:
          if (!
#line 978 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3286; /* mve_vbrsrq_n_sv16qi */

        case 1:
          if (!
#line 978 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3288; /* mve_vbrsrq_n_sv8hi */

        case 2:
          if (!
#line 978 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3290; /* mve_vbrsrq_n_sv4si */

        default:
          return -1;
        }

    case 495:
      switch (pattern192 (x1))
        {
        case 0:
          if (!
#line 1039 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3300; /* mve_vhaddq_n_uv16qi */

        case 1:
          if (!
#line 1039 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3302; /* mve_vhaddq_n_uv8hi */

        case 2:
          if (!
#line 1039 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3304; /* mve_vhaddq_n_uv4si */

        default:
          return -1;
        }

    case 458:
      switch (pattern192 (x1))
        {
        case 0:
          if (!
#line 1039 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3301; /* mve_vhaddq_n_sv16qi */

        case 1:
          if (!
#line 1039 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3303; /* mve_vhaddq_n_sv8hi */

        case 2:
          if (!
#line 1039 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3305; /* mve_vhaddq_n_sv4si */

        default:
          return -1;
        }

    case 457:
      switch (pattern191 (x1))
        {
        case 0:
          if (!
#line 1054 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3306; /* mve_vhaddq_sv16qi */

        case 1:
          if (!
#line 1054 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3308; /* mve_vhaddq_sv8hi */

        case 2:
          if (!
#line 1054 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3310; /* mve_vhaddq_sv4si */

        default:
          return -1;
        }

    case 494:
      switch (pattern191 (x1))
        {
        case 0:
          if (!
#line 1054 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3307; /* mve_vhaddq_uv16qi */

        case 1:
          if (!
#line 1054 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3309; /* mve_vhaddq_uv8hi */

        case 2:
          if (!
#line 1054 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3311; /* mve_vhaddq_uv4si */

        default:
          return -1;
        }

    case 526:
      switch (pattern191 (x1))
        {
        case 0:
          if (!
#line 1069 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3312; /* mve_vhcaddq_rot270_sv16qi */

        case 1:
          if (!
#line 1069 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3313; /* mve_vhcaddq_rot270_sv8hi */

        case 2:
          if (!
#line 1069 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3314; /* mve_vhcaddq_rot270_sv4si */

        default:
          return -1;
        }

    case 527:
      switch (pattern191 (x1))
        {
        case 0:
          if (!
#line 1084 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3315; /* mve_vhcaddq_rot90_sv16qi */

        case 1:
          if (!
#line 1084 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3316; /* mve_vhcaddq_rot90_sv8hi */

        case 2:
          if (!
#line 1084 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3317; /* mve_vhcaddq_rot90_sv4si */

        default:
          return -1;
        }

    case 497:
      switch (pattern192 (x1))
        {
        case 0:
          if (!
#line 1099 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3318; /* mve_vhsubq_n_uv16qi */

        case 1:
          if (!
#line 1099 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3320; /* mve_vhsubq_n_uv8hi */

        case 2:
          if (!
#line 1099 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3322; /* mve_vhsubq_n_uv4si */

        default:
          return -1;
        }

    case 460:
      switch (pattern192 (x1))
        {
        case 0:
          if (!
#line 1099 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3319; /* mve_vhsubq_n_sv16qi */

        case 1:
          if (!
#line 1099 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3321; /* mve_vhsubq_n_sv8hi */

        case 2:
          if (!
#line 1099 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3323; /* mve_vhsubq_n_sv4si */

        default:
          return -1;
        }

    case 459:
      switch (pattern191 (x1))
        {
        case 0:
          if (!
#line 1114 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3324; /* mve_vhsubq_sv16qi */

        case 1:
          if (!
#line 1114 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3326; /* mve_vhsubq_sv8hi */

        case 2:
          if (!
#line 1114 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3328; /* mve_vhsubq_sv4si */

        default:
          return -1;
        }

    case 496:
      switch (pattern191 (x1))
        {
        case 0:
          if (!
#line 1114 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3325; /* mve_vhsubq_uv16qi */

        case 1:
          if (!
#line 1114 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3327; /* mve_vhsubq_uv8hi */

        case 2:
          if (!
#line 1114 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3329; /* mve_vhsubq_uv4si */

        default:
          return -1;
        }

    case 528:
      switch (pattern191 (x1))
        {
        case 0:
          if (!
#line 1129 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3330; /* mve_vmaxaq_sv16qi */

        case 1:
          if (!
#line 1129 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3331; /* mve_vmaxaq_sv8hi */

        case 2:
          if (!
#line 1129 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3332; /* mve_vmaxaq_sv4si */

        default:
          return -1;
        }

    case 529:
      switch (pattern196 (x1))
        {
        case 0:
          if (!
#line 1144 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3333; /* mve_vmaxavq_sv16qi */

        case 1:
          if (!
#line 1144 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3334; /* mve_vmaxavq_sv8hi */

        case 2:
          if (!
#line 1144 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3335; /* mve_vmaxavq_sv4si */

        default:
          return -1;
        }

    case 499:
      switch (pattern196 (x1))
        {
        case 0:
          if (!
#line 1184 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3342; /* mve_vmaxvq_uv16qi */

        case 1:
          if (!
#line 1184 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3344; /* mve_vmaxvq_uv8hi */

        case 2:
          if (!
#line 1184 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3346; /* mve_vmaxvq_uv4si */

        default:
          return -1;
        }

    case 462:
      switch (pattern196 (x1))
        {
        case 0:
          if (!
#line 1184 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3343; /* mve_vmaxvq_sv16qi */

        case 1:
          if (!
#line 1184 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3345; /* mve_vmaxvq_sv8hi */

        case 2:
          if (!
#line 1184 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3347; /* mve_vmaxvq_sv4si */

        default:
          return -1;
        }

    case 530:
      switch (pattern191 (x1))
        {
        case 0:
          if (!
#line 1199 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3348; /* mve_vminaq_sv16qi */

        case 1:
          if (!
#line 1199 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3349; /* mve_vminaq_sv8hi */

        case 2:
          if (!
#line 1199 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3350; /* mve_vminaq_sv4si */

        default:
          return -1;
        }

    case 531:
      switch (pattern196 (x1))
        {
        case 0:
          if (!
#line 1214 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3351; /* mve_vminavq_sv16qi */

        case 1:
          if (!
#line 1214 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3352; /* mve_vminavq_sv8hi */

        case 2:
          if (!
#line 1214 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3353; /* mve_vminavq_sv4si */

        default:
          return -1;
        }

    case 501:
      switch (pattern196 (x1))
        {
        case 0:
          if (!
#line 1254 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3360; /* mve_vminvq_uv16qi */

        case 1:
          if (!
#line 1254 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3362; /* mve_vminvq_uv8hi */

        case 2:
          if (!
#line 1254 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3364; /* mve_vminvq_uv4si */

        default:
          return -1;
        }

    case 464:
      switch (pattern196 (x1))
        {
        case 0:
          if (!
#line 1254 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3361; /* mve_vminvq_sv16qi */

        case 1:
          if (!
#line 1254 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3363; /* mve_vminvq_sv8hi */

        case 2:
          if (!
#line 1254 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3365; /* mve_vminvq_sv4si */

        default:
          return -1;
        }

    case 502:
      switch (pattern197 (x1))
        {
        case 0:
          if (!
#line 1269 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3366; /* mve_vmladavq_uv16qi */

        case 1:
          if (!
#line 1269 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3368; /* mve_vmladavq_uv8hi */

        case 2:
          if (!
#line 1269 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3370; /* mve_vmladavq_uv4si */

        default:
          return -1;
        }

    case 465:
      switch (pattern197 (x1))
        {
        case 0:
          if (!
#line 1269 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3367; /* mve_vmladavq_sv16qi */

        case 1:
          if (!
#line 1269 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3369; /* mve_vmladavq_sv8hi */

        case 2:
          if (!
#line 1269 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3371; /* mve_vmladavq_sv4si */

        default:
          return -1;
        }

    case 532:
      switch (pattern197 (x1))
        {
        case 0:
          if (!
#line 1284 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3372; /* mve_vmladavxq_sv16qi */

        case 1:
          if (!
#line 1284 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3373; /* mve_vmladavxq_sv8hi */

        case 2:
          if (!
#line 1284 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3374; /* mve_vmladavxq_sv4si */

        default:
          return -1;
        }

    case 533:
      switch (pattern197 (x1))
        {
        case 0:
          if (!
#line 1299 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3375; /* mve_vmlsdavq_sv16qi */

        case 1:
          if (!
#line 1299 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3376; /* mve_vmlsdavq_sv8hi */

        case 2:
          if (!
#line 1299 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3377; /* mve_vmlsdavq_sv4si */

        default:
          return -1;
        }

    case 534:
      switch (pattern197 (x1))
        {
        case 0:
          if (!
#line 1314 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3378; /* mve_vmlsdavxq_sv16qi */

        case 1:
          if (!
#line 1314 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3379; /* mve_vmlsdavxq_sv8hi */

        case 2:
          if (!
#line 1314 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3380; /* mve_vmlsdavxq_sv4si */

        default:
          return -1;
        }

    case 466:
      switch (pattern191 (x1))
        {
        case 0:
          if (!
#line 1329 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3381; /* mve_vmulhq_sv16qi */

        case 1:
          if (!
#line 1329 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3383; /* mve_vmulhq_sv8hi */

        case 2:
          if (!
#line 1329 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3385; /* mve_vmulhq_sv4si */

        default:
          return -1;
        }

    case 503:
      switch (pattern191 (x1))
        {
        case 0:
          if (!
#line 1329 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3382; /* mve_vmulhq_uv16qi */

        case 1:
          if (!
#line 1329 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3384; /* mve_vmulhq_uv8hi */

        case 2:
          if (!
#line 1329 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3386; /* mve_vmulhq_uv4si */

        default:
          return -1;
        }

    case 504:
      switch (pattern156 (x1, E_V16QImode, E_V8HImode, E_V4SImode))
        {
        case 0:
          if (!
#line 1344 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3387; /* mve_vmullbq_int_uv16qi */

        case 1:
          if (!
#line 1344 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3389; /* mve_vmullbq_int_uv8hi */

        case 2:
          if (!
#line 1344 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3391; /* mve_vmullbq_int_uv4si */

        default:
          return -1;
        }

    case 467:
      switch (pattern156 (x1, E_V16QImode, E_V8HImode, E_V4SImode))
        {
        case 0:
          if (!
#line 1344 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3388; /* mve_vmullbq_int_sv16qi */

        case 1:
          if (!
#line 1344 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3390; /* mve_vmullbq_int_sv8hi */

        case 2:
          if (!
#line 1344 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3392; /* mve_vmullbq_int_sv4si */

        default:
          return -1;
        }

    case 505:
      switch (pattern156 (x1, E_V16QImode, E_V8HImode, E_V4SImode))
        {
        case 0:
          if (!
#line 1359 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3393; /* mve_vmulltq_int_uv16qi */

        case 1:
          if (!
#line 1359 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3395; /* mve_vmulltq_int_uv8hi */

        case 2:
          if (!
#line 1359 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3397; /* mve_vmulltq_int_uv4si */

        default:
          return -1;
        }

    case 468:
      switch (pattern156 (x1, E_V16QImode, E_V8HImode, E_V4SImode))
        {
        case 0:
          if (!
#line 1359 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3394; /* mve_vmulltq_int_sv16qi */

        case 1:
          if (!
#line 1359 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3396; /* mve_vmulltq_int_sv8hi */

        case 2:
          if (!
#line 1359 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3398; /* mve_vmulltq_int_sv4si */

        default:
          return -1;
        }

    case 507:
      switch (pattern192 (x1))
        {
        case 0:
          if (!
#line 1374 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3399; /* mve_vmulq_n_uv16qi */

        case 1:
          if (!
#line 1374 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3401; /* mve_vmulq_n_uv8hi */

        case 2:
          if (!
#line 1374 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3403; /* mve_vmulq_n_uv4si */

        default:
          return -1;
        }

    case 470:
      switch (pattern192 (x1))
        {
        case 0:
          if (!
#line 1374 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3400; /* mve_vmulq_n_sv16qi */

        case 1:
          if (!
#line 1374 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3402; /* mve_vmulq_n_sv8hi */

        case 2:
          if (!
#line 1374 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3404; /* mve_vmulq_n_sv4si */

        default:
          return -1;
        }

    case 506:
      switch (pattern191 (x1))
        {
        case 0:
          if (!
#line 1389 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3405; /* mve_vmulq_uv16qi */

        case 1:
          if (!
#line 1389 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3407; /* mve_vmulq_uv8hi */

        case 2:
          if (!
#line 1389 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3409; /* mve_vmulq_uv4si */

        default:
          return -1;
        }

    case 469:
      switch (pattern191 (x1))
        {
        case 0:
          if (!
#line 1389 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3406; /* mve_vmulq_sv16qi */

        case 1:
          if (!
#line 1389 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3408; /* mve_vmulq_sv8hi */

        case 2:
          if (!
#line 1389 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3410; /* mve_vmulq_sv4si */

        default:
          return -1;
        }

    case 472:
      switch (pattern192 (x1))
        {
        case 0:
          if (!
#line 1466 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3420; /* mve_vqaddq_n_sv16qi */

        case 1:
          if (!
#line 1466 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3422; /* mve_vqaddq_n_sv8hi */

        case 2:
          if (!
#line 1466 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3424; /* mve_vqaddq_n_sv4si */

        default:
          return -1;
        }

    case 509:
      switch (pattern192 (x1))
        {
        case 0:
          if (!
#line 1466 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3421; /* mve_vqaddq_n_uv16qi */

        case 1:
          if (!
#line 1466 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3423; /* mve_vqaddq_n_uv8hi */

        case 2:
          if (!
#line 1466 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3425; /* mve_vqaddq_n_uv4si */

        default:
          return -1;
        }

    case 508:
      switch (pattern191 (x1))
        {
        case 0:
          if (!
#line 1481 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3426; /* mve_vqaddq_uv16qi */

        case 1:
          if (!
#line 1481 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3428; /* mve_vqaddq_uv8hi */

        case 2:
          if (!
#line 1481 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3430; /* mve_vqaddq_uv4si */

        default:
          return -1;
        }

    case 471:
      switch (pattern191 (x1))
        {
        case 0:
          if (!
#line 1481 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3427; /* mve_vqaddq_sv16qi */

        case 1:
          if (!
#line 1481 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3429; /* mve_vqaddq_sv8hi */

        case 2:
          if (!
#line 1481 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3431; /* mve_vqaddq_sv4si */

        default:
          return -1;
        }

    case 535:
      switch (pattern192 (x1))
        {
        case 0:
          if (!
#line 1496 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3432; /* mve_vqdmulhq_n_sv16qi */

        case 1:
          if (!
#line 1496 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3433; /* mve_vqdmulhq_n_sv8hi */

        case 2:
          if (!
#line 1496 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3434; /* mve_vqdmulhq_n_sv4si */

        default:
          return -1;
        }

    case 536:
      switch (pattern191 (x1))
        {
        case 0:
          if (!
#line 1511 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3435; /* mve_vqdmulhq_sv16qi */

        case 1:
          if (!
#line 1511 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3436; /* mve_vqdmulhq_sv8hi */

        case 2:
          if (!
#line 1511 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3437; /* mve_vqdmulhq_sv4si */

        default:
          return -1;
        }

    case 537:
      switch (pattern192 (x1))
        {
        case 0:
          if (!
#line 1526 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3438; /* mve_vqrdmulhq_n_sv16qi */

        case 1:
          if (!
#line 1526 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3439; /* mve_vqrdmulhq_n_sv8hi */

        case 2:
          if (!
#line 1526 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3440; /* mve_vqrdmulhq_n_sv4si */

        default:
          return -1;
        }

    case 538:
      switch (pattern191 (x1))
        {
        case 0:
          if (!
#line 1541 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3441; /* mve_vqrdmulhq_sv16qi */

        case 1:
          if (!
#line 1541 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3442; /* mve_vqrdmulhq_sv8hi */

        case 2:
          if (!
#line 1541 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3443; /* mve_vqrdmulhq_sv4si */

        default:
          return -1;
        }

    case 474:
      switch (pattern195 (x1))
        {
        case 0:
          if (!
#line 1556 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3444; /* mve_vqrshlq_n_sv16qi */

        case 1:
          if (!
#line 1556 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3446; /* mve_vqrshlq_n_sv8hi */

        case 2:
          if (!
#line 1556 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3448; /* mve_vqrshlq_n_sv4si */

        default:
          return -1;
        }

    case 511:
      switch (pattern195 (x1))
        {
        case 0:
          if (!
#line 1556 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3445; /* mve_vqrshlq_n_uv16qi */

        case 1:
          if (!
#line 1556 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3447; /* mve_vqrshlq_n_uv8hi */

        case 2:
          if (!
#line 1556 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3449; /* mve_vqrshlq_n_uv4si */

        default:
          return -1;
        }

    case 473:
      switch (pattern191 (x1))
        {
        case 0:
          if (!
#line 1571 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3450; /* mve_vqrshlq_sv16qi */

        case 1:
          if (!
#line 1571 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3452; /* mve_vqrshlq_sv8hi */

        case 2:
          if (!
#line 1571 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3454; /* mve_vqrshlq_sv4si */

        default:
          return -1;
        }

    case 510:
      switch (pattern191 (x1))
        {
        case 0:
          if (!
#line 1571 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3451; /* mve_vqrshlq_uv16qi */

        case 1:
          if (!
#line 1571 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3453; /* mve_vqrshlq_uv8hi */

        case 2:
          if (!
#line 1571 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3455; /* mve_vqrshlq_uv4si */

        default:
          return -1;
        }

    case 476:
      switch (pattern198 (x1))
        {
        case 0:
          if (!
#line 1586 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3456; /* mve_vqshlq_n_sv16qi */

        case 1:
          if (!
#line 1586 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3458; /* mve_vqshlq_n_sv8hi */

        case 2:
          if (!
#line 1586 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3460; /* mve_vqshlq_n_sv4si */

        default:
          return -1;
        }

    case 513:
      switch (pattern198 (x1))
        {
        case 0:
          if (!
#line 1586 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3457; /* mve_vqshlq_n_uv16qi */

        case 1:
          if (!
#line 1586 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3459; /* mve_vqshlq_n_uv8hi */

        case 2:
          if (!
#line 1586 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3461; /* mve_vqshlq_n_uv4si */

        default:
          return -1;
        }

    case 514:
      switch (pattern195 (x1))
        {
        case 0:
          if (!
#line 1601 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3462; /* mve_vqshlq_r_uv16qi */

        case 1:
          if (!
#line 1601 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3464; /* mve_vqshlq_r_uv8hi */

        case 2:
          if (!
#line 1601 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3466; /* mve_vqshlq_r_uv4si */

        default:
          return -1;
        }

    case 477:
      switch (pattern195 (x1))
        {
        case 0:
          if (!
#line 1601 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3463; /* mve_vqshlq_r_sv16qi */

        case 1:
          if (!
#line 1601 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3465; /* mve_vqshlq_r_sv8hi */

        case 2:
          if (!
#line 1601 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3467; /* mve_vqshlq_r_sv4si */

        default:
          return -1;
        }

    case 475:
      switch (pattern191 (x1))
        {
        case 0:
          if (!
#line 1616 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3468; /* mve_vqshlq_sv16qi */

        case 1:
          if (!
#line 1616 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3470; /* mve_vqshlq_sv8hi */

        case 2:
          if (!
#line 1616 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3472; /* mve_vqshlq_sv4si */

        default:
          return -1;
        }

    case 512:
      switch (pattern191 (x1))
        {
        case 0:
          if (!
#line 1616 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3469; /* mve_vqshlq_uv16qi */

        case 1:
          if (!
#line 1616 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3471; /* mve_vqshlq_uv8hi */

        case 2:
          if (!
#line 1616 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3473; /* mve_vqshlq_uv4si */

        default:
          return -1;
        }

    case 539:
      return recog_172 (x1, insn, pnum_clobbers);

    case 479:
      switch (pattern192 (x1))
        {
        case 0:
          if (!
#line 1646 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3477; /* mve_vqsubq_n_sv16qi */

        case 1:
          if (!
#line 1646 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3479; /* mve_vqsubq_n_sv8hi */

        case 2:
          if (!
#line 1646 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3481; /* mve_vqsubq_n_sv4si */

        default:
          return -1;
        }

    case 516:
      switch (pattern192 (x1))
        {
        case 0:
          if (!
#line 1646 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3478; /* mve_vqsubq_n_uv16qi */

        case 1:
          if (!
#line 1646 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3480; /* mve_vqsubq_n_uv8hi */

        case 2:
          if (!
#line 1646 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3482; /* mve_vqsubq_n_uv4si */

        default:
          return -1;
        }

    case 515:
      switch (pattern191 (x1))
        {
        case 0:
          if (!
#line 1661 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3483; /* mve_vqsubq_uv16qi */

        case 1:
          if (!
#line 1661 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3485; /* mve_vqsubq_uv8hi */

        case 2:
          if (!
#line 1661 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3487; /* mve_vqsubq_uv4si */

        default:
          return -1;
        }

    case 478:
      switch (pattern191 (x1))
        {
        case 0:
          if (!
#line 1661 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3484; /* mve_vqsubq_sv16qi */

        case 1:
          if (!
#line 1661 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3486; /* mve_vqsubq_sv8hi */

        case 2:
          if (!
#line 1661 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3488; /* mve_vqsubq_sv4si */

        default:
          return -1;
        }

    case 480:
      switch (pattern191 (x1))
        {
        case 0:
          if (!
#line 1676 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3489; /* mve_vrhaddq_sv16qi */

        case 1:
          if (!
#line 1676 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3491; /* mve_vrhaddq_sv8hi */

        case 2:
          if (!
#line 1676 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3493; /* mve_vrhaddq_sv4si */

        default:
          return -1;
        }

    case 517:
      switch (pattern191 (x1))
        {
        case 0:
          if (!
#line 1676 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3490; /* mve_vrhaddq_uv16qi */

        case 1:
          if (!
#line 1676 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3492; /* mve_vrhaddq_uv8hi */

        case 2:
          if (!
#line 1676 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3494; /* mve_vrhaddq_uv4si */

        default:
          return -1;
        }

    case 481:
      switch (pattern191 (x1))
        {
        case 0:
          if (!
#line 1691 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3495; /* mve_vrmulhq_sv16qi */

        case 1:
          if (!
#line 1691 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3497; /* mve_vrmulhq_sv8hi */

        case 2:
          if (!
#line 1691 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3499; /* mve_vrmulhq_sv4si */

        default:
          return -1;
        }

    case 518:
      switch (pattern191 (x1))
        {
        case 0:
          if (!
#line 1691 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3496; /* mve_vrmulhq_uv16qi */

        case 1:
          if (!
#line 1691 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3498; /* mve_vrmulhq_uv8hi */

        case 2:
          if (!
#line 1691 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3500; /* mve_vrmulhq_uv4si */

        default:
          return -1;
        }

    case 520:
      switch (pattern195 (x1))
        {
        case 0:
          if (!
#line 1706 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3501; /* mve_vrshlq_n_uv16qi */

        case 1:
          if (!
#line 1706 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3503; /* mve_vrshlq_n_uv8hi */

        case 2:
          if (!
#line 1706 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3505; /* mve_vrshlq_n_uv4si */

        default:
          return -1;
        }

    case 483:
      switch (pattern195 (x1))
        {
        case 0:
          if (!
#line 1706 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3502; /* mve_vrshlq_n_sv16qi */

        case 1:
          if (!
#line 1706 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3504; /* mve_vrshlq_n_sv8hi */

        case 2:
          if (!
#line 1706 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3506; /* mve_vrshlq_n_sv4si */

        default:
          return -1;
        }

    case 482:
      switch (pattern191 (x1))
        {
        case 0:
          if (!
#line 1721 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3507; /* mve_vrshlq_sv16qi */

        case 1:
          if (!
#line 1721 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3509; /* mve_vrshlq_sv8hi */

        case 2:
          if (!
#line 1721 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3511; /* mve_vrshlq_sv4si */

        default:
          return -1;
        }

    case 519:
      switch (pattern191 (x1))
        {
        case 0:
          if (!
#line 1721 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3508; /* mve_vrshlq_uv16qi */

        case 1:
          if (!
#line 1721 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3510; /* mve_vrshlq_uv8hi */

        case 2:
          if (!
#line 1721 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3512; /* mve_vrshlq_uv4si */

        default:
          return -1;
        }

    case 484:
      switch (pattern188 (x1))
        {
        case 0:
          if (!
#line 1736 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3513; /* mve_vrshrq_n_sv16qi */

        case 1:
          if (!
#line 1736 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3515; /* mve_vrshrq_n_sv8hi */

        case 2:
          if (!
#line 1736 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3517; /* mve_vrshrq_n_sv4si */

        default:
          return -1;
        }

    case 521:
      switch (pattern188 (x1))
        {
        case 0:
          if (!
#line 1736 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3514; /* mve_vrshrq_n_uv16qi */

        case 1:
          if (!
#line 1736 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3516; /* mve_vrshrq_n_uv8hi */

        case 2:
          if (!
#line 1736 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3518; /* mve_vrshrq_n_uv4si */

        default:
          return -1;
        }

    case 522:
      switch (pattern198 (x1))
        {
        case 0:
          if (!
#line 1751 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3519; /* mve_vshlq_n_uv16qi */

        case 1:
          if (!
#line 1751 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3521; /* mve_vshlq_n_uv8hi */

        case 2:
          if (!
#line 1751 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3523; /* mve_vshlq_n_uv4si */

        default:
          return -1;
        }

    case 485:
      switch (pattern198 (x1))
        {
        case 0:
          if (!
#line 1751 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3520; /* mve_vshlq_n_sv16qi */

        case 1:
          if (!
#line 1751 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3522; /* mve_vshlq_n_sv8hi */

        case 2:
          if (!
#line 1751 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3524; /* mve_vshlq_n_sv4si */

        default:
          return -1;
        }

    case 486:
      switch (pattern195 (x1))
        {
        case 0:
          if (!
#line 1766 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3525; /* mve_vshlq_r_sv16qi */

        case 1:
          if (!
#line 1766 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3527; /* mve_vshlq_r_sv8hi */

        case 2:
          if (!
#line 1766 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3529; /* mve_vshlq_r_sv4si */

        default:
          return -1;
        }

    case 523:
      switch (pattern195 (x1))
        {
        case 0:
          if (!
#line 1766 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3526; /* mve_vshlq_r_uv16qi */

        case 1:
          if (!
#line 1766 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3528; /* mve_vshlq_r_uv8hi */

        case 2:
          if (!
#line 1766 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3530; /* mve_vshlq_r_uv4si */

        default:
          return -1;
        }

    case 488:
      switch (pattern192 (x1))
        {
        case 0:
          if (!
#line 1781 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3531; /* mve_vsubq_n_sv16qi */

        case 1:
          if (!
#line 1781 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3533; /* mve_vsubq_n_sv8hi */

        case 2:
          if (!
#line 1781 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3535; /* mve_vsubq_n_sv4si */

        default:
          return -1;
        }

    case 525:
      switch (pattern192 (x1))
        {
        case 0:
          if (!
#line 1781 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3532; /* mve_vsubq_n_uv16qi */

        case 1:
          if (!
#line 1781 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3534; /* mve_vsubq_n_uv8hi */

        case 2:
          if (!
#line 1781 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3536; /* mve_vsubq_n_uv4si */

        default:
          return -1;
        }

    case 487:
      switch (pattern191 (x1))
        {
        case 0:
          if (!
#line 1796 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3537; /* mve_vsubq_sv16qi */

        case 1:
          if (!
#line 1796 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3539; /* mve_vsubq_sv8hi */

        case 2:
          if (!
#line 1796 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3541; /* mve_vsubq_sv4si */

        default:
          return -1;
        }

    case 524:
      switch (pattern191 (x1))
        {
        case 0:
          if (!
#line 1796 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3538; /* mve_vsubq_uv16qi */

        case 1:
          if (!
#line 1796 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3540; /* mve_vsubq_uv8hi */

        case 2:
          if (!
#line 1796 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3542; /* mve_vsubq_uv4si */

        default:
          return -1;
        }

    case 542:
      switch (pattern199 (x1))
        {
        case 0:
          if (!
#line 1822 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3546; /* mve_vabdq_fv8hf */

        case 1:
          if (!
#line 1822 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3547; /* mve_vabdq_fv4sf */

        default:
          return -1;
        }

    case 556:
      if (pattern144 (x1, E_V4SImode, E_DImode) != 0
          || !
#line 1837 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3548; /* mve_vaddlvaq_sv4si */

    case 555:
      if (pattern144 (x1, E_V4SImode, E_DImode) != 0
          || !
#line 1837 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3549; /* mve_vaddlvaq_uv4si */

    case 543:
      switch (pattern183 (x1))
        {
        case 0:
          if (!
#line 1852 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3550; /* mve_vaddq_n_fv8hf */

        case 1:
          if (!
#line 1852 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3551; /* mve_vaddq_n_fv4sf */

        default:
          return -1;
        }

    case 558:
      switch (pattern200 (x1))
        {
        case 0:
          if (!
#line 1895 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3556; /* mve_vbicq_n_sv8hi */

        case 1:
          if (!
#line 1895 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3558; /* mve_vbicq_n_sv4si */

        default:
          return -1;
        }

    case 557:
      switch (pattern200 (x1))
        {
        case 0:
          if (!
#line 1895 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3557; /* mve_vbicq_n_uv8hi */

        case 1:
          if (!
#line 1895 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3559; /* mve_vbicq_n_uv4si */

        default:
          return -1;
        }

    case 376:
      switch (pattern199 (x1))
        {
        case 0:
          if (!
#line 1954 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3588; /* mve_vcmulqv8hf */

        case 1:
          if (!
#line 1954 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3592; /* mve_vcmulqv4sf */

        default:
          return -1;
        }

    case 377:
      switch (pattern199 (x1))
        {
        case 0:
          if (!
#line 1954 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3589; /* mve_vcmulq_rot90v8hf */

        case 1:
          if (!
#line 1954 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3593; /* mve_vcmulq_rot90v4sf */

        default:
          return -1;
        }

    case 378:
      switch (pattern199 (x1))
        {
        case 0:
          if (!
#line 1954 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3590; /* mve_vcmulq_rot180v8hf */

        case 1:
          if (!
#line 1954 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3594; /* mve_vcmulq_rot180v4sf */

        default:
          return -1;
        }

    case 379:
      switch (pattern199 (x1))
        {
        case 0:
          if (!
#line 1954 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3591; /* mve_vcmulq_rot270v8hf */

        case 1:
          if (!
#line 1954 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3595; /* mve_vcmulq_rot270v4sf */

        default:
          return -1;
        }

    case 435:
      return recog_129 (x1, insn, pnum_clobbers);

    case 559:
      if (pattern144 (x1, E_V4SFmode, E_V8HFmode) != 0
          || !
#line 1984 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3600; /* mve_vcvtbq_f16_f32v8hf */

    case 560:
      if (pattern144 (x1, E_V4SFmode, E_V8HFmode) != 0
          || !
#line 1999 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3601; /* mve_vcvttq_f16_f32v8hf */

    case 544:
      switch (pattern199 (x1))
        {
        case 0:
          if (!
#line 2028 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3604; /* mve_vmaxnmaq_fv8hf */

        case 1:
          if (!
#line 2028 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3605; /* mve_vmaxnmaq_fv4sf */

        default:
          return -1;
        }

    case 545:
      switch (pattern201 (x1))
        {
        case 0:
          if (!
#line 2043 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3606; /* mve_vmaxnmavq_fv8hf */

        case 1:
          if (!
#line 2043 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3607; /* mve_vmaxnmavq_fv4sf */

        default:
          return -1;
        }

    case 547:
      switch (pattern201 (x1))
        {
        case 0:
          if (!
#line 2072 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3610; /* mve_vmaxnmvq_fv8hf */

        case 1:
          if (!
#line 2072 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3611; /* mve_vmaxnmvq_fv4sf */

        default:
          return -1;
        }

    case 548:
      switch (pattern199 (x1))
        {
        case 0:
          if (!
#line 2087 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3612; /* mve_vminnmaq_fv8hf */

        case 1:
          if (!
#line 2087 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3613; /* mve_vminnmaq_fv4sf */

        default:
          return -1;
        }

    case 549:
      switch (pattern201 (x1))
        {
        case 0:
          if (!
#line 2102 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3614; /* mve_vminnmavq_fv8hf */

        case 1:
          if (!
#line 2102 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3615; /* mve_vminnmavq_fv4sf */

        default:
          return -1;
        }

    case 551:
      switch (pattern201 (x1))
        {
        case 0:
          if (!
#line 2131 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3618; /* mve_vminnmvq_fv8hf */

        case 1:
          if (!
#line 2131 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3619; /* mve_vminnmvq_fv4sf */

        default:
          return -1;
        }

    case 561:
      switch (pattern202 (x1))
        {
        case 0:
          if (!
#line 2146 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3620; /* mve_vmlaldavq_uv8hi */

        case 1:
          if (!
#line 2146 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3622; /* mve_vmlaldavq_uv4si */

        default:
          return -1;
        }

    case 564:
      switch (pattern202 (x1))
        {
        case 0:
          if (!
#line 2146 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3621; /* mve_vmlaldavq_sv8hi */

        case 1:
          if (!
#line 2146 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3623; /* mve_vmlaldavq_sv4si */

        default:
          return -1;
        }

    case 563:
      switch (pattern202 (x1))
        {
        case 0:
          if (!
#line 2161 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3624; /* mve_vmlaldavxq_sv8hi */

        case 1:
          if (!
#line 2161 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3625; /* mve_vmlaldavxq_sv4si */

        default:
          return -1;
        }

    case 565:
      switch (pattern202 (x1))
        {
        case 0:
          if (!
#line 2176 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3626; /* mve_vmlsldavq_sv8hi */

        case 1:
          if (!
#line 2176 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3627; /* mve_vmlsldavq_sv4si */

        default:
          return -1;
        }

    case 566:
      switch (pattern202 (x1))
        {
        case 0:
          if (!
#line 2191 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3628; /* mve_vmlsldavxq_sv8hi */

        case 1:
          if (!
#line 2191 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3629; /* mve_vmlsldavxq_sv4si */

        default:
          return -1;
        }

    case 567:
      switch (pattern203 (x1))
        {
        case 0:
          if (!
#line 2206 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3630; /* mve_vmovnbq_uv8hi */

        case 1:
          if (!
#line 2206 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3632; /* mve_vmovnbq_uv4si */

        default:
          return -1;
        }

    case 568:
      switch (pattern203 (x1))
        {
        case 0:
          if (!
#line 2206 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3631; /* mve_vmovnbq_sv8hi */

        case 1:
          if (!
#line 2206 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3633; /* mve_vmovnbq_sv4si */

        default:
          return -1;
        }

    case 570:
      switch (pattern203 (x1))
        {
        case 0:
          if (!
#line 2221 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3634; /* mve_vmovntq_sv8hi */

        case 1:
          if (!
#line 2221 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3636; /* mve_vmovntq_sv4si */

        default:
          return -1;
        }

    case 569:
      switch (pattern203 (x1))
        {
        case 0:
          if (!
#line 2221 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3635; /* mve_vmovntq_uv8hi */

        case 1:
          if (!
#line 2221 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3637; /* mve_vmovntq_uv4si */

        default:
          return -1;
        }

    case 553:
      switch (pattern183 (x1))
        {
        case 0:
          if (!
#line 2250 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3640; /* mve_vmulq_n_fv8hf */

        case 1:
          if (!
#line 2250 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3641; /* mve_vmulq_n_fv4sf */

        default:
          return -1;
        }

    case 572:
      switch (pattern200 (x1))
        {
        case 0:
          if (!
#line 2293 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3646; /* mve_vorrq_n_uv8hi */

        case 1:
          if (!
#line 2293 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3648; /* mve_vorrq_n_uv4si */

        default:
          return -1;
        }

    case 571:
      switch (pattern200 (x1))
        {
        case 0:
          if (!
#line 2293 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3647; /* mve_vorrq_n_sv8hi */

        case 1:
          if (!
#line 2293 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3649; /* mve_vorrq_n_sv4si */

        default:
          return -1;
        }

    case 573:
      switch (pattern205 (x1))
        {
        case 0:
          if (!
#line 2308 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3650; /* mve_vqdmullbq_n_sv8hi */

        case 1:
          if (!
#line 2308 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3651; /* mve_vqdmullbq_n_sv4si */

        default:
          return -1;
        }

    case 574:
      switch (pattern162 (x1, E_V8HImode, E_V4SImode))
        {
        case 0:
          if (!
#line 2323 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3652; /* mve_vqdmullbq_sv8hi */

        case 1:
          if (!
#line 2323 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3653; /* mve_vqdmullbq_sv4si */

        default:
          return -1;
        }

    case 575:
      switch (pattern205 (x1))
        {
        case 0:
          if (!
#line 2338 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3654; /* mve_vqdmulltq_n_sv8hi */

        case 1:
          if (!
#line 2338 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3655; /* mve_vqdmulltq_n_sv4si */

        default:
          return -1;
        }

    case 576:
      switch (pattern162 (x1, E_V8HImode, E_V4SImode))
        {
        case 0:
          if (!
#line 2353 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3656; /* mve_vqdmulltq_sv8hi */

        case 1:
          if (!
#line 2353 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3657; /* mve_vqdmulltq_sv4si */

        default:
          return -1;
        }

    case 577:
      switch (pattern203 (x1))
        {
        case 0:
          if (!
#line 2368 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3658; /* mve_vqmovnbq_uv8hi */

        case 1:
          if (!
#line 2368 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3660; /* mve_vqmovnbq_uv4si */

        default:
          return -1;
        }

    case 578:
      switch (pattern203 (x1))
        {
        case 0:
          if (!
#line 2368 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3659; /* mve_vqmovnbq_sv8hi */

        case 1:
          if (!
#line 2368 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3661; /* mve_vqmovnbq_sv4si */

        default:
          return -1;
        }

    case 588:
      switch (pattern203 (x1))
        {
        case 0:
          if (!
#line 2383 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3662; /* mve_vqmovntq_uv8hi */

        case 1:
          if (!
#line 2383 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3664; /* mve_vqmovntq_uv4si */

        default:
          return -1;
        }

    case 589:
      switch (pattern203 (x1))
        {
        case 0:
          if (!
#line 2383 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3663; /* mve_vqmovntq_sv8hi */

        case 1:
          if (!
#line 2383 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3665; /* mve_vqmovntq_sv4si */

        default:
          return -1;
        }

    case 579:
      switch (pattern203 (x1))
        {
        case 0:
          if (!
#line 2398 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3666; /* mve_vqmovunbq_sv8hi */

        case 1:
          if (!
#line 2398 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3667; /* mve_vqmovunbq_sv4si */

        default:
          return -1;
        }

    case 580:
      switch (pattern203 (x1))
        {
        case 0:
          if (!
#line 2413 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3668; /* mve_vqmovuntq_sv8hi */

        case 1:
          if (!
#line 2413 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3669; /* mve_vqmovuntq_sv4si */

        default:
          return -1;
        }

    case 581:
      if (pattern175 (x1, E_V4SImode, E_DImode) != 0
          || !
#line 2428 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3670; /* mve_vrmlaldavhxq_sv4si */

    case 582:
      if (pattern175 (x1, E_V4SImode, E_DImode) != 0
          || !
#line 2443 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3671; /* mve_vrmlsldavhq_sv4si */

    case 583:
      if (pattern175 (x1, E_V4SImode, E_DImode) != 0
          || !
#line 2458 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3672; /* mve_vrmlsldavhxq_sv4si */

    case 590:
      switch (pattern206 (x1))
        {
        case 0:
          if (!
#line 2473 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3673; /* mve_vshllbq_n_sv16qi */

        case 1:
          if (!
#line 2473 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3675; /* mve_vshllbq_n_sv8hi */

        default:
          return -1;
        }

    case 591:
      switch (pattern206 (x1))
        {
        case 0:
          if (!
#line 2473 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3674; /* mve_vshllbq_n_uv16qi */

        case 1:
          if (!
#line 2473 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3676; /* mve_vshllbq_n_uv8hi */

        default:
          return -1;
        }

    case 592:
      switch (pattern206 (x1))
        {
        case 0:
          if (!
#line 2488 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3677; /* mve_vshlltq_n_uv16qi */

        case 1:
          if (!
#line 2488 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3679; /* mve_vshlltq_n_uv8hi */

        default:
          return -1;
        }

    case 593:
      switch (pattern206 (x1))
        {
        case 0:
          if (!
#line 2488 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3678; /* mve_vshlltq_n_sv16qi */

        case 1:
          if (!
#line 2488 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3680; /* mve_vshlltq_n_sv8hi */

        default:
          return -1;
        }

    case 596:
      switch (pattern207 (x1))
        {
        case 0:
          if (!
#line 2517 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3683; /* mve_vmulltq_poly_pv16qi */

        case 1:
          if (!
#line 2517 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3684; /* mve_vmulltq_poly_pv8hi */

        default:
          return -1;
        }

    case 597:
      switch (pattern207 (x1))
        {
        case 0:
          if (!
#line 2532 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3685; /* mve_vmullbq_poly_pv16qi */

        case 1:
          if (!
#line 2532 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3686; /* mve_vmullbq_poly_pv8hi */

        default:
          return -1;
        }

    case 594:
      if (pattern175 (x1, E_V4SImode, E_DImode) != 0
          || !
#line 2547 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3687; /* mve_vrmlaldavhq_uv4si */

    case 595:
      if (pattern175 (x1, E_V4SImode, E_DImode) != 0
          || !
#line 2547 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3688; /* mve_vrmlaldavhq_sv4si */

    case 998:
      switch (pattern210 (x1))
        {
        case 0:
          if (!
#line 7168 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4656; /* mve_vldrbq_gather_offset_sv16qi */

        case 1:
          if (!
#line 7168 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4658; /* mve_vldrbq_gather_offset_sv8hi */

        case 2:
          if (!
#line 7168 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4660; /* mve_vldrbq_gather_offset_sv4si */

        default:
          return -1;
        }

    case 999:
      switch (pattern210 (x1))
        {
        case 0:
          if (!
#line 7168 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4657; /* mve_vldrbq_gather_offset_uv16qi */

        case 1:
          if (!
#line 7168 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4659; /* mve_vldrbq_gather_offset_uv8hi */

        case 2:
          if (!
#line 7168 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4661; /* mve_vldrbq_gather_offset_uv4si */

        default:
          return -1;
        }

    case 1002:
      if (pattern211 (x1, E_V4SImode) != 0
          || !
#line 7213 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4668; /* mve_vldrwq_gather_base_sv4si */

    case 1003:
      if (pattern211 (x1, E_V4SImode) != 0
          || !
#line 7213 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4669; /* mve_vldrwq_gather_base_uv4si */

    case 1000:
      switch (pattern214 (x1))
        {
        case 0:
          if (!
#line 7331 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4690; /* mve_vldrbq_z_sv16qi */

        case 1:
          if (!
#line 7331 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4692; /* mve_vldrbq_z_sv8hi */

        case 2:
          if (!
#line 7331 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4694; /* mve_vldrbq_z_sv4si */

        default:
          return -1;
        }

    case 1001:
      switch (pattern214 (x1))
        {
        case 0:
          if (!
#line 7331 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4691; /* mve_vldrbq_z_uv16qi */

        case 1:
          if (!
#line 7331 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4693; /* mve_vldrbq_z_uv8hi */

        case 2:
          if (!
#line 7331 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4695; /* mve_vldrbq_z_uv4si */

        default:
          return -1;
        }

    case 1008:
      switch (pattern215 (x1))
        {
        case 0:
          if (!
#line 7394 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4699; /* mve_vldrhq_gather_offset_sv8hi */

        case 1:
          if (!
#line 7394 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4701; /* mve_vldrhq_gather_offset_sv4si */

        default:
          return -1;
        }

    case 1009:
      switch (pattern215 (x1))
        {
        case 0:
          if (!
#line 7394 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4700; /* mve_vldrhq_gather_offset_uv8hi */

        case 1:
          if (!
#line 7394 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4702; /* mve_vldrhq_gather_offset_uv4si */

        default:
          return -1;
        }

    case 1010:
      switch (pattern215 (x1))
        {
        case 0:
          if (!
#line 7442 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4707; /* mve_vldrhq_gather_shifted_offset_sv8hi */

        case 1:
          if (!
#line 7442 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4709; /* mve_vldrhq_gather_shifted_offset_sv4si */

        default:
          return -1;
        }

    case 1011:
      switch (pattern215 (x1))
        {
        case 0:
          if (!
#line 7442 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4708; /* mve_vldrhq_gather_shifted_offset_uv8hi */

        case 1:
          if (!
#line 7442 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4710; /* mve_vldrhq_gather_shifted_offset_uv4si */

        default:
          return -1;
        }

    case 1007:
      return recog_201 (x1, insn, pnum_clobbers);

    case 1012:
      switch (pattern216 (x1))
        {
        case 0:
          if (!
#line 7532 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4720; /* mve_vldrhq_z_sv8hi */

        case 1:
          if (!
#line 7532 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4722; /* mve_vldrhq_z_sv4si */

        default:
          return -1;
        }

    case 1013:
      switch (pattern216 (x1))
        {
        case 0:
          if (!
#line 7532 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4721; /* mve_vldrhq_z_uv8hi */

        case 1:
          if (!
#line 7532 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4723; /* mve_vldrhq_z_uv4si */

        default:
          return -1;
        }

    case 1014:
      if (pattern217 (x1, E_V4SFmode) != 0
          || !
#line 7593 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4727; /* mve_vldrwq_z_fv4sf */

    case 1015:
      if (pattern217 (x1, E_V4SImode) != 0
          || !
#line 7613 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4728; /* mve_vldrwq_z_sv4si */

    case 1016:
      if (pattern217 (x1, E_V4SImode) != 0
          || !
#line 7613 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4729; /* mve_vldrwq_z_uv4si */

    case 1017:
      if (pattern218 (x1) != 0
          || !
#line 7653 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4730; /* mve_vldrdq_gather_base_sv2di */

    case 1018:
      if (pattern218 (x1) != 0
          || !
#line 7653 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4731; /* mve_vldrdq_gather_base_uv2di */

    case 1019:
      if (pattern219 (x1) != 0
          || !
#line 7694 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4734; /* mve_vldrdq_gather_offset_sv2di */

    case 1020:
      if (pattern219 (x1) != 0
          || !
#line 7694 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4735; /* mve_vldrdq_gather_offset_uv2di */

    case 1021:
      if (pattern219 (x1) != 0
          || !
#line 7735 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4738; /* mve_vldrdq_gather_shifted_offset_sv2di */

    case 1022:
      if (pattern219 (x1) != 0
          || !
#line 7735 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4739; /* mve_vldrdq_gather_shifted_offset_uv2di */

    case 1023:
      if (pattern220 (x1) != 0
          || !
#line 7776 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4742; /* mve_vldrhq_gather_offset_fv8hf */

    case 1024:
      if (pattern220 (x1) != 0
          || !
#line 7818 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4744; /* mve_vldrhq_gather_shifted_offset_fv8hf */

    case 1025:
      if (pattern211 (x1, E_V4SFmode) != 0
          || !
#line 7860 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4746; /* mve_vldrwq_gather_base_fv4sf */

    case 1026:
      if (pattern221 (x1, E_V4SFmode) != 0
          || !
#line 7901 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4748; /* mve_vldrwq_gather_offset_fv4sf */

    case 1027:
      if (pattern221 (x1, E_V4SImode) != 0
          || !
#line 7921 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4749; /* mve_vldrwq_gather_offset_sv4si */

    case 1028:
      if (pattern221 (x1, E_V4SImode) != 0
          || !
#line 7921 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4750; /* mve_vldrwq_gather_offset_uv4si */

    case 1029:
      if (pattern221 (x1, E_V4SFmode) != 0
          || !
#line 7985 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4754; /* mve_vldrwq_gather_shifted_offset_fv4sf */

    case 1030:
      if (pattern221 (x1, E_V4SImode) != 0
          || !
#line 8005 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4755; /* mve_vldrwq_gather_shifted_offset_sv4si */

    case 1031:
      if (pattern221 (x1, E_V4SImode) != 0
          || !
#line 8005 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4756; /* mve_vldrwq_gather_shifted_offset_uv4si */

    case 1092:
      return recog_198 (x1, insn, pnum_clobbers);

    case 1090:
      return recog_197 (x1, insn, pnum_clobbers);

    case 1091:
      return recog_196 (x1, insn, pnum_clobbers);

    case 1105:
      if (pattern223 (x1) != 0
          || !
#line 10181 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4922; /* mve_uqrshll_sat64_di */

    case 1106:
      if (pattern223 (x1) != 0
          || !
#line 10181 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4923; /* mve_uqrshll_sat48_di */

    case 1107:
      if (pattern223 (x1) != 0
          || !
#line 10193 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4924; /* mve_sqrshrl_sat64_di */

    case 1108:
      if (pattern223 (x1) != 0
          || !
#line 10193 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4925; /* mve_sqrshrl_sat48_di */

    case 1104:
      if (pattern224 (x1) != 0
          || !
#line 10205 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4926; /* mve_uqrshl_si */

    case 1103:
      if (pattern224 (x1) != 0
          || !
#line 10217 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4927; /* mve_sqrshr_si */

    case 1102:
      if (pattern225 (x1) != 0
          || !
#line 10240 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4929; /* mve_urshrl_di */

    case 1101:
      if (pattern226 (x1, E_SImode) != 0
          || !
#line 10263 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4931; /* mve_urshr_si */

    case 1100:
      if (pattern226 (x1, E_DImode) != 0
          || !
#line 10286 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4933; /* mve_srshr_si */

    case 1099:
      if (pattern225 (x1) != 0
          || !
#line 10298 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4934; /* mve_srshrl_di */

    default:
      return -1;
    }
}

static int
recog_236 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (XINT (x2, 1))
    {
    case 103:
      return recog_231 (x1, insn, pnum_clobbers);

    case 102:
      return recog_229 (x1, insn, pnum_clobbers);

    case 105:
      return recog_226 (x1, insn, pnum_clobbers);

    case 104:
      return recog_225 (x1, insn, pnum_clobbers);

    case 353:
      return recog_233 (x1, insn, pnum_clobbers);

    case 354:
      return recog_232 (x1, insn, pnum_clobbers);

    case 220:
      return recog_228 (x1, insn, pnum_clobbers);

    case 223:
      switch (pattern230 (x1))
        {
        case 0:
          if (!
#line 4014 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2199; /* neon_vmlals_lanev4hi */

        case 1:
          if (!
#line 4014 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2201; /* neon_vmlals_lanev2si */

        default:
          return -1;
        }

    case 224:
      switch (pattern230 (x1))
        {
        case 0:
          if (!
#line 4014 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2200; /* neon_vmlalu_lanev4hi */

        case 1:
          if (!
#line 4014 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2202; /* neon_vmlalu_lanev2si */

        default:
          return -1;
        }

    case 261:
      switch (pattern230 (x1))
        {
        case 0:
          if (!
#line 4029 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2203; /* neon_vqdmlal_lanev4hi */

        case 1:
          if (!
#line 4029 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2204; /* neon_vqdmlal_lanev2si */

        default:
          return -1;
        }

    case 226:
      return recog_227 (x1, insn, pnum_clobbers);

    case 229:
      switch (pattern230 (x1))
        {
        case 0:
          if (!
#line 4080 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2211; /* neon_vmlsls_lanev4hi */

        case 1:
          if (!
#line 4080 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2213; /* neon_vmlsls_lanev2si */

        default:
          return -1;
        }

    case 230:
      switch (pattern230 (x1))
        {
        case 0:
          if (!
#line 4080 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2212; /* neon_vmlslu_lanev4hi */

        case 1:
          if (!
#line 4080 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2214; /* neon_vmlslu_lanev2si */

        default:
          return -1;
        }

    case 263:
      switch (pattern230 (x1))
        {
        case 0:
          if (!
#line 4095 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2215; /* neon_vqdmlsl_lanev4hi */

        case 1:
          if (!
#line 4095 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2216; /* neon_vqdmlsl_lanev2si */

        default:
          return -1;
        }

    case 202:
      return recog_223 (x1, insn, pnum_clobbers);

    case 207:
      return recog_224 (x1, insn, pnum_clobbers);

    case 212:
      return recog_222 (x1, insn, pnum_clobbers);

    case 800:
      switch (pattern233 (x1))
        {
        case 0:
          if (!
#line 4898 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4162; /* mve_vcvtq_m_n_from_f_sv8hi */

        case 1:
          if (!
#line 4898 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4164; /* mve_vcvtq_m_n_from_f_sv4si */

        default:
          return -1;
        }

    case 809:
      switch (pattern233 (x1))
        {
        case 0:
          if (!
#line 4898 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4163; /* mve_vcvtq_m_n_from_f_uv8hi */

        case 1:
          if (!
#line 4898 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4165; /* mve_vcvtq_m_n_from_f_uv4si */

        default:
          return -1;
        }

    case 811:
      switch (pattern234 (x1))
        {
        case 0:
          if (!
#line 4979 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4175; /* mve_vabavq_p_sv16qi */

        case 1:
          if (!
#line 4979 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4177; /* mve_vabavq_p_sv8hi */

        case 2:
          if (!
#line 4979 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4179; /* mve_vabavq_p_sv4si */

        default:
          return -1;
        }

    case 812:
      switch (pattern234 (x1))
        {
        case 0:
          if (!
#line 4979 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4176; /* mve_vabavq_p_uv16qi */

        case 1:
          if (!
#line 4979 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4178; /* mve_vabavq_p_uv8hi */

        case 2:
          if (!
#line 4979 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4180; /* mve_vabavq_p_uv4si */

        default:
          return -1;
        }

    case 810:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 4996 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4181; /* mve_vqshluq_m_n_sv16qi */

        case 1:
          if (!
#line 4996 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4182; /* mve_vqshluq_m_n_sv8hi */

        case 2:
          if (!
#line 4996 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4183; /* mve_vqshluq_m_n_sv4si */

        default:
          return -1;
        }

    case 813:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5013 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4184; /* mve_vshlq_m_sv16qi */

        case 1:
          if (!
#line 5013 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4186; /* mve_vshlq_m_sv8hi */

        case 2:
          if (!
#line 5013 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4188; /* mve_vshlq_m_sv4si */

        default:
          return -1;
        }

    case 814:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5013 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4185; /* mve_vshlq_m_uv16qi */

        case 1:
          if (!
#line 5013 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4187; /* mve_vshlq_m_uv8hi */

        case 2:
          if (!
#line 5013 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4189; /* mve_vshlq_m_uv4si */

        default:
          return -1;
        }

    case 815:
      switch (pattern240 (x1))
        {
        case 0:
          if (!
#line 5030 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4190; /* mve_vsriq_m_n_sv16qi */

        case 1:
          if (!
#line 5030 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4192; /* mve_vsriq_m_n_sv8hi */

        case 2:
          if (!
#line 5030 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4194; /* mve_vsriq_m_n_sv4si */

        default:
          return -1;
        }

    case 816:
      switch (pattern240 (x1))
        {
        case 0:
          if (!
#line 5030 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4191; /* mve_vsriq_m_n_uv16qi */

        case 1:
          if (!
#line 5030 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4193; /* mve_vsriq_m_n_uv8hi */

        case 2:
          if (!
#line 5030 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4195; /* mve_vsriq_m_n_uv4si */

        default:
          return -1;
        }

    case 817:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5047 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4196; /* mve_vsubq_m_uv16qi */

        case 1:
          if (!
#line 5047 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4198; /* mve_vsubq_m_uv8hi */

        case 2:
          if (!
#line 5047 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4200; /* mve_vsubq_m_uv4si */

        default:
          return -1;
        }

    case 818:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5047 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4197; /* mve_vsubq_m_sv16qi */

        case 1:
          if (!
#line 5047 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4199; /* mve_vsubq_m_sv8hi */

        case 2:
          if (!
#line 5047 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4201; /* mve_vsubq_m_sv4si */

        default:
          return -1;
        }

    case 819:
      switch (pattern241 (x1))
        {
        case 0:
          if (!
#line 5064 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4202; /* mve_vcvtq_m_n_to_f_uv8hf */

        case 1:
          if (!
#line 5064 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4204; /* mve_vcvtq_m_n_to_f_uv4sf */

        default:
          return -1;
        }

    case 820:
      switch (pattern241 (x1))
        {
        case 0:
          if (!
#line 5064 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4203; /* mve_vcvtq_m_n_to_f_sv8hf */

        case 1:
          if (!
#line 5064 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4205; /* mve_vcvtq_m_n_to_f_sv4sf */

        default:
          return -1;
        }

    case 540:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5080 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4206; /* mve_vabdq_m_sv16qi */

        case 1:
          if (!
#line 5080 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4208; /* mve_vabdq_m_sv8hi */

        case 2:
          if (!
#line 5080 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4210; /* mve_vabdq_m_sv4si */

        default:
          return -1;
        }

    case 541:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5080 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4207; /* mve_vabdq_m_uv16qi */

        case 1:
          if (!
#line 5080 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4209; /* mve_vabdq_m_uv8hi */

        case 2:
          if (!
#line 5080 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4211; /* mve_vabdq_m_uv4si */

        default:
          return -1;
        }

    case 865:
      switch (pattern243 (x1))
        {
        case 0:
          if (!
#line 5097 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4212; /* mve_vaddq_m_n_sv16qi */

        case 1:
          if (!
#line 5097 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4214; /* mve_vaddq_m_n_sv8hi */

        case 2:
          if (!
#line 5097 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4216; /* mve_vaddq_m_n_sv4si */

        default:
          return -1;
        }

    case 866:
      switch (pattern243 (x1))
        {
        case 0:
          if (!
#line 5097 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4213; /* mve_vaddq_m_n_uv16qi */

        case 1:
          if (!
#line 5097 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4215; /* mve_vaddq_m_n_uv8hi */

        case 2:
          if (!
#line 5097 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4217; /* mve_vaddq_m_n_uv4si */

        default:
          return -1;
        }

    case 889:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5114 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4218; /* mve_vaddq_m_uv16qi */

        case 1:
          if (!
#line 5114 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4220; /* mve_vaddq_m_uv8hi */

        case 2:
          if (!
#line 5114 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4222; /* mve_vaddq_m_uv4si */

        default:
          return -1;
        }

    case 911:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5114 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4219; /* mve_vaddq_m_sv16qi */

        case 1:
          if (!
#line 5114 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4221; /* mve_vaddq_m_sv8hi */

        case 2:
          if (!
#line 5114 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4223; /* mve_vaddq_m_sv4si */

        default:
          return -1;
        }

    case 879:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5131 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4224; /* mve_vandq_m_uv16qi */

        case 1:
          if (!
#line 5131 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4226; /* mve_vandq_m_uv8hi */

        case 2:
          if (!
#line 5131 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4228; /* mve_vandq_m_uv4si */

        default:
          return -1;
        }

    case 880:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5131 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4225; /* mve_vandq_m_sv16qi */

        case 1:
          if (!
#line 5131 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4227; /* mve_vandq_m_sv8hi */

        case 2:
          if (!
#line 5131 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4229; /* mve_vandq_m_sv4si */

        default:
          return -1;
        }

    case 830:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5148 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4230; /* mve_vbicq_m_uv16qi */

        case 1:
          if (!
#line 5148 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4232; /* mve_vbicq_m_uv8hi */

        case 2:
          if (!
#line 5148 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4234; /* mve_vbicq_m_uv4si */

        default:
          return -1;
        }

    case 831:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5148 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4231; /* mve_vbicq_m_sv16qi */

        case 1:
          if (!
#line 5148 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4233; /* mve_vbicq_m_sv8hi */

        case 2:
          if (!
#line 5148 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4235; /* mve_vbicq_m_sv4si */

        default:
          return -1;
        }

    case 894:
      switch (pattern246 (x1))
        {
        case 0:
          if (!
#line 5165 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4236; /* mve_vbrsrq_m_n_uv16qi */

        case 1:
          if (!
#line 5165 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4238; /* mve_vbrsrq_m_n_uv8hi */

        case 2:
          if (!
#line 5165 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4240; /* mve_vbrsrq_m_n_uv4si */

        default:
          return -1;
        }

    case 826:
      switch (pattern246 (x1))
        {
        case 0:
          if (!
#line 5165 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4237; /* mve_vbrsrq_m_n_sv16qi */

        case 1:
          if (!
#line 5165 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4239; /* mve_vbrsrq_m_n_sv8hi */

        case 2:
          if (!
#line 5165 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4241; /* mve_vbrsrq_m_n_sv4si */

        default:
          return -1;
        }

    case 850:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5182 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4242; /* mve_vcaddq_rot270_m_uv16qi */

        case 1:
          if (!
#line 5182 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4244; /* mve_vcaddq_rot270_m_uv8hi */

        case 2:
          if (!
#line 5182 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4246; /* mve_vcaddq_rot270_m_uv4si */

        default:
          return -1;
        }

    case 851:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5182 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4243; /* mve_vcaddq_rot270_m_sv16qi */

        case 1:
          if (!
#line 5182 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4245; /* mve_vcaddq_rot270_m_sv8hi */

        case 2:
          if (!
#line 5182 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4247; /* mve_vcaddq_rot270_m_sv4si */

        default:
          return -1;
        }

    case 905:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5199 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4248; /* mve_vcaddq_rot90_m_uv16qi */

        case 1:
          if (!
#line 5199 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4250; /* mve_vcaddq_rot90_m_uv8hi */

        case 2:
          if (!
#line 5199 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4252; /* mve_vcaddq_rot90_m_uv4si */

        default:
          return -1;
        }

    case 906:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5199 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4249; /* mve_vcaddq_rot90_m_sv16qi */

        case 1:
          if (!
#line 5199 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4251; /* mve_vcaddq_rot90_m_sv8hi */

        case 2:
          if (!
#line 5199 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4253; /* mve_vcaddq_rot90_m_sv4si */

        default:
          return -1;
        }

    case 915:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5216 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4254; /* mve_veorq_m_sv16qi */

        case 1:
          if (!
#line 5216 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4256; /* mve_veorq_m_sv8hi */

        case 2:
          if (!
#line 5216 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4258; /* mve_veorq_m_sv4si */

        default:
          return -1;
        }

    case 916:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5216 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4255; /* mve_veorq_m_uv16qi */

        case 1:
          if (!
#line 5216 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4257; /* mve_veorq_m_uv8hi */

        case 2:
          if (!
#line 5216 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4259; /* mve_veorq_m_uv4si */

        default:
          return -1;
        }

    case 912:
      switch (pattern243 (x1))
        {
        case 0:
          if (!
#line 5233 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4260; /* mve_vhaddq_m_n_sv16qi */

        case 1:
          if (!
#line 5233 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4262; /* mve_vhaddq_m_n_sv8hi */

        case 2:
          if (!
#line 5233 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4264; /* mve_vhaddq_m_n_sv4si */

        default:
          return -1;
        }

    case 919:
      switch (pattern243 (x1))
        {
        case 0:
          if (!
#line 5233 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4261; /* mve_vhaddq_m_n_uv16qi */

        case 1:
          if (!
#line 5233 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4263; /* mve_vhaddq_m_n_uv8hi */

        case 2:
          if (!
#line 5233 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4265; /* mve_vhaddq_m_n_uv4si */

        default:
          return -1;
        }

    case 833:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5250 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4266; /* mve_vhaddq_m_sv16qi */

        case 1:
          if (!
#line 5250 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4268; /* mve_vhaddq_m_sv8hi */

        case 2:
          if (!
#line 5250 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4270; /* mve_vhaddq_m_sv4si */

        default:
          return -1;
        }

    case 829:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5250 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4267; /* mve_vhaddq_m_uv16qi */

        case 1:
          if (!
#line 5250 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4269; /* mve_vhaddq_m_uv8hi */

        case 2:
          if (!
#line 5250 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4271; /* mve_vhaddq_m_uv4si */

        default:
          return -1;
        }

    case 881:
      switch (pattern243 (x1))
        {
        case 0:
          if (!
#line 5267 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4272; /* mve_vhsubq_m_n_sv16qi */

        case 1:
          if (!
#line 5267 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4274; /* mve_vhsubq_m_n_sv8hi */

        case 2:
          if (!
#line 5267 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4276; /* mve_vhsubq_m_n_sv4si */

        default:
          return -1;
        }

    case 882:
      switch (pattern243 (x1))
        {
        case 0:
          if (!
#line 5267 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4273; /* mve_vhsubq_m_n_uv16qi */

        case 1:
          if (!
#line 5267 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4275; /* mve_vhsubq_m_n_uv8hi */

        case 2:
          if (!
#line 5267 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4277; /* mve_vhsubq_m_n_uv4si */

        default:
          return -1;
        }

    case 917:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5284 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4278; /* mve_vhsubq_m_sv16qi */

        case 1:
          if (!
#line 5284 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4280; /* mve_vhsubq_m_sv8hi */

        case 2:
          if (!
#line 5284 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4282; /* mve_vhsubq_m_sv4si */

        default:
          return -1;
        }

    case 918:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5284 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4279; /* mve_vhsubq_m_uv16qi */

        case 1:
          if (!
#line 5284 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4281; /* mve_vhsubq_m_uv8hi */

        case 2:
          if (!
#line 5284 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4283; /* mve_vhsubq_m_uv4si */

        default:
          return -1;
        }

    case 868:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5301 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4284; /* mve_vmaxq_m_sv16qi */

        case 1:
          if (!
#line 5301 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4286; /* mve_vmaxq_m_sv8hi */

        case 2:
          if (!
#line 5301 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4288; /* mve_vmaxq_m_sv4si */

        default:
          return -1;
        }

    case 847:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5301 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4285; /* mve_vmaxq_m_uv16qi */

        case 1:
          if (!
#line 5301 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4287; /* mve_vmaxq_m_uv8hi */

        case 2:
          if (!
#line 5301 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4289; /* mve_vmaxq_m_uv4si */

        default:
          return -1;
        }

    case 876:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5318 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4290; /* mve_vminq_m_sv16qi */

        case 1:
          if (!
#line 5318 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4292; /* mve_vminq_m_sv8hi */

        case 2:
          if (!
#line 5318 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4294; /* mve_vminq_m_sv4si */

        default:
          return -1;
        }

    case 877:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5318 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4291; /* mve_vminq_m_uv16qi */

        case 1:
          if (!
#line 5318 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4293; /* mve_vminq_m_uv8hi */

        case 2:
          if (!
#line 5318 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4295; /* mve_vminq_m_uv4si */

        default:
          return -1;
        }

    case 900:
      switch (pattern234 (x1))
        {
        case 0:
          if (!
#line 5335 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4296; /* mve_vmladavaq_p_uv16qi */

        case 1:
          if (!
#line 5335 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4298; /* mve_vmladavaq_p_uv8hi */

        case 2:
          if (!
#line 5335 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4300; /* mve_vmladavaq_p_uv4si */

        default:
          return -1;
        }

    case 901:
      switch (pattern234 (x1))
        {
        case 0:
          if (!
#line 5335 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4297; /* mve_vmladavaq_p_sv16qi */

        case 1:
          if (!
#line 5335 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4299; /* mve_vmladavaq_p_sv8hi */

        case 2:
          if (!
#line 5335 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4301; /* mve_vmladavaq_p_sv4si */

        default:
          return -1;
        }

    case 835:
      switch (pattern243 (x1))
        {
        case 0:
          if (!
#line 5352 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4302; /* mve_vmlaq_m_n_sv16qi */

        case 1:
          if (!
#line 5352 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4304; /* mve_vmlaq_m_n_sv8hi */

        case 2:
          if (!
#line 5352 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4306; /* mve_vmlaq_m_n_sv4si */

        default:
          return -1;
        }

    case 838:
      switch (pattern243 (x1))
        {
        case 0:
          if (!
#line 5352 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4303; /* mve_vmlaq_m_n_uv16qi */

        case 1:
          if (!
#line 5352 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4305; /* mve_vmlaq_m_n_uv8hi */

        case 2:
          if (!
#line 5352 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4307; /* mve_vmlaq_m_n_uv4si */

        default:
          return -1;
        }

    case 845:
      switch (pattern243 (x1))
        {
        case 0:
          if (!
#line 5369 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4308; /* mve_vmlasq_m_n_uv16qi */

        case 1:
          if (!
#line 5369 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4310; /* mve_vmlasq_m_n_uv8hi */

        case 2:
          if (!
#line 5369 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4312; /* mve_vmlasq_m_n_uv4si */

        default:
          return -1;
        }

    case 846:
      switch (pattern243 (x1))
        {
        case 0:
          if (!
#line 5369 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4309; /* mve_vmlasq_m_n_sv16qi */

        case 1:
          if (!
#line 5369 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4311; /* mve_vmlasq_m_n_sv8hi */

        case 2:
          if (!
#line 5369 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4313; /* mve_vmlasq_m_n_sv4si */

        default:
          return -1;
        }

    case 883:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5386 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4314; /* mve_vmulhq_m_sv16qi */

        case 1:
          if (!
#line 5386 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4316; /* mve_vmulhq_m_sv8hi */

        case 2:
          if (!
#line 5386 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4318; /* mve_vmulhq_m_sv4si */

        default:
          return -1;
        }

    case 884:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5386 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4315; /* mve_vmulhq_m_uv16qi */

        case 1:
          if (!
#line 5386 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4317; /* mve_vmulhq_m_uv8hi */

        case 2:
          if (!
#line 5386 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4319; /* mve_vmulhq_m_uv4si */

        default:
          return -1;
        }

    case 885:
      switch (pattern248 (x1))
        {
        case 0:
          if (!
#line 5403 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4320; /* mve_vmullbq_int_m_uv16qi */

        case 1:
          if (!
#line 5403 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4322; /* mve_vmullbq_int_m_uv8hi */

        case 2:
          if (!
#line 5403 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4324; /* mve_vmullbq_int_m_uv4si */

        default:
          return -1;
        }

    case 886:
      switch (pattern248 (x1))
        {
        case 0:
          if (!
#line 5403 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4321; /* mve_vmullbq_int_m_sv16qi */

        case 1:
          if (!
#line 5403 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4323; /* mve_vmullbq_int_m_sv8hi */

        case 2:
          if (!
#line 5403 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4325; /* mve_vmullbq_int_m_sv4si */

        default:
          return -1;
        }

    case 841:
      switch (pattern248 (x1))
        {
        case 0:
          if (!
#line 5420 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4326; /* mve_vmulltq_int_m_sv16qi */

        case 1:
          if (!
#line 5420 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4328; /* mve_vmulltq_int_m_sv8hi */

        case 2:
          if (!
#line 5420 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4330; /* mve_vmulltq_int_m_sv4si */

        default:
          return -1;
        }

    case 842:
      switch (pattern248 (x1))
        {
        case 0:
          if (!
#line 5420 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4327; /* mve_vmulltq_int_m_uv16qi */

        case 1:
          if (!
#line 5420 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4329; /* mve_vmulltq_int_m_uv8hi */

        case 2:
          if (!
#line 5420 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4331; /* mve_vmulltq_int_m_uv4si */

        default:
          return -1;
        }

    case 832:
      switch (pattern243 (x1))
        {
        case 0:
          if (!
#line 5437 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4332; /* mve_vmulq_m_n_uv16qi */

        case 1:
          if (!
#line 5437 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4334; /* mve_vmulq_m_n_uv8hi */

        case 2:
          if (!
#line 5437 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4336; /* mve_vmulq_m_n_uv4si */

        default:
          return -1;
        }

    case 843:
      switch (pattern243 (x1))
        {
        case 0:
          if (!
#line 5437 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4333; /* mve_vmulq_m_n_sv16qi */

        case 1:
          if (!
#line 5437 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4335; /* mve_vmulq_m_n_sv8hi */

        case 2:
          if (!
#line 5437 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4337; /* mve_vmulq_m_n_sv4si */

        default:
          return -1;
        }

    case 857:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5454 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4338; /* mve_vmulq_m_sv16qi */

        case 1:
          if (!
#line 5454 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4340; /* mve_vmulq_m_sv8hi */

        case 2:
          if (!
#line 5454 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4342; /* mve_vmulq_m_sv4si */

        default:
          return -1;
        }

    case 858:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5454 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4339; /* mve_vmulq_m_uv16qi */

        case 1:
          if (!
#line 5454 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4341; /* mve_vmulq_m_uv8hi */

        case 2:
          if (!
#line 5454 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4343; /* mve_vmulq_m_uv4si */

        default:
          return -1;
        }

    case 907:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4344; /* mve_vornq_m_uv16qi */

        case 1:
          if (!
#line 5471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4346; /* mve_vornq_m_uv8hi */

        case 2:
          if (!
#line 5471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4348; /* mve_vornq_m_uv4si */

        default:
          return -1;
        }

    case 908:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4345; /* mve_vornq_m_sv16qi */

        case 1:
          if (!
#line 5471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4347; /* mve_vornq_m_sv8hi */

        case 2:
          if (!
#line 5471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4349; /* mve_vornq_m_sv4si */

        default:
          return -1;
        }

    case 870:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5488 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4350; /* mve_vorrq_m_sv16qi */

        case 1:
          if (!
#line 5488 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4352; /* mve_vorrq_m_sv8hi */

        case 2:
          if (!
#line 5488 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4354; /* mve_vorrq_m_sv4si */

        default:
          return -1;
        }

    case 871:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5488 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4351; /* mve_vorrq_m_uv16qi */

        case 1:
          if (!
#line 5488 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4353; /* mve_vorrq_m_uv8hi */

        case 2:
          if (!
#line 5488 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4355; /* mve_vorrq_m_uv4si */

        default:
          return -1;
        }

    case 914:
      switch (pattern243 (x1))
        {
        case 0:
          if (!
#line 5505 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4356; /* mve_vqaddq_m_n_uv16qi */

        case 1:
          if (!
#line 5505 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4358; /* mve_vqaddq_m_n_uv8hi */

        case 2:
          if (!
#line 5505 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4360; /* mve_vqaddq_m_n_uv4si */

        default:
          return -1;
        }

    case 891:
      switch (pattern243 (x1))
        {
        case 0:
          if (!
#line 5505 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4357; /* mve_vqaddq_m_n_sv16qi */

        case 1:
          if (!
#line 5505 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4359; /* mve_vqaddq_m_n_sv8hi */

        case 2:
          if (!
#line 5505 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4361; /* mve_vqaddq_m_n_sv4si */

        default:
          return -1;
        }

    case 821:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5522 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4362; /* mve_vqaddq_m_uv16qi */

        case 1:
          if (!
#line 5522 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4364; /* mve_vqaddq_m_uv8hi */

        case 2:
          if (!
#line 5522 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4366; /* mve_vqaddq_m_uv4si */

        default:
          return -1;
        }

    case 822:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5522 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4363; /* mve_vqaddq_m_sv16qi */

        case 1:
          if (!
#line 5522 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4365; /* mve_vqaddq_m_sv8hi */

        case 2:
          if (!
#line 5522 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4367; /* mve_vqaddq_m_sv4si */

        default:
          return -1;
        }

    case 898:
      switch (pattern243 (x1))
        {
        case 0:
          if (!
#line 5539 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4368; /* mve_vqdmlahq_m_n_sv16qi */

        case 1:
          if (!
#line 5539 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4369; /* mve_vqdmlahq_m_n_sv8hi */

        case 2:
          if (!
#line 5539 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4370; /* mve_vqdmlahq_m_n_sv4si */

        default:
          return -1;
        }

    case 859:
      switch (pattern243 (x1))
        {
        case 0:
          if (!
#line 5556 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4371; /* mve_vqdmlashq_m_n_sv16qi */

        case 1:
          if (!
#line 5556 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4372; /* mve_vqdmlashq_m_n_sv8hi */

        case 2:
          if (!
#line 5556 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4373; /* mve_vqdmlashq_m_n_sv4si */

        default:
          return -1;
        }

    case 869:
      switch (pattern243 (x1))
        {
        case 0:
          if (!
#line 5573 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4374; /* mve_vqrdmlahq_m_n_sv16qi */

        case 1:
          if (!
#line 5573 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4375; /* mve_vqrdmlahq_m_n_sv8hi */

        case 2:
          if (!
#line 5573 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4376; /* mve_vqrdmlahq_m_n_sv4si */

        default:
          return -1;
        }

    case 860:
      switch (pattern243 (x1))
        {
        case 0:
          if (!
#line 5590 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4377; /* mve_vqrdmlashq_m_n_sv16qi */

        case 1:
          if (!
#line 5590 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4378; /* mve_vqrdmlashq_m_n_sv8hi */

        case 2:
          if (!
#line 5590 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4379; /* mve_vqrdmlashq_m_n_sv4si */

        default:
          return -1;
        }

    case 873:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5607 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4380; /* mve_vqrshlq_m_uv16qi */

        case 1:
          if (!
#line 5607 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4382; /* mve_vqrshlq_m_uv8hi */

        case 2:
          if (!
#line 5607 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4384; /* mve_vqrshlq_m_uv4si */

        default:
          return -1;
        }

    case 852:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5607 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4381; /* mve_vqrshlq_m_sv16qi */

        case 1:
          if (!
#line 5607 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4383; /* mve_vqrshlq_m_sv8hi */

        case 2:
          if (!
#line 5607 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4385; /* mve_vqrshlq_m_sv4si */

        default:
          return -1;
        }

    case 909:
      switch (pattern249 (x1))
        {
        case 0:
          if (!
#line 5624 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4386; /* mve_vqshlq_m_n_sv16qi */

        case 1:
          if (!
#line 5624 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4388; /* mve_vqshlq_m_n_sv8hi */

        case 2:
          if (!
#line 5624 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4390; /* mve_vqshlq_m_n_sv4si */

        default:
          return -1;
        }

    case 910:
      switch (pattern249 (x1))
        {
        case 0:
          if (!
#line 5624 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4387; /* mve_vqshlq_m_n_uv16qi */

        case 1:
          if (!
#line 5624 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4389; /* mve_vqshlq_m_n_uv8hi */

        case 2:
          if (!
#line 5624 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4391; /* mve_vqshlq_m_n_uv4si */

        default:
          return -1;
        }

    case 903:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5641 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4392; /* mve_vqshlq_m_uv16qi */

        case 1:
          if (!
#line 5641 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4394; /* mve_vqshlq_m_uv8hi */

        case 2:
          if (!
#line 5641 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4396; /* mve_vqshlq_m_uv4si */

        default:
          return -1;
        }

    case 904:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5641 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4393; /* mve_vqshlq_m_sv16qi */

        case 1:
          if (!
#line 5641 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4395; /* mve_vqshlq_m_sv8hi */

        case 2:
          if (!
#line 5641 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4397; /* mve_vqshlq_m_sv4si */

        default:
          return -1;
        }

    case 839:
      switch (pattern243 (x1))
        {
        case 0:
          if (!
#line 5658 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4398; /* mve_vqsubq_m_n_uv16qi */

        case 1:
          if (!
#line 5658 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4400; /* mve_vqsubq_m_n_uv8hi */

        case 2:
          if (!
#line 5658 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4402; /* mve_vqsubq_m_n_uv4si */

        default:
          return -1;
        }

    case 840:
      switch (pattern243 (x1))
        {
        case 0:
          if (!
#line 5658 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4399; /* mve_vqsubq_m_n_sv16qi */

        case 1:
          if (!
#line 5658 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4401; /* mve_vqsubq_m_n_sv8hi */

        case 2:
          if (!
#line 5658 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4403; /* mve_vqsubq_m_n_sv4si */

        default:
          return -1;
        }

    case 836:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5675 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4404; /* mve_vqsubq_m_uv16qi */

        case 1:
          if (!
#line 5675 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4406; /* mve_vqsubq_m_uv8hi */

        case 2:
          if (!
#line 5675 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4408; /* mve_vqsubq_m_uv4si */

        default:
          return -1;
        }

    case 837:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5675 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4405; /* mve_vqsubq_m_sv16qi */

        case 1:
          if (!
#line 5675 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4407; /* mve_vqsubq_m_sv8hi */

        case 2:
          if (!
#line 5675 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4409; /* mve_vqsubq_m_sv4si */

        default:
          return -1;
        }

    case 854:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5692 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4410; /* mve_vrhaddq_m_uv16qi */

        case 1:
          if (!
#line 5692 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4412; /* mve_vrhaddq_m_uv8hi */

        case 2:
          if (!
#line 5692 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4414; /* mve_vrhaddq_m_uv4si */

        default:
          return -1;
        }

    case 856:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5692 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4411; /* mve_vrhaddq_m_sv16qi */

        case 1:
          if (!
#line 5692 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4413; /* mve_vrhaddq_m_sv8hi */

        case 2:
          if (!
#line 5692 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4415; /* mve_vrhaddq_m_sv4si */

        default:
          return -1;
        }

    case 874:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5709 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4416; /* mve_vrmulhq_m_uv16qi */

        case 1:
          if (!
#line 5709 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4418; /* mve_vrmulhq_m_uv8hi */

        case 2:
          if (!
#line 5709 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4420; /* mve_vrmulhq_m_uv4si */

        default:
          return -1;
        }

    case 875:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5709 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4417; /* mve_vrmulhq_m_sv16qi */

        case 1:
          if (!
#line 5709 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4419; /* mve_vrmulhq_m_sv8hi */

        case 2:
          if (!
#line 5709 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4421; /* mve_vrmulhq_m_sv4si */

        default:
          return -1;
        }

    case 861:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5726 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4422; /* mve_vrshlq_m_sv16qi */

        case 1:
          if (!
#line 5726 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4424; /* mve_vrshlq_m_sv8hi */

        case 2:
          if (!
#line 5726 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4426; /* mve_vrshlq_m_sv4si */

        default:
          return -1;
        }

    case 862:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5726 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4423; /* mve_vrshlq_m_uv16qi */

        case 1:
          if (!
#line 5726 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4425; /* mve_vrshlq_m_uv8hi */

        case 2:
          if (!
#line 5726 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4427; /* mve_vrshlq_m_uv4si */

        default:
          return -1;
        }

    case 823:
      switch (pattern250 (x1))
        {
        case 0:
          if (!
#line 5743 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4428; /* mve_vrshrq_m_n_sv16qi */

        case 1:
          if (!
#line 5743 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4430; /* mve_vrshrq_m_n_sv8hi */

        case 2:
          if (!
#line 5743 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4432; /* mve_vrshrq_m_n_sv4si */

        default:
          return -1;
        }

    case 863:
      switch (pattern250 (x1))
        {
        case 0:
          if (!
#line 5743 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4429; /* mve_vrshrq_m_n_uv16qi */

        case 1:
          if (!
#line 5743 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4431; /* mve_vrshrq_m_n_uv8hi */

        case 2:
          if (!
#line 5743 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4433; /* mve_vrshrq_m_n_uv4si */

        default:
          return -1;
        }

    case 896:
      switch (pattern249 (x1))
        {
        case 0:
          if (!
#line 5760 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4434; /* mve_vshlq_m_n_sv16qi */

        case 1:
          if (!
#line 5760 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4436; /* mve_vshlq_m_n_sv8hi */

        case 2:
          if (!
#line 5760 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4438; /* mve_vshlq_m_n_sv4si */

        default:
          return -1;
        }

    case 899:
      switch (pattern249 (x1))
        {
        case 0:
          if (!
#line 5760 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4435; /* mve_vshlq_m_n_uv16qi */

        case 1:
          if (!
#line 5760 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4437; /* mve_vshlq_m_n_uv8hi */

        case 2:
          if (!
#line 5760 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4439; /* mve_vshlq_m_n_uv4si */

        default:
          return -1;
        }

    case 888:
      switch (pattern250 (x1))
        {
        case 0:
          if (!
#line 5777 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4440; /* mve_vshrq_m_n_sv16qi */

        case 1:
          if (!
#line 5777 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4442; /* mve_vshrq_m_n_sv8hi */

        case 2:
          if (!
#line 5777 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4444; /* mve_vshrq_m_n_sv4si */

        default:
          return -1;
        }

    case 855:
      switch (pattern250 (x1))
        {
        case 0:
          if (!
#line 5777 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4441; /* mve_vshrq_m_n_uv16qi */

        case 1:
          if (!
#line 5777 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4443; /* mve_vshrq_m_n_uv8hi */

        case 2:
          if (!
#line 5777 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4445; /* mve_vshrq_m_n_uv4si */

        default:
          return -1;
        }

    case 890:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5794 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4446; /* mve_vsliq_m_n_uv16qi */

        case 1:
          if (!
#line 5794 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4448; /* mve_vsliq_m_n_uv8hi */

        case 2:
          if (!
#line 5794 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4450; /* mve_vsliq_m_n_uv4si */

        default:
          return -1;
        }

    case 902:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5794 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4447; /* mve_vsliq_m_n_sv16qi */

        case 1:
          if (!
#line 5794 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4449; /* mve_vsliq_m_n_sv8hi */

        case 2:
          if (!
#line 5794 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4451; /* mve_vsliq_m_n_sv4si */

        default:
          return -1;
        }

    case 824:
      switch (pattern243 (x1))
        {
        case 0:
          if (!
#line 5811 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4452; /* mve_vsubq_m_n_sv16qi */

        case 1:
          if (!
#line 5811 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4454; /* mve_vsubq_m_n_sv8hi */

        case 2:
          if (!
#line 5811 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4456; /* mve_vsubq_m_n_sv4si */

        default:
          return -1;
        }

    case 825:
      switch (pattern243 (x1))
        {
        case 0:
          if (!
#line 5811 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4453; /* mve_vsubq_m_n_uv16qi */

        case 1:
          if (!
#line 5811 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4455; /* mve_vsubq_m_n_uv8hi */

        case 2:
          if (!
#line 5811 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4457; /* mve_vsubq_m_n_uv4si */

        default:
          return -1;
        }

    case 930:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5828 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4458; /* mve_vhcaddq_rot270_m_sv16qi */

        case 1:
          if (!
#line 5828 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4459; /* mve_vhcaddq_rot270_m_sv8hi */

        case 2:
          if (!
#line 5828 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4460; /* mve_vhcaddq_rot270_m_sv4si */

        default:
          return -1;
        }

    case 920:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5845 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4461; /* mve_vhcaddq_rot90_m_sv16qi */

        case 1:
          if (!
#line 5845 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4462; /* mve_vhcaddq_rot90_m_sv8hi */

        case 2:
          if (!
#line 5845 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4463; /* mve_vhcaddq_rot90_m_sv4si */

        default:
          return -1;
        }

    case 925:
      switch (pattern234 (x1))
        {
        case 0:
          if (!
#line 5862 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4464; /* mve_vmladavaxq_p_sv16qi */

        case 1:
          if (!
#line 5862 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4465; /* mve_vmladavaxq_p_sv8hi */

        case 2:
          if (!
#line 5862 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4466; /* mve_vmladavaxq_p_sv4si */

        default:
          return -1;
        }

    case 933:
      switch (pattern234 (x1))
        {
        case 0:
          if (!
#line 5879 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4467; /* mve_vmlsdavaq_p_sv16qi */

        case 1:
          if (!
#line 5879 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4468; /* mve_vmlsdavaq_p_sv8hi */

        case 2:
          if (!
#line 5879 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4469; /* mve_vmlsdavaq_p_sv4si */

        default:
          return -1;
        }

    case 928:
      switch (pattern234 (x1))
        {
        case 0:
          if (!
#line 5896 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4470; /* mve_vmlsdavaxq_p_sv16qi */

        case 1:
          if (!
#line 5896 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4471; /* mve_vmlsdavaxq_p_sv8hi */

        case 2:
          if (!
#line 5896 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4472; /* mve_vmlsdavaxq_p_sv4si */

        default:
          return -1;
        }

    case 935:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5913 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4473; /* mve_vqdmladhq_m_sv16qi */

        case 1:
          if (!
#line 5913 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4474; /* mve_vqdmladhq_m_sv8hi */

        case 2:
          if (!
#line 5913 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4475; /* mve_vqdmladhq_m_sv4si */

        default:
          return -1;
        }

    case 926:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5930 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4476; /* mve_vqdmladhxq_m_sv16qi */

        case 1:
          if (!
#line 5930 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4477; /* mve_vqdmladhxq_m_sv8hi */

        case 2:
          if (!
#line 5930 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4478; /* mve_vqdmladhxq_m_sv4si */

        default:
          return -1;
        }

    case 931:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5947 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4479; /* mve_vqdmlsdhq_m_sv16qi */

        case 1:
          if (!
#line 5947 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4480; /* mve_vqdmlsdhq_m_sv8hi */

        case 2:
          if (!
#line 5947 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4481; /* mve_vqdmlsdhq_m_sv4si */

        default:
          return -1;
        }

    case 932:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5964 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4482; /* mve_vqdmlsdhxq_m_sv16qi */

        case 1:
          if (!
#line 5964 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4483; /* mve_vqdmlsdhxq_m_sv8hi */

        case 2:
          if (!
#line 5964 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4484; /* mve_vqdmlsdhxq_m_sv4si */

        default:
          return -1;
        }

    case 929:
      switch (pattern243 (x1))
        {
        case 0:
          if (!
#line 5981 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4485; /* mve_vqdmulhq_m_n_sv16qi */

        case 1:
          if (!
#line 5981 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4486; /* mve_vqdmulhq_m_n_sv8hi */

        case 2:
          if (!
#line 5981 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4487; /* mve_vqdmulhq_m_n_sv4si */

        default:
          return -1;
        }

    case 924:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 5998 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4488; /* mve_vqdmulhq_m_sv16qi */

        case 1:
          if (!
#line 5998 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4489; /* mve_vqdmulhq_m_sv8hi */

        case 2:
          if (!
#line 5998 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4490; /* mve_vqdmulhq_m_sv4si */

        default:
          return -1;
        }

    case 934:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 6015 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4491; /* mve_vqrdmladhq_m_sv16qi */

        case 1:
          if (!
#line 6015 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4492; /* mve_vqrdmladhq_m_sv8hi */

        case 2:
          if (!
#line 6015 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4493; /* mve_vqrdmladhq_m_sv4si */

        default:
          return -1;
        }

    case 923:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 6032 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4494; /* mve_vqrdmladhxq_m_sv16qi */

        case 1:
          if (!
#line 6032 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4495; /* mve_vqrdmladhxq_m_sv8hi */

        case 2:
          if (!
#line 6032 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4496; /* mve_vqrdmladhxq_m_sv4si */

        default:
          return -1;
        }

    case 921:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 6049 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4497; /* mve_vqrdmlsdhq_m_sv16qi */

        case 1:
          if (!
#line 6049 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4498; /* mve_vqrdmlsdhq_m_sv8hi */

        case 2:
          if (!
#line 6049 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4499; /* mve_vqrdmlsdhq_m_sv4si */

        default:
          return -1;
        }

    case 922:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 6066 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4500; /* mve_vqrdmlsdhxq_m_sv16qi */

        case 1:
          if (!
#line 6066 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4501; /* mve_vqrdmlsdhxq_m_sv8hi */

        case 2:
          if (!
#line 6066 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4502; /* mve_vqrdmlsdhxq_m_sv4si */

        default:
          return -1;
        }

    case 959:
      switch (pattern243 (x1))
        {
        case 0:
          if (!
#line 6083 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4503; /* mve_vqrdmulhq_m_n_sv16qi */

        case 1:
          if (!
#line 6083 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4504; /* mve_vqrdmulhq_m_n_sv8hi */

        case 2:
          if (!
#line 6083 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4505; /* mve_vqrdmulhq_m_n_sv4si */

        default:
          return -1;
        }

    case 927:
      switch (pattern237 (x1))
        {
        case 0:
          if (!
#line 6100 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4506; /* mve_vqrdmulhq_m_sv16qi */

        case 1:
          if (!
#line 6100 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4507; /* mve_vqrdmulhq_m_sv8hi */

        case 2:
          if (!
#line 6100 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4508; /* mve_vqrdmulhq_m_sv4si */

        default:
          return -1;
        }

    case 936:
      switch (pattern251 (x1))
        {
        case 0:
          if (!
#line 6117 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4509; /* mve_vmlaldavaq_p_uv8hi */

        case 1:
          if (!
#line 6117 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4511; /* mve_vmlaldavaq_p_uv4si */

        default:
          return -1;
        }

    case 937:
      switch (pattern251 (x1))
        {
        case 0:
          if (!
#line 6117 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4510; /* mve_vmlaldavaq_p_sv8hi */

        case 1:
          if (!
#line 6117 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4512; /* mve_vmlaldavaq_p_sv4si */

        default:
          return -1;
        }

    case 955:
      switch (pattern251 (x1))
        {
        case 0:
          if (!
#line 6134 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4513; /* mve_vmlaldavaxq_p_sv8hi */

        case 1:
          if (!
#line 6134 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4514; /* mve_vmlaldavaxq_p_sv4si */

        default:
          return -1;
        }

    case 938:
      switch (pattern252 (x1))
        {
        case 0:
          if (!
#line 6151 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4515; /* mve_vqrshrnbq_m_n_uv8hi */

        case 1:
          if (!
#line 6151 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4517; /* mve_vqrshrnbq_m_n_uv4si */

        default:
          return -1;
        }

    case 939:
      switch (pattern252 (x1))
        {
        case 0:
          if (!
#line 6151 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4516; /* mve_vqrshrnbq_m_n_sv8hi */

        case 1:
          if (!
#line 6151 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4518; /* mve_vqrshrnbq_m_n_sv4si */

        default:
          return -1;
        }

    case 940:
      switch (pattern252 (x1))
        {
        case 0:
          if (!
#line 6168 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4519; /* mve_vqrshrntq_m_n_sv8hi */

        case 1:
          if (!
#line 6168 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4521; /* mve_vqrshrntq_m_n_sv4si */

        default:
          return -1;
        }

    case 956:
      switch (pattern252 (x1))
        {
        case 0:
          if (!
#line 6168 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4520; /* mve_vqrshrntq_m_n_uv8hi */

        case 1:
          if (!
#line 6168 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4522; /* mve_vqrshrntq_m_n_uv4si */

        default:
          return -1;
        }

    case 941:
      switch (pattern252 (x1))
        {
        case 0:
          if (!
#line 6185 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4523; /* mve_vqshrnbq_m_n_uv8hi */

        case 1:
          if (!
#line 6185 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4525; /* mve_vqshrnbq_m_n_uv4si */

        default:
          return -1;
        }

    case 942:
      switch (pattern252 (x1))
        {
        case 0:
          if (!
#line 6185 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4524; /* mve_vqshrnbq_m_n_sv8hi */

        case 1:
          if (!
#line 6185 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4526; /* mve_vqshrnbq_m_n_sv4si */

        default:
          return -1;
        }

    case 943:
      switch (pattern252 (x1))
        {
        case 0:
          if (!
#line 6202 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4527; /* mve_vqshrntq_m_n_sv8hi */

        case 1:
          if (!
#line 6202 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4529; /* mve_vqshrntq_m_n_sv4si */

        default:
          return -1;
        }

    case 957:
      switch (pattern252 (x1))
        {
        case 0:
          if (!
#line 6202 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4528; /* mve_vqshrntq_m_n_uv8hi */

        case 1:
          if (!
#line 6202 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4530; /* mve_vqshrntq_m_n_uv4si */

        default:
          return -1;
        }

    case 960:
      if (pattern253 (x1) != 0
          || !
#line 6219 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4531; /* mve_vrmlaldavhaq_p_sv4si */

    case 944:
      switch (pattern252 (x1))
        {
        case 0:
          if (!
#line 6236 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4532; /* mve_vrshrnbq_m_n_uv8hi */

        case 1:
          if (!
#line 6236 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4534; /* mve_vrshrnbq_m_n_uv4si */

        default:
          return -1;
        }

    case 945:
      switch (pattern252 (x1))
        {
        case 0:
          if (!
#line 6236 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4533; /* mve_vrshrnbq_m_n_sv8hi */

        case 1:
          if (!
#line 6236 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4535; /* mve_vrshrnbq_m_n_sv4si */

        default:
          return -1;
        }

    case 946:
      switch (pattern252 (x1))
        {
        case 0:
          if (!
#line 6253 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4536; /* mve_vrshrntq_m_n_uv8hi */

        case 1:
          if (!
#line 6253 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4538; /* mve_vrshrntq_m_n_uv4si */

        default:
          return -1;
        }

    case 958:
      switch (pattern252 (x1))
        {
        case 0:
          if (!
#line 6253 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4537; /* mve_vrshrntq_m_n_sv8hi */

        case 1:
          if (!
#line 6253 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4539; /* mve_vrshrntq_m_n_sv4si */

        default:
          return -1;
        }

    case 947:
      switch (pattern255 (x1))
        {
        case 0:
          if (!
#line 6270 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4540; /* mve_vshllbq_m_n_uv16qi */

        case 1:
          if (!
#line 6270 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4542; /* mve_vshllbq_m_n_uv8hi */

        default:
          return -1;
        }

    case 948:
      switch (pattern255 (x1))
        {
        case 0:
          if (!
#line 6270 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4541; /* mve_vshllbq_m_n_sv16qi */

        case 1:
          if (!
#line 6270 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4543; /* mve_vshllbq_m_n_sv8hi */

        default:
          return -1;
        }

    case 949:
      switch (pattern255 (x1))
        {
        case 0:
          if (!
#line 6287 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4544; /* mve_vshlltq_m_n_uv16qi */

        case 1:
          if (!
#line 6287 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4546; /* mve_vshlltq_m_n_uv8hi */

        default:
          return -1;
        }

    case 950:
      switch (pattern255 (x1))
        {
        case 0:
          if (!
#line 6287 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4545; /* mve_vshlltq_m_n_sv16qi */

        case 1:
          if (!
#line 6287 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4547; /* mve_vshlltq_m_n_sv8hi */

        default:
          return -1;
        }

    case 951:
      switch (pattern252 (x1))
        {
        case 0:
          if (!
#line 6304 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4548; /* mve_vshrnbq_m_n_sv8hi */

        case 1:
          if (!
#line 6304 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4550; /* mve_vshrnbq_m_n_sv4si */

        default:
          return -1;
        }

    case 952:
      switch (pattern252 (x1))
        {
        case 0:
          if (!
#line 6304 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4549; /* mve_vshrnbq_m_n_uv8hi */

        case 1:
          if (!
#line 6304 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4551; /* mve_vshrnbq_m_n_uv4si */

        default:
          return -1;
        }

    case 953:
      switch (pattern252 (x1))
        {
        case 0:
          if (!
#line 6321 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4552; /* mve_vshrntq_m_n_sv8hi */

        case 1:
          if (!
#line 6321 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4554; /* mve_vshrntq_m_n_sv4si */

        default:
          return -1;
        }

    case 954:
      switch (pattern252 (x1))
        {
        case 0:
          if (!
#line 6321 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4553; /* mve_vshrntq_m_n_uv8hi */

        case 1:
          if (!
#line 6321 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4555; /* mve_vshrntq_m_n_uv4si */

        default:
          return -1;
        }

    case 961:
      switch (pattern251 (x1))
        {
        case 0:
          if (!
#line 6338 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4556; /* mve_vmlsldavaq_p_sv8hi */

        case 1:
          if (!
#line 6338 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4557; /* mve_vmlsldavaq_p_sv4si */

        default:
          return -1;
        }

    case 962:
      switch (pattern251 (x1))
        {
        case 0:
          if (!
#line 6355 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4558; /* mve_vmlsldavaxq_p_sv8hi */

        case 1:
          if (!
#line 6355 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4559; /* mve_vmlsldavaxq_p_sv4si */

        default:
          return -1;
        }

    case 963:
      switch (pattern256 (x1))
        {
        case 0:
          if (!
#line 6372 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4560; /* mve_vmullbq_poly_m_pv16qi */

        case 1:
          if (!
#line 6372 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4561; /* mve_vmullbq_poly_m_pv8hi */

        default:
          return -1;
        }

    case 964:
      switch (pattern256 (x1))
        {
        case 0:
          if (!
#line 6389 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4562; /* mve_vmulltq_poly_m_pv16qi */

        case 1:
          if (!
#line 6389 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4563; /* mve_vmulltq_poly_m_pv8hi */

        default:
          return -1;
        }

    case 965:
      switch (pattern258 (x1))
        {
        case 0:
          if (!
#line 6406 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4564; /* mve_vqdmullbq_m_n_sv8hi */

        case 1:
          if (!
#line 6406 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4565; /* mve_vqdmullbq_m_n_sv4si */

        default:
          return -1;
        }

    case 966:
      switch (pattern259 (x1))
        {
        case 0:
          if (!
#line 6423 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4566; /* mve_vqdmullbq_m_sv8hi */

        case 1:
          if (!
#line 6423 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4567; /* mve_vqdmullbq_m_sv4si */

        default:
          return -1;
        }

    case 967:
      switch (pattern258 (x1))
        {
        case 0:
          if (!
#line 6440 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4568; /* mve_vqdmulltq_m_n_sv8hi */

        case 1:
          if (!
#line 6440 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4569; /* mve_vqdmulltq_m_n_sv4si */

        default:
          return -1;
        }

    case 968:
      switch (pattern259 (x1))
        {
        case 0:
          if (!
#line 6457 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4570; /* mve_vqdmulltq_m_sv8hi */

        case 1:
          if (!
#line 6457 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4571; /* mve_vqdmulltq_m_sv4si */

        default:
          return -1;
        }

    case 969:
      switch (pattern252 (x1))
        {
        case 0:
          if (!
#line 6474 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4572; /* mve_vqrshrunbq_m_n_sv8hi */

        case 1:
          if (!
#line 6474 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4573; /* mve_vqrshrunbq_m_n_sv4si */

        default:
          return -1;
        }

    case 976:
      switch (pattern252 (x1))
        {
        case 0:
          if (!
#line 6491 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4574; /* mve_vqrshruntq_m_n_sv8hi */

        case 1:
          if (!
#line 6491 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4575; /* mve_vqrshruntq_m_n_sv4si */

        default:
          return -1;
        }

    case 970:
      switch (pattern252 (x1))
        {
        case 0:
          if (!
#line 6508 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4576; /* mve_vqshrunbq_m_n_sv8hi */

        case 1:
          if (!
#line 6508 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4577; /* mve_vqshrunbq_m_n_sv4si */

        default:
          return -1;
        }

    case 971:
      switch (pattern252 (x1))
        {
        case 0:
          if (!
#line 6525 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4578; /* mve_vqshruntq_m_n_sv8hi */

        case 1:
          if (!
#line 6525 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4579; /* mve_vqshruntq_m_n_sv4si */

        default:
          return -1;
        }

    case 972:
      if (pattern253 (x1) != 0
          || !
#line 6542 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4580; /* mve_vrmlaldavhaq_p_uv4si */

    case 973:
      if (pattern253 (x1) != 0
          || !
#line 6559 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4581; /* mve_vrmlaldavhaxq_p_sv4si */

    case 974:
      if (pattern253 (x1) != 0
          || !
#line 6576 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4582; /* mve_vrmlsldavhaq_p_sv4si */

    case 975:
      if (pattern253 (x1) != 0
          || !
#line 6593 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4583; /* mve_vrmlsldavhaxq_p_sv4si */

    case 893:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 6609 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4584; /* mve_vabdq_m_fv8hf */

        case 1:
          if (!
#line 6609 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4585; /* mve_vabdq_m_fv4sf */

        default:
          return -1;
        }

    case 913:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 6626 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4586; /* mve_vaddq_m_fv8hf */

        case 1:
          if (!
#line 6626 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4587; /* mve_vaddq_m_fv4sf */

        default:
          return -1;
        }

    case 864:
      switch (pattern261 (x1))
        {
        case 0:
          if (!
#line 6643 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4588; /* mve_vaddq_m_n_fv8hf */

        case 1:
          if (!
#line 6643 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4589; /* mve_vaddq_m_n_fv4sf */

        default:
          return -1;
        }

    case 878:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 6660 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4590; /* mve_vandq_m_fv8hf */

        case 1:
          if (!
#line 6660 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4591; /* mve_vandq_m_fv4sf */

        default:
          return -1;
        }

    case 828:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 6677 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4592; /* mve_vbicq_m_fv8hf */

        case 1:
          if (!
#line 6677 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4593; /* mve_vbicq_m_fv4sf */

        default:
          return -1;
        }

    case 892:
      return recog_230 (x1, insn, pnum_clobbers);

    case 849:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 6711 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4596; /* mve_vcaddq_rot270_m_fv8hf */

        case 1:
          if (!
#line 6711 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4597; /* mve_vcaddq_rot270_m_fv4sf */

        default:
          return -1;
        }

    case 887:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 6728 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4598; /* mve_vcaddq_rot90_m_fv8hf */

        case 1:
          if (!
#line 6728 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4599; /* mve_vcaddq_rot90_m_fv4sf */

        default:
          return -1;
        }

    case 977:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 6745 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4600; /* mve_vcmlaq_m_fv8hf */

        case 1:
          if (!
#line 6745 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4601; /* mve_vcmlaq_m_fv4sf */

        default:
          return -1;
        }

    case 978:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 6762 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4602; /* mve_vcmlaq_rot180_m_fv8hf */

        case 1:
          if (!
#line 6762 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4603; /* mve_vcmlaq_rot180_m_fv4sf */

        default:
          return -1;
        }

    case 979:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 6779 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4604; /* mve_vcmlaq_rot270_m_fv8hf */

        case 1:
          if (!
#line 6779 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4605; /* mve_vcmlaq_rot270_m_fv4sf */

        default:
          return -1;
        }

    case 980:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 6796 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4606; /* mve_vcmlaq_rot90_m_fv8hf */

        case 1:
          if (!
#line 6796 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4607; /* mve_vcmlaq_rot90_m_fv4sf */

        default:
          return -1;
        }

    case 981:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 6813 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4608; /* mve_vcmulq_m_fv8hf */

        case 1:
          if (!
#line 6813 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4609; /* mve_vcmulq_m_fv4sf */

        default:
          return -1;
        }

    case 982:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 6830 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4610; /* mve_vcmulq_rot180_m_fv8hf */

        case 1:
          if (!
#line 6830 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4611; /* mve_vcmulq_rot180_m_fv4sf */

        default:
          return -1;
        }

    case 983:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 6847 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4612; /* mve_vcmulq_rot270_m_fv8hf */

        case 1:
          if (!
#line 6847 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4613; /* mve_vcmulq_rot270_m_fv4sf */

        default:
          return -1;
        }

    case 984:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 6864 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4614; /* mve_vcmulq_rot90_m_fv8hf */

        case 1:
          if (!
#line 6864 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4615; /* mve_vcmulq_rot90_m_fv4sf */

        default:
          return -1;
        }

    case 895:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 6881 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4616; /* mve_veorq_m_fv8hf */

        case 1:
          if (!
#line 6881 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4617; /* mve_veorq_m_fv4sf */

        default:
          return -1;
        }

    case 985:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 6898 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4618; /* mve_vfmaq_m_fv8hf */

        case 1:
          if (!
#line 6898 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4619; /* mve_vfmaq_m_fv4sf */

        default:
          return -1;
        }

    case 986:
      switch (pattern261 (x1))
        {
        case 0:
          if (!
#line 6915 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4620; /* mve_vfmaq_m_n_fv8hf */

        case 1:
          if (!
#line 6915 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4621; /* mve_vfmaq_m_n_fv4sf */

        default:
          return -1;
        }

    case 987:
      switch (pattern261 (x1))
        {
        case 0:
          if (!
#line 6932 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4622; /* mve_vfmasq_m_n_fv8hf */

        case 1:
          if (!
#line 6932 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4623; /* mve_vfmasq_m_n_fv4sf */

        default:
          return -1;
        }

    case 988:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 6949 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4624; /* mve_vfmsq_m_fv8hf */

        case 1:
          if (!
#line 6949 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4625; /* mve_vfmsq_m_fv4sf */

        default:
          return -1;
        }

    case 989:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 6966 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4626; /* mve_vmaxnmq_m_fv8hf */

        case 1:
          if (!
#line 6966 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4627; /* mve_vmaxnmq_m_fv4sf */

        default:
          return -1;
        }

    case 990:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 6983 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4628; /* mve_vminnmq_m_fv8hf */

        case 1:
          if (!
#line 6983 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4629; /* mve_vminnmq_m_fv4sf */

        default:
          return -1;
        }

    case 853:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 7000 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4630; /* mve_vmulq_m_fv8hf */

        case 1:
          if (!
#line 7000 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4631; /* mve_vmulq_m_fv4sf */

        default:
          return -1;
        }

    case 844:
      switch (pattern261 (x1))
        {
        case 0:
          if (!
#line 7017 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4632; /* mve_vmulq_m_n_fv8hf */

        case 1:
          if (!
#line 7017 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4633; /* mve_vmulq_m_n_fv4sf */

        default:
          return -1;
        }

    case 834:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 7034 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4634; /* mve_vornq_m_fv8hf */

        case 1:
          if (!
#line 7034 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4635; /* mve_vornq_m_fv4sf */

        default:
          return -1;
        }

    case 872:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 7051 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4636; /* mve_vorrq_m_fv8hf */

        case 1:
          if (!
#line 7051 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4637; /* mve_vorrq_m_fv4sf */

        default:
          return -1;
        }

    case 991:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 7068 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4638; /* mve_vsubq_m_fv8hf */

        case 1:
          if (!
#line 7068 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4639; /* mve_vsubq_m_fv4sf */

        default:
          return -1;
        }

    case 827:
      switch (pattern261 (x1))
        {
        case 0:
          if (!
#line 7085 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4640; /* mve_vsubq_m_n_fv8hf */

        case 1:
          if (!
#line 7085 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4641; /* mve_vsubq_m_n_fv4sf */

        default:
          return -1;
        }

    case 994:
      switch (pattern262 (x1))
        {
        case 0:
          if (!
#line 7252 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4670; /* mve_vstrbq_scatter_offset_p_sv16qi_insn */

        case 1:
          if (!
#line 7252 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4672; /* mve_vstrbq_scatter_offset_p_sv8hi_insn */

        case 2:
          if (!
#line 7252 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4674; /* mve_vstrbq_scatter_offset_p_sv4si_insn */

        default:
          return -1;
        }

    case 995:
      switch (pattern262 (x1))
        {
        case 0:
          if (!
#line 7252 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4671; /* mve_vstrbq_scatter_offset_p_uv16qi_insn */

        case 1:
          if (!
#line 7252 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4673; /* mve_vstrbq_scatter_offset_p_uv8hi_insn */

        case 2:
          if (!
#line 7252 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4675; /* mve_vstrbq_scatter_offset_p_uv4si_insn */

        default:
          return -1;
        }

    case 992:
      if (pattern263 (x1, E_V4SImode) != 0
          || !
#line 7268 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4676; /* mve_vstrwq_scatter_base_p_sv4si */

    case 993:
      if (pattern263 (x1, E_V4SImode) != 0
          || !
#line 7268 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4677; /* mve_vstrwq_scatter_base_p_uv4si */

    case 1035:
      switch (pattern264 (x1))
        {
        case 0:
          if (!
#line 8150 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4766; /* mve_vstrhq_scatter_offset_p_sv8hi_insn */

        case 1:
          if (!
#line 8150 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4768; /* mve_vstrhq_scatter_offset_p_sv4si_insn */

        default:
          return -1;
        }

    case 1095:
      switch (pattern264 (x1))
        {
        case 0:
          if (!
#line 8150 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4767; /* mve_vstrhq_scatter_offset_p_uv8hi_insn */

        case 1:
          if (!
#line 8150 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4769; /* mve_vstrhq_scatter_offset_p_uv4si_insn */

        default:
          return -1;
        }

    case 1096:
      switch (pattern264 (x1))
        {
        case 0:
          if (!
#line 8210 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4774; /* mve_vstrhq_scatter_shifted_offset_p_sv8hi_insn */

        case 1:
          if (!
#line 8210 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4776; /* mve_vstrhq_scatter_shifted_offset_p_sv4si_insn */

        default:
          return -1;
        }

    case 1097:
      switch (pattern264 (x1))
        {
        case 0:
          if (!
#line 8210 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4775; /* mve_vstrhq_scatter_shifted_offset_p_uv8hi_insn */

        case 1:
          if (!
#line 8210 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4777; /* mve_vstrhq_scatter_shifted_offset_p_uv4si_insn */

        default:
          return -1;
        }

    case 1041:
      if (pattern265 (x1) != 0
          || !
#line 8374 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4792; /* mve_vstrdq_scatter_base_p_sv2di */

    case 1042:
      if (pattern265 (x1) != 0
          || !
#line 8374 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4793; /* mve_vstrdq_scatter_base_p_uv2di */

    case 1043:
      if (pattern266 (x1) != 0
          || !
#line 8434 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4796; /* mve_vstrdq_scatter_offset_p_sv2di_insn */

    case 1044:
      if (pattern266 (x1) != 0
          || !
#line 8434 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4797; /* mve_vstrdq_scatter_offset_p_uv2di_insn */

    case 1045:
      if (pattern266 (x1) != 0
          || !
#line 8494 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4800; /* mve_vstrdq_scatter_shifted_offset_p_sv2di_insn */

    case 1046:
      if (pattern266 (x1) != 0
          || !
#line 8494 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4801; /* mve_vstrdq_scatter_shifted_offset_p_uv2di_insn */

    case 1051:
      if (pattern267 (x1) != 0
          || !
#line 8582 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4805; /* mve_vstrhq_scatter_offset_p_fv8hf_insn */

    case 1052:
      if (pattern267 (x1) != 0
          || !
#line 8642 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4807; /* mve_vstrhq_scatter_shifted_offset_p_fv8hf_insn */

    case 1053:
      if (pattern263 (x1, E_V4SFmode) != 0
          || !
#line 8680 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4809; /* mve_vstrwq_scatter_base_p_fv4sf */

    case 1054:
      if (pattern268 (x1, E_V4SFmode) != 0
          || !
#line 8746 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4811; /* mve_vstrwq_scatter_offset_p_fv4sf_insn */

    case 1047:
      if (pattern268 (x1, E_V4SImode) != 0
          || !
#line 8777 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4812; /* mve_vstrwq_scatter_offset_p_sv4si_insn */

    case 1048:
      if (pattern268 (x1, E_V4SImode) != 0
          || !
#line 8777 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4813; /* mve_vstrwq_scatter_offset_p_uv4si_insn */

    case 1055:
      if (pattern268 (x1, E_V4SFmode) != 0
          || !
#line 8865 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4817; /* mve_vstrwq_scatter_shifted_offset_p_fv4sf_insn */

    case 1049:
      if (pattern268 (x1, E_V4SImode) != 0
          || !
#line 8897 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4818; /* mve_vstrwq_scatter_shifted_offset_p_sv4si_insn */

    case 1050:
      if (pattern268 (x1, E_V4SImode) != 0
          || !
#line 8897 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4819; /* mve_vstrwq_scatter_shifted_offset_p_uv4si_insn */

    default:
      return -1;
    }
}

static int
recog_237 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (XINT (x2, 1))
    {
    case 30:
      if (pattern110 (x2, 104, E_CCmode) != 0)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!s_register_operand (operands[0], E_SImode)
          || !
#line 4405 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM_QBIT))
        return -1;
      return 131; /* arm_get_apsr */

    case 25:
      return recog_112 (x1, insn, pnum_clobbers);

    case 26:
      return recog_103 (x1, insn, pnum_clobbers);

    case 45:
      if (GET_MODE (x2) != E_SImode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!s_register_operand (operands[1], E_SImode)
          || !
#line 6042 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 190; /* arm_sxtb16 */

    case 46:
      if (GET_MODE (x2) != E_SImode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!s_register_operand (operands[1], E_SImode)
          || !
#line 6042 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 191; /* arm_uxtb16 */

    case 1:
      if (GET_MODE (x2) != E_SImode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (
#line 6697 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && flag_pic))
        return 259; /* pic_load_addr_32bit */
      if (!
#line 6713 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_THUMB1 && flag_pic))
        return -1;
      return 260; /* pic_load_addr_thumb1 */

    case 38:
      if (GET_MODE (x2) != E_SImode)
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!memory_operand (operands[0], E_SImode)
          || !
#line 9248 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 306; /* probe_stack */

    case 40:
      return recog_121 (x1, insn, pnum_clobbers);

    case 22:
      if (GET_MODE (x2) != E_SImode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!s_register_operand (operands[1], E_SImode)
          || !
#line 12186 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch_thumb2))
        return -1;
      return 400; /* rbitsi2 */

    case 17:
      return recog_106 (x1, insn, pnum_clobbers);

    case 15:
      if (GET_MODE (x2) != E_DImode)
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!register_operand (operands[0], E_DImode)
          || !
#line 560 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 570; /* iwmmxt_clrdi */

    case 8:
      switch (pattern111 (x1, E_SImode))
        {
        case 0:
          if (!
#line 1579 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 664; /* iwmmxt_tmovmskb */

        case 1:
          if (!
#line 1588 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 665; /* iwmmxt_tmovmskh */

        case 2:
          if (!
#line 1597 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 666; /* iwmmxt_tmovmskw */

        default:
          return -1;
        }

    case 7:
      switch (pattern111 (x1, E_DImode))
        {
        case 0:
          if (!
#line 1606 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 667; /* iwmmxt_waccb */

        case 1:
          if (!
#line 1615 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 668; /* iwmmxt_wacch */

        case 2:
          if (!
#line 1624 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 669; /* iwmmxt_waccw */

        default:
          return -1;
        }

    case 16:
      return recog_101 (x1, insn, pnum_clobbers);

    case 109:
      return recog_105 (x1, insn, pnum_clobbers);

    case 108:
      return recog_120 (x1, insn, pnum_clobbers);

    case 355:
      switch (pattern112 (x1))
        {
        case 0:
          if (!
#line 971 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 781; /* neon_vrndhf */

        case 1:
          if (!
#line 793 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1312; /* neon_vrndv8hf */

        case 2:
          if (!
#line 793 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1318; /* neon_vrndv4hf */

        default:
          return -1;
        }

    case 356:
      switch (pattern112 (x1))
        {
        case 0:
          if (!
#line 971 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 782; /* neon_vrndahf */

        case 1:
          if (!
#line 793 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1313; /* neon_vrndav8hf */

        case 2:
          if (!
#line 793 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1319; /* neon_vrndav4hf */

        default:
          return -1;
        }

    case 358:
      switch (pattern112 (x1))
        {
        case 0:
          if (!
#line 971 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 783; /* neon_vrndmhf */

        case 1:
          if (!
#line 793 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1314; /* neon_vrndmv8hf */

        case 2:
          if (!
#line 793 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1320; /* neon_vrndmv4hf */

        default:
          return -1;
        }

    case 359:
      switch (pattern112 (x1))
        {
        case 0:
          if (!
#line 971 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 784; /* neon_vrndnhf */

        case 1:
          if (!
#line 793 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1315; /* neon_vrndnv8hf */

        case 2:
          if (!
#line 793 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1321; /* neon_vrndnv4hf */

        default:
          return -1;
        }

    case 360:
      switch (pattern112 (x1))
        {
        case 0:
          if (!
#line 971 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 785; /* neon_vrndphf */

        case 1:
          if (!
#line 793 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1316; /* neon_vrndpv8hf */

        case 2:
          if (!
#line 793 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1322; /* neon_vrndpv4hf */

        default:
          return -1;
        }

    case 361:
      switch (pattern112 (x1))
        {
        case 0:
          if (!
#line 971 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 786; /* neon_vrndxhf */

        case 1:
          if (!
#line 793 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1317; /* neon_vrndxv8hf */

        case 2:
          if (!
#line 793 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1323; /* neon_vrndxv4hf */

        default:
          return -1;
        }

    case 357:
      if (GET_MODE (x2) != E_HFmode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!s_register_operand (operands[0], E_HFmode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!s_register_operand (operands[1], E_HFmode)
          || !
#line 982 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
        return -1;
      return 787; /* neon_vrndihf */

    case 181:
      switch (pattern113 (x1))
        {
        case 0:
          if (!
#line 1907 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 867; /* neon_vcvthshf */

        case 1:
          if (!
#line 1918 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 869; /* neon_vcvthssi */

        default:
          return -1;
        }

    case 182:
      switch (pattern113 (x1))
        {
        case 0:
          if (!
#line 1907 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 868; /* neon_vcvthuhf */

        case 1:
          if (!
#line 1918 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 870; /* neon_vcvthusi */

        default:
          return -1;
        }

    case 183:
      switch (pattern114 (x1))
        {
        case 0:
          if (!
#line 2014 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 875; /* neon_vcvtahssi */

        case 1:
          if (!
#line 3794 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2129; /* neon_vcvtasv8hf */

        case 2:
          if (!
#line 3794 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2137; /* neon_vcvtasv4hf */

        default:
          return -1;
        }

    case 184:
      switch (pattern114 (x1))
        {
        case 0:
          if (!
#line 2014 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 876; /* neon_vcvtahusi */

        case 1:
          if (!
#line 3794 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2130; /* neon_vcvtauv8hf */

        case 2:
          if (!
#line 3794 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2138; /* neon_vcvtauv4hf */

        default:
          return -1;
        }

    case 185:
      switch (pattern114 (x1))
        {
        case 0:
          if (!
#line 2014 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 877; /* neon_vcvtmhssi */

        case 1:
          if (!
#line 3794 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2131; /* neon_vcvtmsv8hf */

        case 2:
          if (!
#line 3794 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2139; /* neon_vcvtmsv4hf */

        default:
          return -1;
        }

    case 186:
      switch (pattern114 (x1))
        {
        case 0:
          if (!
#line 2014 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 878; /* neon_vcvtmhusi */

        case 1:
          if (!
#line 3794 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2132; /* neon_vcvtmuv8hf */

        case 2:
          if (!
#line 3794 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2140; /* neon_vcvtmuv4hf */

        default:
          return -1;
        }

    case 187:
      switch (pattern114 (x1))
        {
        case 0:
          if (!
#line 2014 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 879; /* neon_vcvtnhssi */

        case 1:
          if (!
#line 3794 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2133; /* neon_vcvtnsv8hf */

        case 2:
          if (!
#line 3794 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2141; /* neon_vcvtnsv4hf */

        default:
          return -1;
        }

    case 188:
      switch (pattern114 (x1))
        {
        case 0:
          if (!
#line 2014 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 880; /* neon_vcvtnhusi */

        case 1:
          if (!
#line 3794 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2134; /* neon_vcvtnuv8hf */

        case 2:
          if (!
#line 3794 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2142; /* neon_vcvtnuv4hf */

        default:
          return -1;
        }

    case 189:
      switch (pattern114 (x1))
        {
        case 0:
          if (!
#line 2014 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 881; /* neon_vcvtphssi */

        case 1:
          if (!
#line 3794 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2135; /* neon_vcvtpsv8hf */

        case 2:
          if (!
#line 3794 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2143; /* neon_vcvtpsv4hf */

        default:
          return -1;
        }

    case 190:
      switch (pattern114 (x1))
        {
        case 0:
          if (!
#line 2014 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 882; /* neon_vcvtphusi */

        case 1:
          if (!
#line 3794 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2136; /* neon_vcvtpuv8hf */

        case 2:
          if (!
#line 3794 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2144; /* neon_vcvtpuv4hf */

        default:
          return -1;
        }

    case 32:
      switch (pattern115 (x1))
        {
        case 0:
          if (!
#line 2040 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
            return -1;
          return 884; /* btruncsf2 */

        case 1:
          if (!(
#line 2040 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
            return -1;
          return 890; /* btruncdf2 */

        default:
          return -1;
        }

    case 33:
      switch (pattern115 (x1))
        {
        case 0:
          if (!
#line 2040 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
            return -1;
          return 885; /* ceilsf2 */

        case 1:
          if (!(
#line 2040 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
            return -1;
          return 891; /* ceildf2 */

        default:
          return -1;
        }

    case 34:
      switch (pattern115 (x1))
        {
        case 0:
          if (!
#line 2040 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
            return -1;
          return 886; /* floorsf2 */

        case 1:
          if (!(
#line 2040 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
            return -1;
          return 892; /* floordf2 */

        default:
          return -1;
        }

    case 35:
      switch (pattern115 (x1))
        {
        case 0:
          if (!
#line 2040 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
            return -1;
          return 887; /* nearbyintsf2 */

        case 1:
          if (!(
#line 2040 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
            return -1;
          return 893; /* nearbyintdf2 */

        default:
          return -1;
        }

    case 36:
      switch (pattern115 (x1))
        {
        case 0:
          if (!
#line 2040 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
            return -1;
          return 888; /* rintsf2 */

        case 1:
          if (!(
#line 2040 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
            return -1;
          return 894; /* rintdf2 */

        default:
          return -1;
        }

    case 37:
      switch (pattern115 (x1))
        {
        case 0:
          if (!
#line 2040 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
            return -1;
          return 889; /* roundsf2 */

        case 1:
          if (!(
#line 2040 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
            return -1;
          return 895; /* rounddf2 */

        default:
          return -1;
        }

    case 106:
      if (pattern116 (x1, E_SImode, 14) != 0
          || !
#line 1768 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_32BIT && TARGET_HAVE_LOB))
        return -1;
      return 1069; /* dls_insn */

    case 344:
      return recog_95 (x1, insn, pnum_clobbers);

    case 348:
      switch (pattern117 (x1))
        {
        case 0:
          if (!
#line 650 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1202; /* neon_vrintpv2sf */

        case 1:
          if (!
#line 650 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1208; /* neon_vrintpv4sf */

        default:
          return -1;
        }

    case 347:
      switch (pattern117 (x1))
        {
        case 0:
          if (!
#line 650 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1203; /* neon_vrintzv2sf */

        case 1:
          if (!
#line 650 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1209; /* neon_vrintzv4sf */

        default:
          return -1;
        }

    case 349:
      switch (pattern117 (x1))
        {
        case 0:
          if (!
#line 650 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1204; /* neon_vrintmv2sf */

        case 1:
          if (!
#line 650 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1210; /* neon_vrintmv4sf */

        default:
          return -1;
        }

    case 350:
      switch (pattern117 (x1))
        {
        case 0:
          if (!
#line 650 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1205; /* neon_vrintxv2sf */

        case 1:
          if (!
#line 650 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1211; /* neon_vrintxv4sf */

        default:
          return -1;
        }

    case 351:
      switch (pattern117 (x1))
        {
        case 0:
          if (!
#line 650 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1206; /* neon_vrintav2sf */

        case 1:
          if (!
#line 650 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1212; /* neon_vrintav4sf */

        default:
          return -1;
        }

    case 352:
      switch (pattern117 (x1))
        {
        case 0:
          if (!
#line 650 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1207; /* neon_vrintnv2sf */

        case 1:
          if (!
#line 650 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1213; /* neon_vrintnv4sf */

        default:
          return -1;
        }

    case 294:
      return recog_119 (x1, insn, pnum_clobbers);

    case 145:
      if (GET_MODE (x2) != E_DImode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!s_register_operand (operands[0], E_DImode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!nonimmediate_operand (operands[1], E_SImode)
          || !
#line 919 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1380; /* neon_load_count */

    case 246:
      if (GET_MODE (x2) != E_V2DImode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!s_register_operand (operands[0], E_V2DImode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!s_register_operand (operands[1], E_V2DImode)
          || !
#line 1187 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
        return -1;
      return 1417; /* arm_reduc_plus_internal_v2di */

    case 247:
      return recog_118 (x1, insn, pnum_clobbers);

    case 248:
      return recog_117 (x1, insn, pnum_clobbers);

    case 257:
      return recog_116 (x1, insn, pnum_clobbers);

    case 273:
      return recog_115 (x1, insn, pnum_clobbers);

    case 170:
      return recog_114 (x1, insn, pnum_clobbers);

    case 289:
      return recog_113 (x1, insn, pnum_clobbers);

    case 173:
      return recog_111 (x1, insn, pnum_clobbers);

    case 174:
      return recog_110 (x1, insn, pnum_clobbers);

    case 172:
      return recog_109 (x1, insn, pnum_clobbers);

    case 236:
      switch (pattern123 (x1))
        {
        case 0:
          if (!
#line 3803 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2145; /* neon_vmovnv8hi */

        case 1:
          if (!
#line 3803 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2146; /* neon_vmovnv4si */

        case 2:
          if (!
#line 3803 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2147; /* neon_vmovnv2di */

        default:
          return -1;
        }

    case 270:
      switch (pattern123 (x1))
        {
        case 0:
          if (!
#line 3812 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2148; /* neon_vqmovnsv8hi */

        case 1:
          if (!
#line 3812 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2150; /* neon_vqmovnsv4si */

        case 2:
          if (!
#line 3812 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2152; /* neon_vqmovnsv2di */

        default:
          return -1;
        }

    case 271:
      switch (pattern123 (x1))
        {
        case 0:
          if (!
#line 3812 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2149; /* neon_vqmovnuv8hi */

        case 1:
          if (!
#line 3812 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2151; /* neon_vqmovnuv4si */

        case 2:
          if (!
#line 3812 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2153; /* neon_vqmovnuv2di */

        default:
          return -1;
        }

    case 272:
      switch (pattern123 (x1))
        {
        case 0:
          if (!
#line 3821 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2154; /* neon_vqmovunv8hi */

        case 1:
          if (!
#line 3821 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2155; /* neon_vqmovunv4si */

        case 2:
          if (!
#line 3821 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2156; /* neon_vqmovunv2di */

        default:
          return -1;
        }

    case 234:
      switch (pattern125 (x1))
        {
        case 0:
          if (!
#line 3830 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2157; /* neon_vmovlsv8qi */

        case 1:
          if (!
#line 3830 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2159; /* neon_vmovlsv4hi */

        case 2:
          if (!
#line 3830 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2161; /* neon_vmovlsv2si */

        default:
          return -1;
        }

    case 235:
      switch (pattern125 (x1))
        {
        case 0:
          if (!
#line 3830 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2158; /* neon_vmovluv8qi */

        case 1:
          if (!
#line 3830 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2160; /* neon_vmovluv4hi */

        case 2:
          if (!
#line 3830 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2162; /* neon_vmovluv2si */

        default:
          return -1;
        }

    case 293:
      return recog_98 (x1, insn, pnum_clobbers);

    case 292:
      return recog_102 (x1, insn, pnum_clobbers);

    case 291:
      return recog_108 (x1, insn, pnum_clobbers);

    case 198:
      return recog_97 (x1, insn, pnum_clobbers);

    case 315:
      return recog_96 (x1, insn, pnum_clobbers);

    case 384:
      return recog_99 (x1, insn, pnum_clobbers);

    case 385:
      if (GET_MODE (x2) != E_V4SFmode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!register_operand (operands[0], E_V4SFmode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!register_operand (operands[1], E_V8BFmode)
          || !
#line 6430 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
        return -1;
      return 2840; /* neon_vbfcvt_highv8bf */

    case 132:
      switch (pattern126 (x1, 130))
        {
        case 0:
          if (!
#line 27 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO))
            return -1;
          return 2848; /* crypto_aesmc */

        case 1:
          if (!
#line 144 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO
   && arm_fusion_enabled_p (tune_params::FUSE_AES_AESMC)))
            return -1;
          return 2857; /* *aarch32_crypto_aese_fused */

        default:
          return -1;
        }

    case 131:
      switch (pattern126 (x1, 129))
        {
        case 0:
          if (!
#line 27 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO))
            return -1;
          return 2849; /* crypto_aesimc */

        case 1:
          if (!
#line 183 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO
   && arm_fusion_enabled_p (tune_params::FUSE_AES_AESMC)))
            return -1;
          return 2859; /* *aarch32_crypto_aesd_fused */

        default:
          return -1;
        }

    case 129:
      if (pattern127 (x1) != 0
          || !
#line 60 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO))
        return -1;
      return 2850; /* *crypto_aesd_insn */

    case 130:
      if (pattern127 (x1) != 0
          || !
#line 60 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO))
        return -1;
      return 2851; /* *crypto_aese_insn */

    case 133:
      return recog_100 (x1, insn, pnum_clobbers);

    case 137:
      return recog_107 (x1, insn, pnum_clobbers);

    case 24:
      if (GET_MODE (x2) != E_BLKmode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x4 = XVECEXP (x2, 0, 0);
      if (!rtx_equal_p (x4, operands[0])
          || !
#line 49 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_MEMORY_BARRIER))
        return -1;
      return 2872; /* *memory_barrier */

    case 390:
      switch (pattern129 (x1))
        {
        case 0:
          if (!
#line 157 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3060; /* mve_vrndxq_fv8hf */

        case 1:
          if (!
#line 157 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3061; /* mve_vrndxq_fv4sf */

        default:
          return -1;
        }

    case 391:
      switch (pattern129 (x1))
        {
        case 0:
          if (!
#line 171 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3062; /* mve_vrndq_fv8hf */

        case 1:
          if (!
#line 171 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3063; /* mve_vrndq_fv4sf */

        default:
          return -1;
        }

    case 392:
      switch (pattern129 (x1))
        {
        case 0:
          if (!
#line 185 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3064; /* mve_vrndpq_fv8hf */

        case 1:
          if (!
#line 185 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3065; /* mve_vrndpq_fv4sf */

        default:
          return -1;
        }

    case 393:
      switch (pattern129 (x1))
        {
        case 0:
          if (!
#line 199 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3066; /* mve_vrndnq_fv8hf */

        case 1:
          if (!
#line 199 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3067; /* mve_vrndnq_fv4sf */

        default:
          return -1;
        }

    case 394:
      switch (pattern129 (x1))
        {
        case 0:
          if (!
#line 213 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3068; /* mve_vrndmq_fv8hf */

        case 1:
          if (!
#line 213 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3069; /* mve_vrndmq_fv4sf */

        default:
          return -1;
        }

    case 395:
      switch (pattern129 (x1))
        {
        case 0:
          if (!
#line 227 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3070; /* mve_vrndaq_fv8hf */

        case 1:
          if (!
#line 227 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3071; /* mve_vrndaq_fv4sf */

        default:
          return -1;
        }

    case 396:
      switch (pattern129 (x1))
        {
        case 0:
          if (!
#line 241 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3072; /* mve_vrev64q_fv8hf */

        case 1:
          if (!
#line 241 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3073; /* mve_vrev64q_fv4sf */

        default:
          return -1;
        }

    case 397:
      switch (pattern130 (x1, E_HFmode, E_SFmode))
        {
        case 0:
          if (!
#line 268 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3076; /* mve_vdupq_n_fv8hf */

        case 1:
          if (!
#line 268 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3077; /* mve_vdupq_n_fv4sf */

        default:
          return -1;
        }

    case 398:
      if (GET_MODE (x2) != E_V8HFmode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!s_register_operand (operands[0], E_V8HFmode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!s_register_operand (operands[1], E_V8HFmode)
          || !
#line 295 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3080; /* mve_vrev32q_fv8hf */

    case 399:
      if (GET_MODE (x2) != E_V4SFmode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!s_register_operand (operands[0], E_V4SFmode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!s_register_operand (operands[1], E_V8HFmode)
          || !
#line 308 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3081; /* mve_vcvttq_f32_f16v4sf */

    case 400:
      if (GET_MODE (x2) != E_V4SFmode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!s_register_operand (operands[0], E_V4SFmode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!s_register_operand (operands[1], E_V8HFmode)
          || !
#line 322 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3082; /* mve_vcvtbq_f32_f16v4sf */

    case 401:
      switch (pattern130 (x1, E_V8HImode, E_V4SImode))
        {
        case 0:
          if (!
#line 336 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3083; /* mve_vcvtq_to_f_sv8hf */

        case 1:
          if (!
#line 336 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3085; /* mve_vcvtq_to_f_sv4sf */

        default:
          return -1;
        }

    case 403:
      switch (pattern130 (x1, E_V8HImode, E_V4SImode))
        {
        case 0:
          if (!
#line 336 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3084; /* mve_vcvtq_to_f_uv8hf */

        case 1:
          if (!
#line 336 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3086; /* mve_vcvtq_to_f_uv4sf */

        default:
          return -1;
        }

    case 411:
      switch (pattern132 (x1))
        {
        case 0:
          if (!
#line 350 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3087; /* mve_vrev64q_sv16qi */

        case 1:
          if (!
#line 350 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3089; /* mve_vrev64q_sv8hi */

        case 2:
          if (!
#line 350 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3091; /* mve_vrev64q_sv4si */

        default:
          return -1;
        }

    case 412:
      switch (pattern132 (x1))
        {
        case 0:
          if (!
#line 350 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3088; /* mve_vrev64q_uv16qi */

        case 1:
          if (!
#line 350 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3090; /* mve_vrev64q_uv8hi */

        case 2:
          if (!
#line 350 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3092; /* mve_vrev64q_uv4si */

        default:
          return -1;
        }

    case 425:
      switch (pattern134 (x1, E_V8HFmode, E_V4SFmode))
        {
        case 0:
          if (!
#line 364 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3093; /* mve_vcvtq_from_f_sv8hi */

        case 1:
          if (!
#line 364 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3095; /* mve_vcvtq_from_f_sv4si */

        default:
          return -1;
        }

    case 426:
      switch (pattern134 (x1, E_V8HFmode, E_V4SFmode))
        {
        case 0:
          if (!
#line 364 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3094; /* mve_vcvtq_from_f_uv8hi */

        case 1:
          if (!
#line 364 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3096; /* mve_vcvtq_from_f_uv4si */

        default:
          return -1;
        }

    case 402:
      switch (pattern132 (x1))
        {
        case 0:
          if (!
#line 376 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3097; /* mve_vqnegq_sv16qi */

        case 1:
          if (!
#line 376 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3098; /* mve_vqnegq_sv8hi */

        case 2:
          if (!
#line 376 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3099; /* mve_vqnegq_sv4si */

        default:
          return -1;
        }

    case 413:
      switch (pattern132 (x1))
        {
        case 0:
          if (!
#line 390 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3100; /* mve_vqabsq_sv16qi */

        case 1:
          if (!
#line 390 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3101; /* mve_vqabsq_sv8hi */

        case 2:
          if (!
#line 390 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3102; /* mve_vqabsq_sv4si */

        default:
          return -1;
        }

    case 414:
      switch (pattern135 (x1))
        {
        case 0:
          if (!
#line 437 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3109; /* mve_vdupq_n_uv16qi */

        case 1:
          if (!
#line 437 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3111; /* mve_vdupq_n_uv8hi */

        case 2:
          if (!
#line 437 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3113; /* mve_vdupq_n_uv4si */

        default:
          return -1;
        }

    case 415:
      switch (pattern135 (x1))
        {
        case 0:
          if (!
#line 437 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3110; /* mve_vdupq_n_sv16qi */

        case 1:
          if (!
#line 437 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3112; /* mve_vdupq_n_sv8hi */

        case 2:
          if (!
#line 437 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3114; /* mve_vdupq_n_sv4si */

        default:
          return -1;
        }

    case 416:
      switch (pattern132 (x1))
        {
        case 0:
          if (!
#line 471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3118; /* mve_vclsq_sv16qi */

        case 1:
          if (!
#line 471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3119; /* mve_vclsq_sv8hi */

        case 2:
          if (!
#line 471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3120; /* mve_vclsq_sv4si */

        default:
          return -1;
        }

    case 418:
      switch (pattern136 (x1))
        {
        case 0:
          if (!
#line 485 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3121; /* mve_vaddvq_uv16qi */

        case 1:
          if (!
#line 485 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3123; /* mve_vaddvq_uv8hi */

        case 2:
          if (!
#line 485 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3125; /* mve_vaddvq_uv4si */

        default:
          return -1;
        }

    case 417:
      switch (pattern136 (x1))
        {
        case 0:
          if (!
#line 485 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3122; /* mve_vaddvq_sv16qi */

        case 1:
          if (!
#line 485 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3124; /* mve_vaddvq_sv8hi */

        case 2:
          if (!
#line 485 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3126; /* mve_vaddvq_sv4si */

        default:
          return -1;
        }

    case 419:
      switch (pattern137 (x1))
        {
        case 0:
          if (!
#line 512 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3130; /* mve_vrev32q_uv16qi */

        case 1:
          if (!
#line 512 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3132; /* mve_vrev32q_uv8hi */

        default:
          return -1;
        }

    case 420:
      switch (pattern137 (x1))
        {
        case 0:
          if (!
#line 512 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3131; /* mve_vrev32q_sv16qi */

        case 1:
          if (!
#line 512 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3133; /* mve_vrev32q_sv8hi */

        default:
          return -1;
        }

    case 421:
      switch (pattern134 (x1, E_V16QImode, E_V8HImode))
        {
        case 0:
          if (!
#line 526 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3134; /* mve_vmovltq_uv16qi */

        case 1:
          if (!
#line 526 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3136; /* mve_vmovltq_uv8hi */

        default:
          return -1;
        }

    case 422:
      switch (pattern134 (x1, E_V16QImode, E_V8HImode))
        {
        case 0:
          if (!
#line 526 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3135; /* mve_vmovltq_sv16qi */

        case 1:
          if (!
#line 526 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3137; /* mve_vmovltq_sv8hi */

        default:
          return -1;
        }

    case 423:
      switch (pattern134 (x1, E_V16QImode, E_V8HImode))
        {
        case 0:
          if (!
#line 540 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3138; /* mve_vmovlbq_sv16qi */

        case 1:
          if (!
#line 540 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3140; /* mve_vmovlbq_sv8hi */

        default:
          return -1;
        }

    case 424:
      switch (pattern134 (x1, E_V16QImode, E_V8HImode))
        {
        case 0:
          if (!
#line 540 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3139; /* mve_vmovlbq_uv16qi */

        case 1:
          if (!
#line 540 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3141; /* mve_vmovlbq_uv8hi */

        default:
          return -1;
        }

    case 427:
      switch (pattern134 (x1, E_V8HFmode, E_V4SFmode))
        {
        case 0:
          if (!
#line 554 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3142; /* mve_vcvtpq_sv8hi */

        case 1:
          if (!
#line 554 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3144; /* mve_vcvtpq_sv4si */

        default:
          return -1;
        }

    case 428:
      switch (pattern134 (x1, E_V8HFmode, E_V4SFmode))
        {
        case 0:
          if (!
#line 554 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3143; /* mve_vcvtpq_uv8hi */

        case 1:
          if (!
#line 554 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3145; /* mve_vcvtpq_uv4si */

        default:
          return -1;
        }

    case 429:
      switch (pattern134 (x1, E_V8HFmode, E_V4SFmode))
        {
        case 0:
          if (!
#line 568 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3146; /* mve_vcvtnq_sv8hi */

        case 1:
          if (!
#line 568 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3148; /* mve_vcvtnq_sv4si */

        default:
          return -1;
        }

    case 430:
      switch (pattern134 (x1, E_V8HFmode, E_V4SFmode))
        {
        case 0:
          if (!
#line 568 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3147; /* mve_vcvtnq_uv8hi */

        case 1:
          if (!
#line 568 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3149; /* mve_vcvtnq_uv4si */

        default:
          return -1;
        }

    case 431:
      switch (pattern134 (x1, E_V8HFmode, E_V4SFmode))
        {
        case 0:
          if (!
#line 582 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3150; /* mve_vcvtmq_sv8hi */

        case 1:
          if (!
#line 582 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3152; /* mve_vcvtmq_sv4si */

        default:
          return -1;
        }

    case 432:
      switch (pattern134 (x1, E_V8HFmode, E_V4SFmode))
        {
        case 0:
          if (!
#line 582 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3151; /* mve_vcvtmq_uv8hi */

        case 1:
          if (!
#line 582 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3153; /* mve_vcvtmq_uv4si */

        default:
          return -1;
        }

    case 410:
      switch (pattern134 (x1, E_V8HFmode, E_V4SFmode))
        {
        case 0:
          if (!
#line 596 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3154; /* mve_vcvtaq_uv8hi */

        case 1:
          if (!
#line 596 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3156; /* mve_vcvtaq_uv4si */

        default:
          return -1;
        }

    case 409:
      switch (pattern134 (x1, E_V8HFmode, E_V4SFmode))
        {
        case 0:
          if (!
#line 596 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3155; /* mve_vcvtaq_sv8hi */

        case 1:
          if (!
#line 596 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3157; /* mve_vcvtaq_sv4si */

        default:
          return -1;
        }

    case 408:
      switch (pattern138 (x1))
        {
        case 0:
          if (!
#line 610 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3158; /* mve_vmvnq_n_uv8hi */

        case 1:
          if (!
#line 610 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3160; /* mve_vmvnq_n_uv4si */

        default:
          return -1;
        }

    case 407:
      switch (pattern138 (x1))
        {
        case 0:
          if (!
#line 610 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3159; /* mve_vmvnq_n_sv8hi */

        case 1:
          if (!
#line 610 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3161; /* mve_vmvnq_n_sv4si */

        default:
          return -1;
        }

    case 405:
      if (GET_MODE (x2) != E_V16QImode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!s_register_operand (operands[0], E_V16QImode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!s_register_operand (operands[1], E_V16QImode)
          || !
#line 624 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3162; /* mve_vrev16q_uv16qi */

    case 404:
      if (GET_MODE (x2) != E_V16QImode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!s_register_operand (operands[0], E_V16QImode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!s_register_operand (operands[1], E_V16QImode)
          || !
#line 624 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3163; /* mve_vrev16q_sv16qi */

    case 433:
      if (GET_MODE (x2) != E_DImode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!s_register_operand (operands[0], E_DImode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!s_register_operand (operands[1], E_V4SImode)
          || !
#line 638 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3164; /* mve_vaddlvq_uv4si */

    case 406:
      if (GET_MODE (x2) != E_DImode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!s_register_operand (operands[0], E_DImode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!s_register_operand (operands[1], E_V4SImode)
          || !
#line 638 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3165; /* mve_vaddlvq_sv4si */

    case 434:
      return recog_104 (x1, insn, pnum_clobbers);

    case 436:
      if (GET_MODE (x2) != E_V16BImode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!vpr_register_operand (operands[0], E_V16BImode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!vpr_register_operand (operands[1], E_V16BImode)
          || !
#line 666 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3170; /* mve_vpnotv16bi */

    case 996:
      switch (pattern139 (x1))
        {
        case 0:
          if (!
#line 7098 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4642; /* mve_vstrbq_sv16qi */

        case 1:
          if (!
#line 7098 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4644; /* mve_vstrbq_sv8hi */

        case 2:
          if (!
#line 7098 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4646; /* mve_vstrbq_sv4si */

        default:
          return -1;
        }

    case 997:
      switch (pattern139 (x1))
        {
        case 0:
          if (!
#line 7098 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4643; /* mve_vstrbq_uv16qi */

        case 1:
          if (!
#line 7098 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4645; /* mve_vstrbq_uv8hi */

        case 2:
          if (!
#line 7098 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4647; /* mve_vstrbq_uv4si */

        default:
          return -1;
        }

    case 1000:
      switch (pattern140 (x1))
        {
        case 0:
          if (!
#line 7190 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4662; /* mve_vldrbq_sv16qi */

        case 1:
          if (!
#line 7190 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4664; /* mve_vldrbq_sv8hi */

        case 2:
          if (!
#line 7190 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4666; /* mve_vldrbq_sv4si */

        default:
          return -1;
        }

    case 1001:
      switch (pattern140 (x1))
        {
        case 0:
          if (!
#line 7190 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4663; /* mve_vldrbq_uv16qi */

        case 1:
          if (!
#line 7190 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4665; /* mve_vldrbq_uv8hi */

        case 2:
          if (!
#line 7190 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4667; /* mve_vldrbq_uv4si */

        default:
          return -1;
        }

    case 1007:
      if (GET_MODE (x2) != E_V8HFmode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!s_register_operand (operands[0], E_V8HFmode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!mve_memory_operand (operands[1], E_V8HImode)
          || !
#line 7374 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4698; /* mve_vldrhq_fv8hf */

    case 1012:
      switch (pattern141 (x1))
        {
        case 0:
          if (!
#line 7489 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4715; /* mve_vldrhq_sv8hi */

        case 1:
          if (!
#line 7489 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4717; /* mve_vldrhq_sv4si */

        default:
          return -1;
        }

    case 1013:
      switch (pattern141 (x1))
        {
        case 0:
          if (!
#line 7489 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4716; /* mve_vldrhq_uv8hi */

        case 1:
          if (!
#line 7489 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4718; /* mve_vldrhq_uv4si */

        default:
          return -1;
        }

    case 1014:
      if (GET_MODE (x2) != E_V4SFmode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!s_register_operand (operands[0], E_V4SFmode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!mve_memory_operand (operands[1], E_V4SImode)
          || !
#line 7554 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4724; /* mve_vldrwq_fv4sf */

    case 1015:
      if (GET_MODE (x2) != E_V4SImode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!s_register_operand (operands[0], E_V4SImode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!mve_memory_operand (operands[1], E_V4SImode)
          || !
#line 7573 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4725; /* mve_vldrwq_sv4si */

    case 1016:
      if (GET_MODE (x2) != E_V4SImode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!s_register_operand (operands[0], E_V4SImode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!mve_memory_operand (operands[1], E_V4SImode)
          || !
#line 7573 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4726; /* mve_vldrwq_uv4si */

    case 1032:
      if (GET_MODE (x2) != E_V8HImode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!mve_memory_operand (operands[0], E_V8HImode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!s_register_operand (operands[1], E_V8HFmode)
          || !
#line 8068 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4760; /* mve_vstrhq_fv8hf */

    case 1098:
      switch (pattern142 (x1))
        {
        case 0:
          if (!
#line 8251 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4782; /* mve_vstrhq_sv8hi */

        case 1:
          if (!
#line 8251 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4784; /* mve_vstrhq_sv4si */

        default:
          return -1;
        }

    case 1036:
      switch (pattern142 (x1))
        {
        case 0:
          if (!
#line 8251 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4783; /* mve_vstrhq_uv8hi */

        case 1:
          if (!
#line 8251 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4785; /* mve_vstrhq_uv4si */

        default:
          return -1;
        }

    case 1039:
      if (GET_MODE (x2) != E_V4SImode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!mve_memory_operand (operands[0], E_V4SImode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!s_register_operand (operands[1], E_V4SFmode)
          || !
#line 8270 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4786; /* mve_vstrwq_fv4sf */

    case 1037:
      if (GET_MODE (x2) != E_V4SImode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!mve_memory_operand (operands[0], E_V4SImode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!s_register_operand (operands[1], E_V4SImode)
          || !
#line 8331 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4790; /* mve_vstrwq_sv4si */

    case 1038:
      if (GET_MODE (x2) != E_V4SImode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!mve_memory_operand (operands[0], E_V4SImode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!s_register_operand (operands[1], E_V4SImode)
          || !
#line 8331 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4791; /* mve_vstrwq_uv4si */

    default:
      return -1;
    }
}

static int
recog_238 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  switch (GET_CODE (x3))
    {
    case ZERO_EXTRACT:
      if (pnum_clobbers == NULL
          || GET_MODE (x3) != E_SImode)
        return -1;
      x4 = XEXP (x3, 2);
      if (GET_CODE (x4) != CONST_INT)
        return -1;
      operands[3] = x4;
      if (const_int_operand (operands[3], E_SImode)
          && pattern432 (x2) == 0
          && 
#line 3102 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (INTVAL (operands[3]) >= 0 && INTVAL (operands[3]) < 32
       && INTVAL (operands[2]) > 0 
       && INTVAL (operands[2]) + (INTVAL (operands[3]) & 1) <= 8
       && INTVAL (operands[2]) + INTVAL (operands[3]) <= 32)))
        {
          *pnum_clobbers = 1;
          return 94; /* *ne_zeroextractsi */
        }
      if (XWINT (x4, 0) != 0L
          || pattern432 (x2) != 0
          || !
#line 3140 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      *pnum_clobbers = 1;
      return 95; /* *ne_zeroextractsi_shifted */

    case REG:
    case SUBREG:
      switch (pattern271 (x2))
        {
        case 0:
          if (!
#line 833 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3214; /* mve_vcmpneq_v16qi */

        case 1:
          if (!
#line 833 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3222; /* mve_vcmpneq_v8hi */

        case 2:
          if (!
#line 1924 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3569; /* mve_vcmpneq_fv8hf */

        case 3:
          if (!
#line 833 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3230; /* mve_vcmpneq_v4si */

        case 4:
          if (!
#line 1924 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3575; /* mve_vcmpneq_fv4sf */

        case 5:
          if (!
#line 848 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3238; /* mve_vcmpneq_n_v16qi */

        case 6:
          if (!
#line 848 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3246; /* mve_vcmpneq_n_v8hi */

        case 7:
          if (!
#line 1939 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3581; /* mve_vcmpneq_n_fv8hf */

        case 8:
          if (!
#line 848 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3254; /* mve_vcmpneq_n_v4si */

        case 9:
          if (!
#line 1939 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3587; /* mve_vcmpneq_n_fv4sf */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_239 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  switch (GET_CODE (x3))
    {
    case NE:
      x4 = XEXP (x3, 0);
      if (GET_CODE (x4) != ZERO_EXTRACT
          || GET_MODE (x4) != E_SImode)
        return -1;
      x5 = XEXP (x4, 2);
      if (GET_CODE (x5) != CONST_INT)
        return -1;
      operands[3] = x5;
      if (const_int_operand (operands[3], E_SImode)
          && pattern491 (x1) == 0)
        {
          x6 = XEXP (x2, 1);
          operands[4] = x6;
          if (arm_not_operand (operands[4], E_SImode)
              && 
#line 3168 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM
   && (INTVAL (operands[3]) >= 0 && INTVAL (operands[3]) < 32
       && INTVAL (operands[2]) > 0 
       && INTVAL (operands[2]) + (INTVAL (operands[3]) & 1) <= 8
       && INTVAL (operands[2]) + INTVAL (operands[3]) <= 32)
   && !reg_overlap_mentioned_p (operands[0], operands[4])))
            {
              *pnum_clobbers = 1;
              return 96; /* *ite_ne_zeroextractsi */
            }
        }
      if (XWINT (x5, 0) != 0L
          || pattern491 (x1) != 0)
        return -1;
      x6 = XEXP (x2, 1);
      operands[3] = x6;
      if (!arm_not_operand (operands[3], E_SImode)
          || !
#line 3207 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && !reg_overlap_mentioned_p (operands[0], operands[3])))
        return -1;
      *pnum_clobbers = 1;
      return 97; /* *ite_ne_zeroextractsi_shifted */

    case EQ:
      x7 = XEXP (x3, 1);
      if (pattern352 (x7, 41) != 0)
        return -1;
      x8 = XVECEXP (x7, 0, 0);
      if (GET_CODE (x8) != MEM
          || GET_MODE (x8) != E_SImode)
        return -1;
      x6 = XEXP (x2, 1);
      if (GET_CODE (x6) != LABEL_REF)
        return -1;
      x9 = XEXP (x2, 2);
      if (GET_CODE (x9) != PC)
        return -1;
      x10 = XEXP (x1, 0);
      if (GET_CODE (x10) != PC)
        return -1;
      x4 = XEXP (x3, 0);
      operands[0] = x4;
      if (!memory_operand (operands[0], E_SImode))
        return -1;
      x11 = XEXP (x8, 0);
      operands[1] = x11;
      if (!guard_addr_operand (operands[1], E_SImode))
        return -1;
      x12 = XEXP (x6, 0);
      operands[2] = x12;
      *pnum_clobbers = 3;
      return 310; /* *stack_protect_combined_test_insn */

    default:
      return -1;
    }
}

static int
recog_240 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 2);
  if (GET_CODE (x3) != PC)
    return -1;
  x4 = XEXP (x1, 0);
  if (GET_CODE (x4) != PC)
    return -1;
  x5 = XEXP (x2, 0);
  x6 = XEXP (x5, 0);
  switch (GET_CODE (x6))
    {
    case REG:
    case SUBREG:
      operands[1] = x6;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      x7 = XEXP (x5, 1);
      if (GET_CODE (x7) != NEG
          || GET_MODE (x7) != E_SImode)
        return -1;
      operands[0] = x5;
      x8 = XEXP (x7, 0);
      operands[2] = x8;
      if (!s_register_operand (operands[2], E_SImode))
        return -1;
      x9 = XEXP (x2, 1);
      x10 = XEXP (x9, 0);
      operands[3] = x10;
      if (!
#line 1272 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 970; /* *negated_cbranchsi4 */

    case ZERO_EXTRACT:
      if (pnum_clobbers == NULL
          || GET_MODE (x6) != E_SImode)
        return -1;
      x11 = XEXP (x6, 1);
      if (GET_CODE (x11) != CONST_INT)
        return -1;
      x7 = XEXP (x5, 1);
      if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      operands[0] = x5;
      x12 = XEXP (x6, 0);
      operands[1] = x12;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      x9 = XEXP (x2, 1);
      x10 = XEXP (x9, 0);
      operands[3] = x10;
      if (XWINT (x11, 0) == 1L)
        {
          x13 = XEXP (x6, 2);
          operands[2] = x13;
          if (const_int_operand (operands[2], E_SImode)
              && 
#line 1311 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            {
              *pnum_clobbers = 1;
              return 971; /* *tbit_cbranch */
            }
        }
      x13 = XEXP (x6, 2);
      if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      operands[2] = x11;
      if (!const_int_operand (operands[2], E_SImode)
          || !
#line 1356 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      *pnum_clobbers = 1;
      return 972; /* *tlobits_cbranch */

    case AND:
      if (GET_MODE (x6) != E_SImode)
        return -1;
      x7 = XEXP (x5, 1);
      if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      operands[3] = x5;
      x12 = XEXP (x6, 0);
      operands[0] = x12;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x11 = XEXP (x6, 1);
      operands[1] = x11;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      x9 = XEXP (x2, 1);
      x10 = XEXP (x9, 0);
      operands[2] = x10;
      if (!
#line 1399 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 973; /* *tstsi3_cbranch */

    default:
      return -1;
    }
}

static int
recog_241 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  if (pnum_clobbers != NULL)
    {
      res = recog_239 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  if (!equality_operator (x3, E_VOIDmode))
    return -1;
  x4 = XEXP (x2, 1);
  if (GET_CODE (x4) == LABEL_REF)
    {
      res = recog_240 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  operands[3] = x3;
  x5 = XEXP (x3, 0);
  if (!arm_comparison_operator (x5, E_VOIDmode))
    return -1;
  operands[4] = x5;
  x6 = XEXP (x5, 1);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x7 = XEXP (x3, 1);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x8 = XEXP (x1, 0);
  operands[0] = x8;
  if (!s_register_operand (operands[0], E_SImode)
      || GET_MODE (x2) != E_SImode)
    return -1;
  x9 = XEXP (x5, 0);
  operands[5] = x9;
  if (!cc_register (operands[5], E_VOIDmode))
    return -1;
  operands[1] = x4;
  if (!arm_rhs_operand (operands[1], E_SImode))
    return -1;
  x10 = XEXP (x2, 2);
  operands[2] = x10;
  if (!arm_rhs_operand (operands[2], E_SImode))
    return -1;
  if (
#line 10057 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
    return 337; /* *cond_move */
  if (!
#line 706 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
    return -1;
  return 1028; /* *thumb2_cond_move */
}

static int
recog_242 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != PLUS
      || GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x2, 0);
  operands[6] = x4;
  x5 = XEXP (x4, 0);
  operands[4] = x5;
  x6 = XEXP (x4, 1);
  operands[5] = x6;
  x7 = XEXP (x3, 1);
  operands[3] = x7;
  if (!arm_add_operand (operands[3], E_SImode))
    return -1;
  x8 = XEXP (x2, 2);
  operands[1] = x8;
  if (!arm_rhs_operand (operands[1], E_SImode)
      || !
#line 10857 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
    return -1;
  *pnum_clobbers = 1;
  return 352; /* *ifcompare_plus_move */
}

static int
recog_243 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  if (!s_register_operand (x4, E_SImode))
    return -1;
  x5 = XEXP (x1, 0);
  operands[0] = x5;
  if (!s_register_operand (operands[0], E_SImode)
      || GET_MODE (x2) != E_SImode)
    return -1;
  x6 = XEXP (x3, 1);
  if (!arm_add_operand (x6, E_SImode))
    return -1;
  x7 = XEXP (x2, 1);
  switch (GET_CODE (x7))
    {
    case PLUS:
    case MINUS:
    case AND:
    case IOR:
    case XOR:
      x8 = XEXP (x7, 0);
      if (!s_register_operand (x8, E_SImode))
        return -1;
      operands[2] = x8;
      res = recog_242 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      if (!shiftable_operator (x7, E_SImode))
        return -1;
      x9 = XEXP (x7, 1);
      if (!arm_rhs_operand (x9, E_SImode))
        return -1;
      x10 = XEXP (x2, 2);
      switch (GET_CODE (x10))
        {
        case PLUS:
        case MINUS:
        case AND:
        case IOR:
        case XOR:
          operands[7] = x10;
          if (!shiftable_operator (operands[7], E_SImode))
            return -1;
          operands[9] = x3;
          operands[5] = x4;
          operands[6] = x6;
          operands[8] = x7;
          operands[1] = x8;
          operands[2] = x9;
          x11 = XEXP (x10, 0);
          operands[3] = x11;
          if (!s_register_operand (operands[3], E_SImode))
            return -1;
          x12 = XEXP (x10, 1);
          operands[4] = x12;
          if (!arm_rhs_operand (operands[4], E_SImode)
              || !
#line 10945 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          *pnum_clobbers = 1;
          return 356; /* *ifcompare_arith_arith */

        case NOT:
          if (GET_MODE (x10) != E_SImode)
            return -1;
          operands[6] = x3;
          operands[4] = x4;
          operands[5] = x6;
          operands[7] = x7;
          operands[2] = x8;
          operands[3] = x9;
          x11 = XEXP (x10, 0);
          operands[1] = x11;
          if (!s_register_operand (operands[1], E_SImode)
              || !
#line 11344 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          *pnum_clobbers = 1;
          return 374; /* *ifcompare_arith_not */

        default:
          return -1;
        }

    case CONST_INT:
    case REG:
    case SUBREG:
      operands[1] = x7;
      x10 = XEXP (x2, 2);
      switch (GET_CODE (x10))
        {
        case PLUS:
          if (GET_MODE (x10) != E_SImode)
            return -1;
          operands[6] = x3;
          operands[4] = x4;
          operands[5] = x6;
          if (!arm_rhs_operand (operands[1], E_SImode))
            return -1;
          x11 = XEXP (x10, 0);
          operands[2] = x11;
          if (!s_register_operand (operands[2], E_SImode))
            return -1;
          x12 = XEXP (x10, 1);
          operands[3] = x12;
          if (!arm_add_operand (operands[3], E_SImode)
              || !
#line 10900 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          *pnum_clobbers = 1;
          return 354; /* *ifcompare_move_plus */

        case NOT:
          if (GET_MODE (x10) != E_SImode)
            return -1;
          operands[5] = x3;
          operands[3] = x4;
          operands[4] = x6;
          if (!arm_not_operand (operands[1], E_SImode))
            return -1;
          x11 = XEXP (x10, 0);
          operands[2] = x11;
          if (!s_register_operand (operands[2], E_SImode)
              || !
#line 11111 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          *pnum_clobbers = 1;
          return 362; /* *ifcompare_move_not */

        case MULT:
        case ASHIFT:
        case ROTATE:
        case ASHIFTRT:
        case LSHIFTRT:
        case ROTATERT:
          operands[7] = x10;
          if (!shift_operator (operands[7], E_SImode))
            return -1;
          operands[6] = x3;
          operands[4] = x4;
          operands[5] = x6;
          if (!arm_not_operand (operands[1], E_SImode))
            return -1;
          x11 = XEXP (x10, 0);
          operands[2] = x11;
          if (!s_register_operand (operands[2], E_SImode))
            return -1;
          x12 = XEXP (x10, 1);
          operands[3] = x12;
          if (!arm_rhs_operand (operands[3], E_SImode)
              || !
#line 11224 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          *pnum_clobbers = 1;
          return 368; /* *ifcompare_move_shift */

        case NEG:
          if (GET_MODE (x10) != E_SImode)
            return -1;
          operands[5] = x3;
          operands[3] = x4;
          operands[4] = x6;
          if (!arm_not_operand (operands[1], E_SImode))
            return -1;
          x11 = XEXP (x10, 0);
          operands[2] = x11;
          if (!s_register_operand (operands[2], E_SImode)
              || !
#line 11412 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          *pnum_clobbers = 1;
          return 378; /* *ifcompare_move_neg */

        default:
          return -1;
        }

    case NOT:
      if (GET_MODE (x7) != E_SImode)
        return -1;
      x8 = XEXP (x7, 0);
      if (!s_register_operand (x8, E_SImode))
        return -1;
      x10 = XEXP (x2, 2);
      switch (GET_CODE (x10))
        {
        case CONST_INT:
        case REG:
        case SUBREG:
          operands[1] = x10;
          if (!arm_not_operand (operands[1], E_SImode))
            return -1;
          operands[5] = x3;
          operands[3] = x4;
          operands[4] = x6;
          operands[2] = x8;
          if (!
#line 11146 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          *pnum_clobbers = 1;
          return 364; /* *ifcompare_not_move */

        case PLUS:
        case MINUS:
        case AND:
        case IOR:
        case XOR:
          operands[7] = x10;
          if (!shiftable_operator (operands[7], E_SImode))
            return -1;
          operands[6] = x3;
          operands[4] = x4;
          operands[5] = x6;
          operands[1] = x8;
          x11 = XEXP (x10, 0);
          operands[2] = x11;
          if (!s_register_operand (operands[2], E_SImode))
            return -1;
          x12 = XEXP (x10, 1);
          operands[3] = x12;
          if (!arm_rhs_operand (operands[3], E_SImode)
              || !
#line 11310 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          *pnum_clobbers = 1;
          return 372; /* *ifcompare_not_arith */

        default:
          return -1;
        }

    case MULT:
    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      if (!shift_operator (x7, E_SImode))
        return -1;
      x8 = XEXP (x7, 0);
      if (!s_register_operand (x8, E_SImode))
        return -1;
      x9 = XEXP (x7, 1);
      if (!arm_rhs_operand (x9, E_SImode))
        return -1;
      x10 = XEXP (x2, 2);
      switch (GET_CODE (x10))
        {
        case CONST_INT:
        case REG:
        case SUBREG:
          operands[1] = x10;
          if (!arm_not_operand (operands[1], E_SImode))
            return -1;
          operands[6] = x3;
          operands[4] = x4;
          operands[5] = x6;
          operands[7] = x7;
          operands[2] = x8;
          operands[3] = x9;
          if (!
#line 11181 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          *pnum_clobbers = 1;
          return 366; /* *ifcompare_shift_move */

        case MULT:
        case ASHIFT:
        case ROTATE:
        case ASHIFTRT:
        case LSHIFTRT:
        case ROTATERT:
          operands[9] = x10;
          if (!shift_operator (operands[9], E_SImode))
            return -1;
          operands[7] = x3;
          operands[5] = x4;
          operands[6] = x6;
          operands[8] = x7;
          operands[1] = x8;
          operands[2] = x9;
          x11 = XEXP (x10, 0);
          operands[3] = x11;
          if (!s_register_operand (operands[3], E_SImode))
            return -1;
          x12 = XEXP (x10, 1);
          operands[4] = x12;
          if (!arm_rhs_operand (operands[4], E_SImode)
              || !
#line 11269 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          *pnum_clobbers = 1;
          return 370; /* *ifcompare_shift_shift */

        default:
          return -1;
        }

    case NEG:
      if (GET_MODE (x7) != E_SImode)
        return -1;
      operands[5] = x3;
      operands[3] = x4;
      operands[4] = x6;
      x8 = XEXP (x7, 0);
      operands[2] = x8;
      if (!s_register_operand (operands[2], E_SImode))
        return -1;
      x10 = XEXP (x2, 2);
      operands[1] = x10;
      if (!arm_not_operand (operands[1], E_SImode)
          || !
#line 11376 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      *pnum_clobbers = 1;
      return 376; /* *ifcompare_neg_move */

    default:
      return -1;
    }
}

static int
recog_244 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 1);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x5 = XEXP (x1, 0);
  operands[0] = x5;
  if (!s_register_operand (operands[0], E_SImode)
      || GET_MODE (x2) != E_SImode)
    return -1;
  x6 = XEXP (x2, 1);
  switch (GET_CODE (x6))
    {
    case PLUS:
    case MINUS:
    case AND:
    case IOR:
    case XOR:
      x7 = XEXP (x6, 0);
      if (!s_register_operand (x7, E_SImode))
        return -1;
      operands[2] = x7;
      if (GET_CODE (x6) == PLUS
          && GET_MODE (x6) == E_SImode)
        {
          operands[4] = x3;
          x8 = XEXP (x3, 0);
          operands[5] = x8;
          x9 = XEXP (x6, 1);
          operands[3] = x9;
          if (arm_add_operand (operands[3], E_SImode))
            {
              x10 = XEXP (x2, 2);
              operands[1] = x10;
              if (arm_rhs_operand (operands[1], E_SImode)
                  && 
#line 10873 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return 353; /* *if_plus_move */
            }
        }
      operands[5] = x3;
      operands[6] = x6;
      if (!shiftable_operator (operands[6], E_SImode))
        return -1;
      x9 = XEXP (x6, 1);
      if (!arm_rhs_operand (x9, E_SImode))
        return -1;
      x10 = XEXP (x2, 2);
      switch (GET_CODE (x10))
        {
        case PLUS:
        case MINUS:
        case AND:
        case IOR:
        case XOR:
          operands[7] = x10;
          if (!shiftable_operator (operands[7], E_SImode))
            return -1;
          x8 = XEXP (x3, 0);
          operands[8] = x8;
          operands[1] = x7;
          operands[2] = x9;
          x11 = XEXP (x10, 0);
          operands[3] = x11;
          if (!s_register_operand (operands[3], E_SImode))
            return -1;
          x12 = XEXP (x10, 1);
          operands[4] = x12;
          if (!arm_rhs_operand (operands[4], E_SImode)
              || !
#line 10962 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 357; /* *if_arith_arith */

        case NOT:
          if (GET_MODE (x10) != E_SImode)
            return -1;
          x8 = XEXP (x3, 0);
          operands[4] = x8;
          operands[2] = x7;
          operands[3] = x9;
          x11 = XEXP (x10, 0);
          operands[1] = x11;
          if (!s_register_operand (operands[1], E_SImode)
              || !
#line 11360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 375; /* *if_arith_not */

        default:
          return -1;
        }

    case CONST_INT:
    case REG:
    case SUBREG:
      operands[1] = x6;
      x10 = XEXP (x2, 2);
      switch (GET_CODE (x10))
        {
        case PLUS:
          if (GET_MODE (x10) != E_SImode)
            return -1;
          operands[4] = x3;
          x8 = XEXP (x3, 0);
          operands[5] = x8;
          if (!arm_rhs_operand (operands[1], E_SImode))
            return -1;
          x11 = XEXP (x10, 0);
          operands[2] = x11;
          if (!s_register_operand (operands[2], E_SImode))
            return -1;
          x12 = XEXP (x10, 1);
          operands[3] = x12;
          if (!arm_add_operand (operands[3], E_SImode)
              || !
#line 10916 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 355; /* *if_move_plus */

        case NOT:
          if (GET_MODE (x10) != E_SImode)
            return -1;
          operands[4] = x3;
          x8 = XEXP (x3, 0);
          operands[3] = x8;
          x11 = XEXP (x10, 0);
          operands[2] = x11;
          if (!s_register_operand (operands[2], E_SImode))
            return -1;
          if (arm_not_operand (operands[1], E_SImode)
              && 
#line 11125 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return 363; /* *if_move_not */
          if (!arm_rhs_operand (operands[1], E_SImode)
              || !
#line 11804 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 381; /* *cond_move_not */

        case MULT:
        case ASHIFT:
        case ROTATE:
        case ASHIFTRT:
        case LSHIFTRT:
        case ROTATERT:
          operands[4] = x10;
          if (!shift_operator (operands[4], E_SImode))
            return -1;
          operands[5] = x3;
          x8 = XEXP (x3, 0);
          operands[6] = x8;
          if (!arm_not_operand (operands[1], E_SImode))
            return -1;
          x11 = XEXP (x10, 0);
          operands[2] = x11;
          if (!s_register_operand (operands[2], E_SImode))
            return -1;
          x12 = XEXP (x10, 1);
          operands[3] = x12;
          if (!arm_rhs_operand (operands[3], E_SImode)
              || !
#line 11240 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 369; /* *if_move_shift */

        case NEG:
          if (GET_MODE (x10) != E_SImode)
            return -1;
          operands[4] = x3;
          x8 = XEXP (x3, 0);
          operands[3] = x8;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x11 = XEXP (x10, 0);
          operands[2] = x11;
          if (!s_register_operand (operands[2], E_SImode)
              || !
#line 11426 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 379; /* *if_move_neg */

        default:
          return -1;
        }

    case NOT:
      if (GET_MODE (x6) != E_SImode)
        return -1;
      x7 = XEXP (x6, 0);
      if (!s_register_operand (x7, E_SImode))
        return -1;
      x10 = XEXP (x2, 2);
      switch (GET_CODE (x10))
        {
        case CONST_INT:
        case REG:
        case SUBREG:
          operands[1] = x10;
          if (!arm_not_operand (operands[1], E_SImode))
            return -1;
          operands[4] = x3;
          x8 = XEXP (x3, 0);
          operands[3] = x8;
          operands[2] = x7;
          if (!
#line 11160 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 365; /* *if_not_move */

        case PLUS:
        case MINUS:
        case AND:
        case IOR:
        case XOR:
          operands[6] = x10;
          if (!shiftable_operator (operands[6], E_SImode))
            return -1;
          operands[5] = x3;
          x8 = XEXP (x3, 0);
          operands[4] = x8;
          operands[1] = x7;
          x11 = XEXP (x10, 0);
          operands[2] = x11;
          if (!s_register_operand (operands[2], E_SImode))
            return -1;
          x12 = XEXP (x10, 1);
          operands[3] = x12;
          if (!arm_rhs_operand (operands[3], E_SImode)
              || !
#line 11326 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 373; /* *if_not_arith */

        default:
          return -1;
        }

    case MULT:
    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      if (!shift_operator (x6, E_SImode))
        return -1;
      operands[5] = x3;
      x7 = XEXP (x6, 0);
      if (!s_register_operand (x7, E_SImode))
        return -1;
      x9 = XEXP (x6, 1);
      if (!arm_rhs_operand (x9, E_SImode))
        return -1;
      x10 = XEXP (x2, 2);
      switch (GET_CODE (x10))
        {
        case CONST_INT:
        case REG:
        case SUBREG:
          operands[1] = x10;
          if (!arm_not_operand (operands[1], E_SImode))
            return -1;
          x8 = XEXP (x3, 0);
          operands[6] = x8;
          operands[4] = x6;
          operands[2] = x7;
          operands[3] = x9;
          if (!
#line 11197 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 367; /* *if_shift_move */

        case MULT:
        case ASHIFT:
        case ROTATE:
        case ASHIFTRT:
        case LSHIFTRT:
        case ROTATERT:
          operands[7] = x10;
          if (!shift_operator (operands[7], E_SImode))
            return -1;
          x8 = XEXP (x3, 0);
          operands[8] = x8;
          operands[6] = x6;
          operands[1] = x7;
          operands[2] = x9;
          x11 = XEXP (x10, 0);
          operands[3] = x11;
          if (!s_register_operand (operands[3], E_SImode))
            return -1;
          x12 = XEXP (x10, 1);
          operands[4] = x12;
          if (!arm_rhs_operand (operands[4], E_SImode)
              || !
#line 11287 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 371; /* *if_shift_shift */

        default:
          return -1;
        }

    case NEG:
      if (GET_MODE (x6) != E_SImode)
        return -1;
      operands[4] = x3;
      x8 = XEXP (x3, 0);
      operands[3] = x8;
      x7 = XEXP (x6, 0);
      operands[2] = x7;
      if (!s_register_operand (operands[2], E_SImode))
        return -1;
      x10 = XEXP (x2, 2);
      operands[1] = x10;
      if (!s_register_operand (operands[1], E_SImode)
          || !
#line 11390 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && !TARGET_COND_ARITH))
        return -1;
      return 377; /* *if_neg_move */

    default:
      return -1;
    }
}

static int
recog_245 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  if (!s_register_operand (x4, E_SImode))
    return -1;
  x5 = XEXP (x1, 0);
  operands[0] = x5;
  if (!s_register_operand (operands[0], E_SImode)
      || GET_MODE (x2) != E_SImode)
    return -1;
  operands[6] = x3;
  x6 = XEXP (x3, 1);
  if (!arm_add_operand (x6, E_SImode))
    return -1;
  x7 = XEXP (x2, 1);
  switch (GET_CODE (x7))
    {
    case PLUS:
    case MINUS:
    case AND:
    case IOR:
    case XOR:
      operands[7] = x7;
      if (!shiftable_operator (operands[7], E_SImode))
        return -1;
      operands[2] = x4;
      operands[3] = x6;
      x8 = XEXP (x7, 0);
      operands[4] = x8;
      if (!s_register_operand (operands[4], E_SImode))
        return -1;
      x9 = XEXP (x7, 1);
      operands[5] = x9;
      if (!arm_rhs_operand (operands[5], E_SImode))
        return -1;
      x10 = XEXP (x2, 2);
      operands[1] = x10;
      if (!arm_rhs_operand (operands[1], E_SImode)
          || !
#line 10979 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      *pnum_clobbers = 1;
      return 358; /* *ifcompare_arith_move */

    case CONST_INT:
    case REG:
    case SUBREG:
      operands[1] = x7;
      if (!arm_rhs_operand (operands[1], E_SImode))
        return -1;
      x10 = XEXP (x2, 2);
      if (!shiftable_operator (x10, E_SImode))
        return -1;
      operands[7] = x10;
      operands[4] = x4;
      operands[5] = x6;
      x11 = XEXP (x10, 0);
      operands[2] = x11;
      if (!s_register_operand (operands[2], E_SImode))
        return -1;
      x12 = XEXP (x10, 1);
      operands[3] = x12;
      if (!arm_rhs_operand (operands[3], E_SImode)
          || !
#line 11044 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      *pnum_clobbers = 1;
      return 360; /* *ifcompare_move_arith */

    default:
      return -1;
    }
}

static int
recog_246 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case REG:
    case SUBREG:
      if (pnum_clobbers != NULL)
        {
          res = recog_243 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      if (cc_register (x4, E_VOIDmode))
        {
          res = recog_244 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      if (pnum_clobbers != NULL)
        {
          res = recog_245 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      operands[6] = x4;
      if (!cc_register (operands[6], E_VOIDmode))
        return -1;
      x5 = XEXP (x3, 1);
      if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x6 = XEXP (x1, 0);
      operands[0] = x6;
      if (!s_register_operand (operands[0], E_SImode)
          || GET_MODE (x2) != E_SImode)
        return -1;
      operands[4] = x3;
      x7 = XEXP (x2, 1);
      switch (GET_CODE (x7))
        {
        case PLUS:
        case MINUS:
        case AND:
        case IOR:
        case XOR:
          operands[5] = x7;
          if (!shiftable_operator (operands[5], E_SImode))
            return -1;
          x8 = XEXP (x7, 0);
          operands[2] = x8;
          if (!s_register_operand (operands[2], E_SImode))
            return -1;
          x9 = XEXP (x7, 1);
          operands[3] = x9;
          if (!arm_rhs_operand (operands[3], E_SImode))
            return -1;
          x10 = XEXP (x2, 2);
          operands[1] = x10;
          if (!arm_rhs_operand (operands[1], E_SImode)
              || !
#line 11019 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 359; /* *if_arith_move */

        case CONST_INT:
        case REG:
        case SUBREG:
          operands[1] = x7;
          if (!arm_rhs_operand (operands[1], E_SImode))
            return -1;
          x10 = XEXP (x2, 2);
          if (!shiftable_operator (x10, E_SImode))
            return -1;
          operands[5] = x10;
          x11 = XEXP (x10, 0);
          operands[2] = x11;
          if (!s_register_operand (operands[2], E_SImode))
            return -1;
          x12 = XEXP (x10, 1);
          operands[3] = x12;
          if (!arm_rhs_operand (operands[3], E_SImode)
              || !
#line 11086 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 361; /* *if_move_arith */

        default:
          return -1;
        }

    case PLUS:
      if (pnum_clobbers == NULL
          || GET_MODE (x4) != E_SImode)
        return -1;
      x5 = XEXP (x3, 1);
      if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x7 = XEXP (x2, 1);
      if (GET_CODE (x7) != LABEL_REF)
        return -1;
      x10 = XEXP (x2, 2);
      if (GET_CODE (x10) != PC)
        return -1;
      x6 = XEXP (x1, 0);
      if (GET_CODE (x6) != PC)
        return -1;
      operands[3] = x3;
      x13 = XEXP (x4, 0);
      operands[1] = x13;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      x14 = XEXP (x4, 1);
      operands[2] = x14;
      if (!reg_or_int_operand (operands[2], E_SImode))
        return -1;
      x8 = XEXP (x7, 0);
      operands[4] = x8;
      if (!
#line 1625 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1
   && (GET_CODE (operands[3]) == EQ
       || GET_CODE (operands[3]) == NE
       || GET_CODE (operands[3]) == GE
       || GET_CODE (operands[3]) == LT)))
        return -1;
      *pnum_clobbers = 1;
      return 976; /* *addsi3_cbranch_scratch */

    default:
      return -1;
    }
}

static int
recog_247 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  if (!arm_general_register_operand (operands[0], E_SImode))
    return -1;
  x3 = XEXP (x1, 1);
  if (GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x3, 1);
  if (GET_MODE (x4) != E_SImode)
    return -1;
  x5 = XEXP (x3, 2);
  operands[3] = x5;
  if (!reg_or_zero_operand (operands[3], E_SImode))
    return -1;
  switch (GET_CODE (x4))
    {
    case NOT:
      x6 = XEXP (x4, 0);
      operands[2] = x6;
      if (!arm_general_register_operand (operands[2], E_SImode)
          || !
#line 966 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_COND_ARITH))
        return -1;
      return 1033; /* *thumb2_csinv */

    case PLUS:
      x7 = XEXP (x4, 1);
      if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x6 = XEXP (x4, 0);
      operands[2] = x6;
      if (!arm_general_register_operand (operands[2], E_SImode)
          || !
#line 981 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_COND_ARITH))
        return -1;
      return 1034; /* *thumb2_csinc */

    case NEG:
      x6 = XEXP (x4, 0);
      operands[2] = x6;
      if (!arm_general_register_operand (operands[2], E_SImode)
          || !
#line 995 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_COND_ARITH))
        return -1;
      return 1035; /* *thumb2_csneg */

    default:
      return -1;
    }
}

static int
recog_248 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  if (!cc_register (x4, E_VOIDmode))
    return -1;
  x5 = XEXP (x2, 1);
  switch (GET_CODE (x5))
    {
    case LABEL_REF:
      x6 = XEXP (x2, 2);
      if (GET_CODE (x6) != PC)
        return -1;
      x7 = XEXP (x1, 0);
      if (GET_CODE (x7) != PC)
        return -1;
      operands[1] = x3;
      if (!arm_comparison_operator (operands[1], E_VOIDmode))
        return -1;
      operands[2] = x4;
      x8 = XEXP (x5, 0);
      operands[0] = x8;
      if (!
#line 7960 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 277; /* arm_cond_branch */

    case PC:
      x7 = XEXP (x1, 0);
      if (GET_CODE (x7) != PC
          || !arm_comparison_operator (x3, E_VOIDmode))
        return -1;
      x6 = XEXP (x2, 2);
      switch (GET_CODE (x6))
        {
        case LABEL_REF:
          operands[1] = x3;
          operands[2] = x4;
          x9 = XEXP (x6, 0);
          operands[0] = x9;
          if (!
#line 8013 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 278; /* *arm_cond_branch_reversed */

        case RETURN:
          operands[0] = x3;
          operands[1] = x4;
          if (!
#line 9051 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM  && USE_RETURN_INSN (TRUE)))
            return -1;
          return 301; /* *cond_return_inverted */

        case SIMPLE_RETURN:
          operands[0] = x3;
          operands[1] = x4;
          if (!
#line 9051 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM  && use_simple_return_p ()))
            return -1;
          return 302; /* *cond_simple_return_inverted */

        default:
          return -1;
        }

    case CONST_INT:
    case REG:
    case SUBREG:
      x7 = XEXP (x1, 0);
      operands[0] = x7;
      switch (GET_MODE (operands[0]))
        {
        case E_SFmode:
          if (!s_register_operand (operands[0], E_SFmode)
              || GET_MODE (x2) != E_SFmode
              || !s_register_operand (x5, E_SFmode))
            return -1;
          operands[3] = x5;
          operands[1] = x3;
          if (arm_vsel_comparison_operator (operands[1], E_VOIDmode))
            {
              operands[2] = x4;
              x6 = XEXP (x2, 2);
              operands[4] = x6;
              if (s_register_operand (operands[4], E_SFmode)
                  && 
#line 8429 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
                return 283; /* *cmovsf */
            }
          operands[1] = x5;
          operands[3] = x3;
          if (!arm_comparison_operator (operands[3], E_VOIDmode))
            return -1;
          operands[4] = x4;
          x6 = XEXP (x2, 2);
          operands[2] = x6;
          if (!s_register_operand (operands[2], E_SFmode))
            return -1;
          if (
#line 8556 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && TARGET_SOFT_FLOAT))
            return 287; /* *movsfcc_soft_insn */
          if (
#line 780 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_ARM && TARGET_HARD_FLOAT))
            return 771; /* *movsfcc_vfp */
          if (
#line 803 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && TARGET_VFP_BASE && !arm_restrict_it))
            return 772; /* *thumb2_movsfcc_vfp */
          if (!
#line 520 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && TARGET_SOFT_FLOAT && !TARGET_HAVE_MVE))
            return -1;
          return 1017; /* *thumb2_movsfcc_soft_insn */

        case E_DFmode:
          if (!s_register_operand (operands[0], E_DFmode)
              || GET_MODE (x2) != E_DFmode
              || !s_register_operand (x5, E_DFmode))
            return -1;
          operands[3] = x5;
          operands[1] = x3;
          if (arm_vsel_comparison_operator (operands[1], E_VOIDmode))
            {
              operands[2] = x4;
              x6 = XEXP (x2, 2);
              operands[4] = x6;
              if (s_register_operand (operands[4], E_DFmode)
                  && (
#line 8429 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
                return 284; /* *cmovdf */
            }
          operands[1] = x5;
          operands[3] = x3;
          if (!arm_comparison_operator (operands[3], E_VOIDmode))
            return -1;
          operands[4] = x4;
          x6 = XEXP (x2, 2);
          operands[2] = x6;
          if (!s_register_operand (operands[2], E_DFmode))
            return -1;
          if (
#line 826 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_ARM && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
            return 773; /* *movdfcc_vfp */
          if (!
#line 849 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && TARGET_VFP_BASE && TARGET_VFP_DOUBLE
   && !arm_restrict_it))
            return -1;
          return 774; /* *thumb2_movdfcc_vfp */

        case E_HFmode:
          if (!s_register_operand (operands[0], E_HFmode)
              || GET_MODE (x2) != E_HFmode)
            return -1;
          operands[1] = x3;
          if (!arm_vsel_comparison_operator (operands[1], E_VOIDmode))
            return -1;
          operands[2] = x4;
          operands[3] = x5;
          if (!s_register_operand (operands[3], E_HFmode))
            return -1;
          x6 = XEXP (x2, 2);
          operands[4] = x6;
          if (!s_register_operand (operands[4], E_HFmode)
              || !
#line 8460 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 285; /* *cmovhf */

        case E_SImode:
          if (!s_register_operand (operands[0], E_SImode)
              || GET_MODE (x2) != E_SImode)
            return -1;
          operands[3] = x3;
          if (!arm_comparison_operator (operands[3], E_VOIDmode))
            return -1;
          operands[4] = x4;
          operands[1] = x5;
          if (!arm_not_operand (operands[1], E_SImode))
            return -1;
          x6 = XEXP (x2, 2);
          operands[2] = x6;
          if (!arm_not_operand (operands[2], E_SImode)
              || !
#line 8492 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 286; /* *movsicc_insn */

        default:
          return -1;
        }

    case RETURN:
      x6 = XEXP (x2, 2);
      if (GET_CODE (x6) != PC)
        return -1;
      x7 = XEXP (x1, 0);
      if (GET_CODE (x7) != PC)
        return -1;
      operands[0] = x3;
      if (!arm_comparison_operator (operands[0], E_VOIDmode))
        return -1;
      operands[1] = x4;
      if (!
#line 9029 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM   && USE_RETURN_INSN (TRUE)))
        return -1;
      return 299; /* *cond_return */

    case SIMPLE_RETURN:
      x6 = XEXP (x2, 2);
      if (GET_CODE (x6) != PC)
        return -1;
      x7 = XEXP (x1, 0);
      if (GET_CODE (x7) != PC)
        return -1;
      operands[0] = x3;
      if (!arm_comparison_operator (operands[0], E_VOIDmode))
        return -1;
      operands[1] = x4;
      if (!
#line 9029 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM   && use_simple_return_p ()))
        return -1;
      return 300; /* *cond_simple_return */

    default:
      return -1;
    }
}

static int
recog_249 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 1);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x5 = XEXP (x1, 0);
  operands[0] = x5;
  if (!s_register_operand (operands[0], E_SImode)
      || GET_MODE (x2) != E_SImode)
    return -1;
  x6 = XEXP (x3, 0);
  operands[4] = x6;
  if (!cc_register (operands[4], E_VOIDmode))
    return -1;
  x7 = XEXP (x2, 1);
  operands[1] = x7;
  if (!arm_not_operand (operands[1], E_SImode))
    return -1;
  x8 = XEXP (x2, 2);
  operands[2] = x8;
  if (!arm_not_operand (operands[2], E_SImode)
      || !
#line 442 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
    return -1;
  return 1016; /* *thumb2_movsicc_insn */
}

static int
recog_250 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  switch (GET_CODE (x3))
    {
    case NE:
    case EQ:
      res = recog_241 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    default:
      break;
    }
  if (arm_comparison_operator (x3, E_VOIDmode))
    {
      res = recog_246 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  operands[1] = x3;
  if (arm_comparison_operation (operands[1], E_VOIDmode))
    {
      res = recog_247 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  x4 = XEXP (x3, 1);
  if (x4 == const_int_rtx[MAX_SAVED_CONST_INT + 0])
    {
      res = recog_248 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  if (pnum_clobbers != NULL
      && pattern307 (x1) == 0
      && 
#line 10790 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
    {
      *pnum_clobbers = 1;
      return 351; /* movcond */
    }
  operands[3] = x3;
  if (arm_comparison_operator (operands[3], E_VOIDmode))
    {
      res = recog_249 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  if (pnum_clobbers != NULL
      && pattern307 (x1) == 0
      && 
#line 1012 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !TARGET_COND_ARITH))
    {
      *pnum_clobbers = 1;
      return 1036; /* *thumb2_movcond */
    }
  x5 = XEXP (x2, 1);
  if (GET_CODE (x5) != LABEL_REF)
    return -1;
  x6 = XEXP (x2, 2);
  if (GET_CODE (x6) != PC)
    return -1;
  x7 = XEXP (x1, 0);
  if (GET_CODE (x7) != PC)
    return -1;
  operands[0] = x3;
  x8 = XEXP (x3, 0);
  operands[1] = x8;
  if (s_register_operand (operands[1], E_SImode))
    {
      if (equality_operator (operands[0], E_VOIDmode)
          && x4 == const_int_rtx[MAX_SAVED_CONST_INT + 0])
        {
          x9 = XEXP (x5, 0);
          operands[2] = x9;
          if (
#line 1072 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && TARGET_HAVE_CBZ))
            return 967; /* thumb1_cbz */
        }
      if (arm_comparison_operator (operands[0], E_VOIDmode))
        {
          operands[2] = x4;
          if (thumb1_cmp_operand (operands[2], E_SImode))
            {
              x9 = XEXP (x5, 0);
              operands[3] = x9;
              if (
#line 1155 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                return 968; /* cbranchsi4_insn */
            }
        }
    }
  if (pnum_clobbers == NULL
      || !s_register_operand (x8, E_SImode))
    return -1;
  operands[1] = x8;
  operands[4] = x3;
  if (arm_comparison_operator (operands[4], E_VOIDmode))
    {
      operands[2] = x4;
      if (thumb1_cmpneg_operand (operands[2], E_SImode))
        {
          x9 = XEXP (x5, 0);
          operands[3] = x9;
          if (
#line 1235 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            {
              *pnum_clobbers = 1;
              return 969; /* cbranchsi4_scratch */
            }
        }
    }
  operands[0] = x8;
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x9 = XEXP (x5, 0);
  operands[1] = x9;
  switch (GET_CODE (x3))
    {
    case EQ:
      if (!
#line 1467 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return -1;
      *pnum_clobbers = 1;
      return 1057; /* *thumb2_cbz */

    case NE:
      if (!
#line 1491 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return -1;
      *pnum_clobbers = 1;
      return 1058; /* *thumb2_cbnz */

    default:
      return -1;
    }
}

static int
recog_251 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  switch (GET_CODE (x3))
    {
    case REG:
    case SUBREG:
      operands[1] = x3;
      x4 = XEXP (x2, 1);
      switch (GET_CODE (x4))
        {
        case CONST_INT:
          if (s_register_operand (operands[0], E_SImode)
              && GET_MODE (x2) == E_SImode
              && s_register_operand (operands[1], E_SImode))
            {
              switch (XWINT (x4, 0))
                {
                case 0L:
                  if (
#line 4053 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                    return 117; /* *smax_0 */
                  break;

                case -1L:
                  if (
#line 4063 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                    return 118; /* *smax_m1 */
                  break;

                default:
                  break;
                }
            }
          break;

        case REG:
        case SUBREG:
          switch (pattern385 (x2))
            {
            case 0:
              if (register_operand (operands[0], E_V2SImode)
                  && register_operand (operands[1], E_V2SImode)
                  && register_operand (operands[2], E_V2SImode)
                  && 
#line 903 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 596; /* *smaxv2si3_iwmmxt */
              if (s_register_operand (operands[0], E_V2SImode)
                  && s_register_operand (operands[1], E_V2SImode)
                  && s_register_operand (operands[2], E_V2SImode)
                  && 
#line 842 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1350; /* *smaxv2si3_neon */
              break;

            case 1:
              if (register_operand (operands[0], E_V4HImode)
                  && register_operand (operands[1], E_V4HImode)
                  && register_operand (operands[2], E_V4HImode)
                  && 
#line 903 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 597; /* *smaxv4hi3_iwmmxt */
              if (s_register_operand (operands[0], E_V4HImode)
                  && s_register_operand (operands[1], E_V4HImode)
                  && s_register_operand (operands[2], E_V4HImode)
                  && 
#line 842 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1348; /* *smaxv4hi3_neon */
              break;

            case 2:
              if (register_operand (operands[0], E_V8QImode)
                  && register_operand (operands[1], E_V8QImode)
                  && register_operand (operands[2], E_V8QImode)
                  && 
#line 903 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 598; /* *smaxv8qi3_iwmmxt */
              if (s_register_operand (operands[0], E_V8QImode)
                  && s_register_operand (operands[1], E_V8QImode)
                  && s_register_operand (operands[2], E_V8QImode)
                  && 
#line 842 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1346; /* *smaxv8qi3_neon */
              break;

            case 3:
              if (
#line 2070 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
                return 908; /* smaxsf3 */
              break;

            case 4:
              if ((
#line 2070 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
                return 909; /* smaxdf3 */
              break;

            case 5:
              if (
#line 842 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1347; /* *smaxv16qi3_neon */
              if (
#line 1158 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return 3336; /* mve_vmaxq_sv16qi */
              break;

            case 6:
              if (
#line 842 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1349; /* *smaxv8hi3_neon */
              if (
#line 1158 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return 3337; /* mve_vmaxq_sv8hi */
              break;

            case 7:
              if (
#line 842 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1351; /* *smaxv4si3_neon */
              if (
#line 1158 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return 3338; /* mve_vmaxq_sv4si */
              break;

            case 8:
              if (
#line 842 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1352; /* *smaxv2sf3_neon */
              break;

            case 9:
              if (
#line 842 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1353; /* *smaxv4sf3_neon */
              if (
#line 2057 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
                return 3609; /* mve_vmaxnmq_fv4sf */
              break;

            case 10:
              if (
#line 2057 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
                return 3608; /* mve_vmaxnmq_fv8hf */
              break;

            default:
              break;
            }
          break;

        default:
          break;
        }
      if (pnum_clobbers == NULL
          || pattern386 (x2) != 0
          || !
#line 4074 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      *pnum_clobbers = 1;
      return 119; /* *arm_smax_insn */

    case SMIN:
      switch (pattern308 (x2))
        {
        case 0:
          if (!
#line 4463 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6 && !ARM_Q_BIT_READ
   && arm_sat_operator_match (operands[2], operands[1], NULL, NULL)))
            return -1;
          return 135; /* satsi_smax */

        case 1:
          if (!
#line 4489 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6 && !ARM_Q_BIT_READ
   && arm_sat_operator_match (operands[2], operands[1], NULL, NULL)))
            return -1;
          return 138; /* *satsi_smax_shift */

        default:
          return -1;
        }

    case VEC_SELECT:
      switch (pattern309 (x2))
        {
        case 0:
          if (!
#line 1080 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1401; /* quad_halves_smaxv4si */

        case 1:
          if (!
#line 1093 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4SF_ARITH))
            return -1;
          return 1406; /* quad_halves_smaxv4sf */

        case 2:
          if (!
#line 1108 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1409; /* quad_halves_smaxv8hi */

        case 3:
          if (!
#line 1127 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1414; /* quad_halves_smaxv16qi */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_252 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  switch (GET_CODE (x3))
    {
    case REG:
    case SUBREG:
      operands[1] = x3;
      x4 = XEXP (x2, 1);
      switch (GET_CODE (x4))
        {
        case CONST_INT:
          if (XWINT (x4, 0) == 0L
              && s_register_operand (operands[0], E_SImode)
              && GET_MODE (x2) == E_SImode
              && s_register_operand (operands[1], E_SImode)
              && 
#line 4113 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return 120; /* *smin_0 */
          break;

        case REG:
        case SUBREG:
          switch (pattern385 (x2))
            {
            case 0:
              if (register_operand (operands[0], E_V2SImode)
                  && register_operand (operands[1], E_V2SImode)
                  && register_operand (operands[2], E_V2SImode)
                  && 
#line 923 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 602; /* *sminv2si3_iwmmxt */
              if (s_register_operand (operands[0], E_V2SImode)
                  && s_register_operand (operands[1], E_V2SImode)
                  && s_register_operand (operands[2], E_V2SImode)
                  && 
#line 830 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1342; /* *sminv2si3_neon */
              break;

            case 1:
              if (register_operand (operands[0], E_V4HImode)
                  && register_operand (operands[1], E_V4HImode)
                  && register_operand (operands[2], E_V4HImode)
                  && 
#line 923 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 603; /* *sminv4hi3_iwmmxt */
              if (s_register_operand (operands[0], E_V4HImode)
                  && s_register_operand (operands[1], E_V4HImode)
                  && s_register_operand (operands[2], E_V4HImode)
                  && 
#line 830 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1340; /* *sminv4hi3_neon */
              break;

            case 2:
              if (register_operand (operands[0], E_V8QImode)
                  && register_operand (operands[1], E_V8QImode)
                  && register_operand (operands[2], E_V8QImode)
                  && 
#line 923 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 604; /* *sminv8qi3_iwmmxt */
              if (s_register_operand (operands[0], E_V8QImode)
                  && s_register_operand (operands[1], E_V8QImode)
                  && s_register_operand (operands[2], E_V8QImode)
                  && 
#line 830 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1338; /* *sminv8qi3_neon */
              break;

            case 3:
              if (
#line 2080 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
                return 910; /* sminsf3 */
              break;

            case 4:
              if ((
#line 2080 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
                return 911; /* smindf3 */
              break;

            case 5:
              if (
#line 830 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1339; /* *sminv16qi3_neon */
              if (
#line 1228 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return 3354; /* mve_vminq_sv16qi */
              break;

            case 6:
              if (
#line 830 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1341; /* *sminv8hi3_neon */
              if (
#line 1228 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return 3355; /* mve_vminq_sv8hi */
              break;

            case 7:
              if (
#line 830 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1343; /* *sminv4si3_neon */
              if (
#line 1228 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return 3356; /* mve_vminq_sv4si */
              break;

            case 8:
              if (
#line 830 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1344; /* *sminv2sf3_neon */
              break;

            case 9:
              if (
#line 830 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1345; /* *sminv4sf3_neon */
              if (
#line 2116 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
                return 3617; /* mve_vminnmq_fv4sf */
              break;

            case 10:
              if (
#line 2116 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
                return 3616; /* mve_vminnmq_fv8hf */
              break;

            default:
              break;
            }
          break;

        default:
          break;
        }
      if (pnum_clobbers == NULL
          || pattern386 (x2) != 0
          || !
#line 4124 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      *pnum_clobbers = 1;
      return 121; /* *arm_smin_insn */

    case SMAX:
      switch (pattern308 (x2))
        {
        case 0:
          if (!
#line 4463 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6 && !ARM_Q_BIT_READ
   && arm_sat_operator_match (operands[1], operands[2], NULL, NULL)))
            return -1;
          return 133; /* satsi_smin */

        case 1:
          if (!
#line 4489 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6 && !ARM_Q_BIT_READ
   && arm_sat_operator_match (operands[1], operands[2], NULL, NULL)))
            return -1;
          return 137; /* *satsi_smin_shift */

        default:
          return -1;
        }

    case VEC_SELECT:
      switch (pattern309 (x2))
        {
        case 0:
          if (!
#line 1080 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1400; /* quad_halves_sminv4si */

        case 1:
          if (!
#line 1093 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4SF_ARITH))
            return -1;
          return 1405; /* quad_halves_sminv4sf */

        case 2:
          if (!
#line 1108 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1408; /* quad_halves_sminv8hi */

        case 3:
          if (!
#line 1127 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1413; /* quad_halves_sminv16qi */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_253 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  switch (XVECLEN (x3, 0))
    {
    case 2:
      x4 = XVECEXP (x3, 0, 0);
      operands[2] = x4;
      x5 = XVECEXP (x3, 0, 1);
      operands[3] = x5;
      switch (XINT (x3, 1))
        {
        case 370:
          switch (pattern493 (x2))
            {
            case 0:
              if (!(
#line 2853 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 153 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                return -1;
              return 1923; /* neon_vcmla0v4hf */

            case 1:
              if (register_operand (operands[0], E_V8HFmode)
                  && register_operand (operands[1], E_V8HFmode)
                  && register_operand (operands[2], E_V8HFmode)
                  && register_operand (operands[3], E_V8HFmode)
                  && (
#line 2853 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 154 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                return 1927; /* neon_vcmla0v8hf */
              if (!s_register_operand (operands[0], E_V8HFmode)
                  || !reg_or_zero_operand (operands[1], E_V8HFmode)
                  || !s_register_operand (operands[2], E_V8HFmode)
                  || !s_register_operand (operands[3], E_V8HFmode)
                  || !
#line 3737 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
                return -1;
              return 3978; /* mve_vcmlaqv8hf */

            case 2:
              if (!
#line 2853 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1931; /* neon_vcmla0v2sf */

            case 3:
              if (register_operand (operands[0], E_V4SFmode)
                  && register_operand (operands[1], E_V4SFmode)
                  && register_operand (operands[2], E_V4SFmode)
                  && register_operand (operands[3], E_V4SFmode)
                  && 
#line 2853 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return 1935; /* neon_vcmla0v4sf */
              if (!s_register_operand (operands[0], E_V4SFmode)
                  || !reg_or_zero_operand (operands[1], E_V4SFmode)
                  || !s_register_operand (operands[2], E_V4SFmode)
                  || !s_register_operand (operands[3], E_V4SFmode)
                  || !
#line 3737 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
                return -1;
              return 3982; /* mve_vcmlaqv4sf */

            default:
              return -1;
            }

        case 371:
          switch (pattern493 (x2))
            {
            case 0:
              if (!(
#line 2853 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 153 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                return -1;
              return 1924; /* neon_vcmla90v4hf */

            case 1:
              if (register_operand (operands[0], E_V8HFmode)
                  && register_operand (operands[1], E_V8HFmode)
                  && register_operand (operands[2], E_V8HFmode)
                  && register_operand (operands[3], E_V8HFmode)
                  && (
#line 2853 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 154 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                return 1928; /* neon_vcmla90v8hf */
              if (!s_register_operand (operands[0], E_V8HFmode)
                  || !reg_or_zero_operand (operands[1], E_V8HFmode)
                  || !s_register_operand (operands[2], E_V8HFmode)
                  || !s_register_operand (operands[3], E_V8HFmode)
                  || !
#line 3737 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
                return -1;
              return 3979; /* mve_vcmlaq_rot90v8hf */

            case 2:
              if (!
#line 2853 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1932; /* neon_vcmla90v2sf */

            case 3:
              if (register_operand (operands[0], E_V4SFmode)
                  && register_operand (operands[1], E_V4SFmode)
                  && register_operand (operands[2], E_V4SFmode)
                  && register_operand (operands[3], E_V4SFmode)
                  && 
#line 2853 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return 1936; /* neon_vcmla90v4sf */
              if (!s_register_operand (operands[0], E_V4SFmode)
                  || !reg_or_zero_operand (operands[1], E_V4SFmode)
                  || !s_register_operand (operands[2], E_V4SFmode)
                  || !s_register_operand (operands[3], E_V4SFmode)
                  || !
#line 3737 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
                return -1;
              return 3983; /* mve_vcmlaq_rot90v4sf */

            default:
              return -1;
            }

        case 372:
          switch (pattern493 (x2))
            {
            case 0:
              if (!(
#line 2853 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 153 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                return -1;
              return 1925; /* neon_vcmla180v4hf */

            case 1:
              if (register_operand (operands[0], E_V8HFmode)
                  && register_operand (operands[1], E_V8HFmode)
                  && register_operand (operands[2], E_V8HFmode)
                  && register_operand (operands[3], E_V8HFmode)
                  && (
#line 2853 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 154 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                return 1929; /* neon_vcmla180v8hf */
              if (!s_register_operand (operands[0], E_V8HFmode)
                  || !reg_or_zero_operand (operands[1], E_V8HFmode)
                  || !s_register_operand (operands[2], E_V8HFmode)
                  || !s_register_operand (operands[3], E_V8HFmode)
                  || !
#line 3737 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
                return -1;
              return 3980; /* mve_vcmlaq_rot180v8hf */

            case 2:
              if (!
#line 2853 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1933; /* neon_vcmla180v2sf */

            case 3:
              if (register_operand (operands[0], E_V4SFmode)
                  && register_operand (operands[1], E_V4SFmode)
                  && register_operand (operands[2], E_V4SFmode)
                  && register_operand (operands[3], E_V4SFmode)
                  && 
#line 2853 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return 1937; /* neon_vcmla180v4sf */
              if (!s_register_operand (operands[0], E_V4SFmode)
                  || !reg_or_zero_operand (operands[1], E_V4SFmode)
                  || !s_register_operand (operands[2], E_V4SFmode)
                  || !s_register_operand (operands[3], E_V4SFmode)
                  || !
#line 3737 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
                return -1;
              return 3984; /* mve_vcmlaq_rot180v4sf */

            default:
              return -1;
            }

        case 373:
          switch (pattern493 (x2))
            {
            case 0:
              if (!(
#line 2853 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 153 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                return -1;
              return 1926; /* neon_vcmla270v4hf */

            case 1:
              if (register_operand (operands[0], E_V8HFmode)
                  && register_operand (operands[1], E_V8HFmode)
                  && register_operand (operands[2], E_V8HFmode)
                  && register_operand (operands[3], E_V8HFmode)
                  && (
#line 2853 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 154 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                return 1930; /* neon_vcmla270v8hf */
              if (!s_register_operand (operands[0], E_V8HFmode)
                  || !reg_or_zero_operand (operands[1], E_V8HFmode)
                  || !s_register_operand (operands[2], E_V8HFmode)
                  || !s_register_operand (operands[3], E_V8HFmode)
                  || !
#line 3737 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
                return -1;
              return 3981; /* mve_vcmlaq_rot270v8hf */

            case 2:
              if (!
#line 2853 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1934; /* neon_vcmla270v2sf */

            case 3:
              if (register_operand (operands[0], E_V4SFmode)
                  && register_operand (operands[1], E_V4SFmode)
                  && register_operand (operands[2], E_V4SFmode)
                  && register_operand (operands[3], E_V4SFmode)
                  && 
#line 2853 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return 1938; /* neon_vcmla270v4sf */
              if (!s_register_operand (operands[0], E_V4SFmode)
                  || !reg_or_zero_operand (operands[1], E_V4SFmode)
                  || !s_register_operand (operands[2], E_V4SFmode)
                  || !s_register_operand (operands[3], E_V4SFmode)
                  || !
#line 3737 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
                return -1;
              return 3985; /* mve_vcmlaq_rot270v4sf */

            default:
              return -1;
            }

        case 362:
          switch (GET_MODE (operands[0]))
            {
            case E_V2SFmode:
              if (pattern519 (x2, E_V4BFmode, E_V2SFmode) != 0
                  || !
#line 6348 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
                return -1;
              return 2828; /* neon_vbfdotv2sf */

            case E_V4SFmode:
              if (pattern519 (x2, E_V8BFmode, E_V4SFmode) != 0
                  || !
#line 6348 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
                return -1;
              return 2829; /* neon_vbfdotv4sf */

            default:
              return -1;
            }

        case 386:
          if (pattern494 (x2) != 0
              || !
#line 6472 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
            return -1;
          return 2843; /* neon_vmmlav8bf */

        case 387:
          if (pattern494 (x2) != 0
              || !
#line 6483 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
            return -1;
          return 2844; /* neon_vfmabv8bf */

        case 388:
          if (pattern494 (x2) != 0
              || !
#line 6483 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
            return -1;
          return 2845; /* neon_vfmatv8bf */

        default:
          return -1;
        }

    case 3:
      x4 = XVECEXP (x3, 0, 0);
      operands[2] = x4;
      x5 = XVECEXP (x3, 0, 1);
      operands[3] = x5;
      x6 = XVECEXP (x3, 0, 2);
      operands[4] = x6;
      switch (XINT (x3, 1))
        {
        case 370:
          switch (pattern520 (x2))
            {
            case 0:
              if (!(
#line 2865 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 153 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                return -1;
              return 1939; /* neon_vcmla_lane0v4hf */

            case 1:
              if (!
#line 2880 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1959; /* neon_vcmla_laneq0v4hf */

            case 2:
              if (!(
#line 2865 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 154 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                return -1;
              return 1943; /* neon_vcmla_lane0v8hf */

            case 3:
              if (!
#line 2895 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1963; /* neon_vcmlaq_lane0v8hf */

            case 4:
              if (!
#line 2865 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1947; /* neon_vcmla_lane0v2sf */

            case 5:
              if (!
#line 2880 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1955; /* neon_vcmla_laneq0v2sf */

            case 6:
              if (!
#line 2865 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1951; /* neon_vcmla_lane0v4sf */

            case 7:
              if (!
#line 2895 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1967; /* neon_vcmlaq_lane0v4sf */

            default:
              return -1;
            }

        case 371:
          switch (pattern520 (x2))
            {
            case 0:
              if (!(
#line 2865 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 153 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                return -1;
              return 1940; /* neon_vcmla_lane90v4hf */

            case 1:
              if (!
#line 2880 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1960; /* neon_vcmla_laneq90v4hf */

            case 2:
              if (!(
#line 2865 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 154 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                return -1;
              return 1944; /* neon_vcmla_lane90v8hf */

            case 3:
              if (!
#line 2895 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1964; /* neon_vcmlaq_lane90v8hf */

            case 4:
              if (!
#line 2865 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1948; /* neon_vcmla_lane90v2sf */

            case 5:
              if (!
#line 2880 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1956; /* neon_vcmla_laneq90v2sf */

            case 6:
              if (!
#line 2865 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1952; /* neon_vcmla_lane90v4sf */

            case 7:
              if (!
#line 2895 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1968; /* neon_vcmlaq_lane90v4sf */

            default:
              return -1;
            }

        case 372:
          switch (pattern520 (x2))
            {
            case 0:
              if (!(
#line 2865 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 153 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                return -1;
              return 1941; /* neon_vcmla_lane180v4hf */

            case 1:
              if (!
#line 2880 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1961; /* neon_vcmla_laneq180v4hf */

            case 2:
              if (!(
#line 2865 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 154 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                return -1;
              return 1945; /* neon_vcmla_lane180v8hf */

            case 3:
              if (!
#line 2895 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1965; /* neon_vcmlaq_lane180v8hf */

            case 4:
              if (!
#line 2865 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1949; /* neon_vcmla_lane180v2sf */

            case 5:
              if (!
#line 2880 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1957; /* neon_vcmla_laneq180v2sf */

            case 6:
              if (!
#line 2865 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1953; /* neon_vcmla_lane180v4sf */

            case 7:
              if (!
#line 2895 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1969; /* neon_vcmlaq_lane180v4sf */

            default:
              return -1;
            }

        case 373:
          switch (pattern520 (x2))
            {
            case 0:
              if (!(
#line 2865 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 153 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                return -1;
              return 1942; /* neon_vcmla_lane270v4hf */

            case 1:
              if (!
#line 2880 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1962; /* neon_vcmla_laneq270v4hf */

            case 2:
              if (!(
#line 2865 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 154 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                return -1;
              return 1946; /* neon_vcmla_lane270v8hf */

            case 3:
              if (!
#line 2895 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1966; /* neon_vcmlaq_lane270v8hf */

            case 4:
              if (!
#line 2865 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1950; /* neon_vcmla_lane270v2sf */

            case 5:
              if (!
#line 2880 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1958; /* neon_vcmla_laneq270v2sf */

            case 6:
              if (!
#line 2865 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1954; /* neon_vcmla_lane270v4sf */

            case 7:
              if (!
#line 2895 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1970; /* neon_vcmlaq_lane270v4sf */

            default:
              return -1;
            }

        case 362:
          if (!immediate_operand (operands[4], E_SImode))
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case E_V2SFmode:
              switch (pattern563 (x2, E_V4BFmode, E_V2SFmode))
                {
                case 0:
                  if (!
#line 6361 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
                    return -1;
                  return 2830; /* neon_vbfdot_lanev4bfv2sf */

                case 1:
                  if (!
#line 6374 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
                    return -1;
                  return 2832; /* neon_vbfdot_lanev8bfv2sf */

                default:
                  return -1;
                }

            case E_V4SFmode:
              switch (pattern563 (x2, E_V8BFmode, E_V4SFmode))
                {
                case 0:
                  if (!
#line 6361 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
                    return -1;
                  return 2831; /* neon_vbfdot_lanev4bfv4sf */

                case 1:
                  if (!
#line 6374 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
                    return -1;
                  return 2833; /* neon_vbfdot_lanev8bfv4sf */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case 387:
          if (pattern521 (x2) != 0
              || !
#line 6495 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
            return -1;
          return 2846; /* neon_vfmab_lanev8bf */

        case 388:
          if (pattern521 (x2) != 0
              || !
#line 6495 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
            return -1;
          return 2847; /* neon_vfmat_lanev8bf */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_254 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24, x25;
  rtx x26, x27, x28, x29, x30;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  operands[1] = x3;
  x4 = XEXP (x2, 1);
  switch (GET_CODE (x4))
    {
    case CONST_INT:
    case REG:
    case SUBREG:
      operands[2] = x4;
      switch (GET_MODE (operands[0]))
        {
        case E_SImode:
          if (pattern410 (x2) != 0
              || !
#line 930 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 7; /* *arm_addsi3 */

        case E_V2SImode:
          if (GET_MODE (x2) != E_V2SImode)
            return -1;
          if (register_operand (operands[0], E_V2SImode)
              && register_operand (operands[1], E_V2SImode)
              && register_operand (operands[2], E_V2SImode)
              && 
#line 341 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 545; /* *addv2si3_iwmmxt */
          if (!s_register_operand (operands[0], E_V2SImode)
              || !s_register_operand (operands[1], E_V2SImode)
              || !s_register_operand (operands[2], E_V2SImode)
              || !
#line 470 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V2SI_ARITH))
            return -1;
          return 1146; /* *addv2si3_neon */

        case E_V4HImode:
          if (GET_MODE (x2) != E_V4HImode)
            return -1;
          if (register_operand (operands[0], E_V4HImode)
              && register_operand (operands[1], E_V4HImode)
              && register_operand (operands[2], E_V4HImode)
              && 
#line 341 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 546; /* *addv4hi3_iwmmxt */
          if (!s_register_operand (operands[0], E_V4HImode)
              || !s_register_operand (operands[1], E_V4HImode)
              || !s_register_operand (operands[2], E_V4HImode)
              || !
#line 470 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4HI_ARITH))
            return -1;
          return 1144; /* *addv4hi3_neon */

        case E_V8QImode:
          if (GET_MODE (x2) != E_V8QImode)
            return -1;
          if (register_operand (operands[0], E_V8QImode)
              && register_operand (operands[1], E_V8QImode)
              && register_operand (operands[2], E_V8QImode)
              && 
#line 341 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 547; /* *addv8qi3_iwmmxt */
          if (!s_register_operand (operands[0], E_V8QImode)
              || !s_register_operand (operands[1], E_V8QImode)
              || !s_register_operand (operands[2], E_V8QImode)
              || !
#line 470 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V8QI_ARITH))
            return -1;
          return 1142; /* *addv8qi3_neon */

        case E_HFmode:
          if (pattern1 (x2, E_HFmode) != 0
              || !
#line 996 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 788; /* addhf3 */

        case E_SFmode:
          if (pattern1 (x2, E_SFmode) != 0
              || !
#line 1006 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
            return -1;
          return 789; /* *addsf3_vfp */

        case E_DFmode:
          if (pattern1 (x2, E_DFmode) != 0
              || !
#line 1016 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
            return -1;
          return 790; /* *adddf3_vfp */

        case E_DImode:
          if (pnum_clobbers == NULL
              || pattern384 (x2, E_DImode) != 0
              || !
#line 52 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return -1;
          *pnum_clobbers = 1;
          return 934; /* *thumb1_adddi3 */

        case E_V16QImode:
          if (pattern1 (x2, E_V16QImode) != 0)
            return -1;
          if (
#line 470 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V16QI_ARITH))
            return 1143; /* *addv16qi3_neon */
          if (!
#line 8939 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4822; /* mve_vaddqv16qi */

        case E_V8HImode:
          if (pattern1 (x2, E_V8HImode) != 0)
            return -1;
          if (
#line 470 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V8HI_ARITH))
            return 1145; /* *addv8hi3_neon */
          if (!
#line 8939 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4823; /* mve_vaddqv8hi */

        case E_V4SImode:
          if (pattern1 (x2, E_V4SImode) != 0)
            return -1;
          if (
#line 470 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4SI_ARITH))
            return 1147; /* *addv4si3_neon */
          if (!
#line 8939 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4824; /* mve_vaddqv4si */

        case E_V4HFmode:
          if (pattern1 (x2, E_V4HFmode) != 0
              || !
#line 470 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4HF_ARITH))
            return -1;
          return 1148; /* *addv4hf3_neon */

        case E_V8HFmode:
          if (pattern1 (x2, E_V8HFmode) != 0)
            return -1;
          if (
#line 470 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V8HF_ARITH))
            return 1149; /* *addv8hf3_neon */
          if (!
#line 8953 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4825; /* mve_vaddq_fv8hf */

        case E_V2SFmode:
          if (pattern1 (x2, E_V2SFmode) != 0
              || !
#line 470 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V2SF_ARITH))
            return -1;
          return 1150; /* *addv2sf3_neon */

        case E_V4SFmode:
          if (pattern1 (x2, E_V4SFmode) != 0)
            return -1;
          if (
#line 470 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4SF_ARITH))
            return 1151; /* *addv4sf3_neon */
          if (!
#line 8953 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4826; /* mve_vaddq_fv4sf */

        case E_V2DImode:
          if (pattern1 (x2, E_V2DImode) != 0
              || !
#line 470 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V2DI_ARITH))
            return -1;
          return 1152; /* *addv2di3_neon */

        case E_QQmode:
          if (pattern1 (x2, E_QQmode) != 0
              || !
#line 25 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 2980; /* addqq3 */

        case E_HQmode:
          if (pattern1 (x2, E_HQmode) != 0
              || !
#line 25 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 2981; /* addhq3 */

        case E_SQmode:
          if (pattern1 (x2, E_SQmode) != 0
              || !
#line 25 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 2982; /* addsq3 */

        case E_UQQmode:
          if (pattern1 (x2, E_UQQmode) != 0
              || !
#line 25 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 2983; /* adduqq3 */

        case E_UHQmode:
          if (pattern1 (x2, E_UHQmode) != 0
              || !
#line 25 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 2984; /* adduhq3 */

        case E_USQmode:
          if (pattern1 (x2, E_USQmode) != 0
              || !
#line 25 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 2985; /* addusq3 */

        case E_HAmode:
          if (pattern1 (x2, E_HAmode) != 0
              || !
#line 25 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 2986; /* addha3 */

        case E_SAmode:
          if (pattern1 (x2, E_SAmode) != 0
              || !
#line 25 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 2987; /* addsa3 */

        case E_UHAmode:
          if (pattern1 (x2, E_UHAmode) != 0
              || !
#line 25 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 2988; /* adduha3 */

        case E_USAmode:
          if (pattern1 (x2, E_USAmode) != 0
              || !
#line 25 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 2989; /* addusa3 */

        case E_V4QQmode:
          if (pattern1 (x2, E_V4QQmode) != 0
              || !
#line 46 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_GE_BITS_READ))
            return -1;
          return 2990; /* *arm_addv4qq3 */

        case E_V2HQmode:
          if (pattern1 (x2, E_V2HQmode) != 0
              || !
#line 46 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_GE_BITS_READ))
            return -1;
          return 2991; /* *arm_addv2hq3 */

        case E_V2HAmode:
          if (pattern1 (x2, E_V2HAmode) != 0
              || !
#line 46 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_GE_BITS_READ))
            return -1;
          return 2992; /* *arm_addv2ha3 */

        default:
          return -1;
        }

    case MULT:
      if (GET_MODE (x4) != E_DImode)
        return -1;
      x5 = XEXP (x4, 0);
      if (GET_CODE (x5) != SIGN_EXTEND
          || GET_MODE (x5) != E_DImode)
        return -1;
      x6 = XEXP (x4, 1);
      if (GET_CODE (x6) != SIGN_EXTEND
          || GET_MODE (x6) != E_DImode
          || !register_operand (operands[0], E_DImode)
          || GET_MODE (x2) != E_DImode
          || !register_operand (operands[1], E_DImode))
        return -1;
      x7 = XEXP (x5, 0);
      switch (GET_CODE (x7))
        {
        case REG:
        case SUBREG:
          operands[2] = x7;
          if (!register_operand (operands[2], E_SImode))
            return -1;
          x8 = XEXP (x6, 0);
          operands[3] = x8;
          if (!register_operand (operands[3], E_SImode)
              || !
#line 1486 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 658; /* iwmmxt_tmia */

        case TRUNCATE:
          if (GET_MODE (x7) != E_HImode)
            return -1;
          x8 = XEXP (x6, 0);
          if (GET_CODE (x8) != TRUNCATE
              || GET_MODE (x8) != E_HImode)
            return -1;
          x9 = XEXP (x7, 0);
          switch (GET_CODE (x9))
            {
            case REG:
            case SUBREG:
              operands[2] = x9;
              if (!register_operand (operands[2], E_SImode))
                return -1;
              x10 = XEXP (x8, 0);
              switch (pattern629 (x10))
                {
                case 0:
                  if (!
#line 1517 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                    return -1;
                  return 660; /* iwmmxt_tmiabb */

                case 1:
                  if (!
#line 1551 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                    return -1;
                  return 662; /* iwmmxt_tmiabt */

                default:
                  return -1;
                }

            case ASHIFTRT:
              if (GET_MODE (x9) != E_SImode)
                return -1;
              x11 = XEXP (x9, 1);
              if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
                return -1;
              x12 = XEXP (x9, 0);
              operands[2] = x12;
              if (!register_operand (operands[2], E_SImode))
                return -1;
              x10 = XEXP (x8, 0);
              switch (pattern629 (x10))
                {
                case 0:
                  if (!
#line 1534 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                    return -1;
                  return 661; /* iwmmxt_tmiatb */

                case 1:
                  if (!
#line 1570 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                    return -1;
                  return 663; /* iwmmxt_tmiatt */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case VEC_SELECT:
          if (pattern497 (x7) != 0)
            return -1;
          x8 = XEXP (x6, 0);
          if (pattern606 (x8) != 0)
            return -1;
          switch (pattern640 (x4))
            {
            case 0:
              if (!
#line 742 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 725; /* iwmmxt_wmiawbb */

            case 1:
              if (!
#line 755 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 726; /* iwmmxt_wmiawbt */

            case 2:
              if (!
#line 768 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 727; /* iwmmxt_wmiawtb */

            case 3:
              if (!
#line 781 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 728; /* iwmmxt_wmiawtt */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case PLUS:
      if (GET_MODE (x4) != E_DImode)
        return -1;
      x5 = XEXP (x4, 0);
      if (GET_CODE (x5) != MULT
          || GET_MODE (x5) != E_DImode)
        return -1;
      x7 = XEXP (x5, 0);
      if (GET_CODE (x7) != SIGN_EXTEND
          || GET_MODE (x7) != E_DImode)
        return -1;
      x13 = XEXP (x5, 1);
      if (GET_CODE (x13) != SIGN_EXTEND
          || GET_MODE (x13) != E_DImode)
        return -1;
      x6 = XEXP (x4, 1);
      if (GET_CODE (x6) != MULT
          || pattern472 (x6) != 0
          || !register_operand (operands[0], E_DImode)
          || GET_MODE (x2) != E_DImode
          || !register_operand (operands[1], E_DImode))
        return -1;
      x9 = XEXP (x7, 0);
      if (GET_MODE (x9) != E_HImode)
        return -1;
      x14 = XEXP (x13, 0);
      if (GET_MODE (x14) != E_HImode)
        return -1;
      x8 = XEXP (x6, 0);
      x10 = XEXP (x8, 0);
      if (GET_MODE (x10) != E_HImode)
        return -1;
      x15 = XEXP (x6, 1);
      x16 = XEXP (x15, 0);
      if (GET_MODE (x16) != E_HImode)
        return -1;
      switch (GET_CODE (x9))
        {
        case TRUNCATE:
          if (GET_CODE (x14) != TRUNCATE
              || GET_CODE (x10) != TRUNCATE)
            return -1;
          x17 = XEXP (x10, 0);
          if (GET_CODE (x17) != ASHIFTRT
              || GET_MODE (x17) != E_SImode)
            return -1;
          x18 = XEXP (x17, 1);
          if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 16]
              || GET_CODE (x16) != TRUNCATE)
            return -1;
          x19 = XEXP (x16, 0);
          if (GET_CODE (x19) != ASHIFTRT
              || GET_MODE (x19) != E_SImode)
            return -1;
          x20 = XEXP (x19, 1);
          if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
            return -1;
          x12 = XEXP (x9, 0);
          operands[2] = x12;
          if (!register_operand (operands[2], E_SImode))
            return -1;
          x21 = XEXP (x14, 0);
          operands[3] = x21;
          if (!register_operand (operands[3], E_SImode))
            return -1;
          x22 = XEXP (x17, 0);
          if (!rtx_equal_p (x22, operands[2]))
            return -1;
          x23 = XEXP (x19, 0);
          if (!rtx_equal_p (x23, operands[3])
              || !
#line 1504 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 659; /* iwmmxt_tmiaph */

        case VEC_SELECT:
          x11 = XEXP (x9, 1);
          if (GET_CODE (x11) != PARALLEL
              || XVECLEN (x11, 0) != 1)
            return -1;
          x24 = XVECEXP (x11, 0, 0);
          if (GET_CODE (x24) != CONST_INT
              || GET_CODE (x14) != VEC_SELECT)
            return -1;
          x25 = XEXP (x14, 1);
          if (GET_CODE (x25) != PARALLEL
              || XVECLEN (x25, 0) != 1)
            return -1;
          x26 = XVECEXP (x25, 0, 0);
          if (GET_CODE (x26) != CONST_INT
              || GET_CODE (x10) != VEC_SELECT)
            return -1;
          x27 = XEXP (x10, 1);
          if (GET_CODE (x27) != PARALLEL
              || XVECLEN (x27, 0) != 1)
            return -1;
          x28 = XVECEXP (x27, 0, 0);
          if (GET_CODE (x28) != CONST_INT
              || GET_CODE (x16) != VEC_SELECT)
            return -1;
          x29 = XEXP (x16, 1);
          if (GET_CODE (x29) != PARALLEL
              || XVECLEN (x29, 0) != 1)
            return -1;
          x30 = XVECEXP (x29, 0, 0);
          if (GET_CODE (x30) != CONST_INT)
            return -1;
          switch (pattern665 (x4))
            {
            case 0:
              if (!
#line 561 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 717; /* iwmmxt_wmiabb */

            case 1:
              if (!
#line 585 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 718; /* iwmmxt_wmiabt */

            case 2:
              if (!
#line 609 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 719; /* iwmmxt_wmiatb */

            case 3:
              if (!
#line 633 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 720; /* iwmmxt_wmiatt */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case UNSPEC:
      return recog_253 (x1, insn, pnum_clobbers);

    default:
      return -1;
    }
}

static int
recog_255 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case REG:
    case SUBREG:
      x5 = XEXP (x2, 1);
      operands[1] = x5;
      x6 = XEXP (x3, 1);
      switch (GET_CODE (x6))
        {
        case REG:
        case SUBREG:
          switch (GET_MODE (operands[0]))
            {
            case E_SImode:
              if (!s_register_operand (operands[0], E_SImode)
                  || GET_MODE (x2) != E_SImode
                  || GET_MODE (x3) != E_SImode)
                return -1;
              operands[3] = x4;
              if (!s_register_operand (operands[3], E_SImode))
                return -1;
              operands[2] = x6;
              if (!s_register_operand (operands[2], E_SImode)
                  || !s_register_operand (operands[1], E_SImode)
                  || !
#line 2265 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 57; /* *mla */

            case E_HFmode:
              if (pattern433 (x2, E_HFmode) != 0
                  || !
#line 1200 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
                return -1;
              return 806; /* *mulsf3addhf_vfp */

            case E_SFmode:
              if (pattern433 (x2, E_SFmode) != 0
                  || !
#line 1211 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
                return -1;
              return 807; /* *mulsf3addsf_vfp */

            case E_DFmode:
              if (pattern433 (x2, E_DFmode) != 0
                  || !
#line 1222 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
                return -1;
              return 808; /* *muldf3adddf_vfp */

            case E_V8QImode:
              if (pattern433 (x2, E_V8QImode) != 0
                  || !
#line 539 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V8QI_ARITH))
                return -1;
              return 1172; /* mulv8qi3addv8qi_neon */

            case E_V16QImode:
              if (pattern433 (x2, E_V16QImode) != 0
                  || !
#line 539 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V16QI_ARITH))
                return -1;
              return 1173; /* mulv16qi3addv16qi_neon */

            case E_V4HImode:
              if (pattern433 (x2, E_V4HImode) != 0
                  || !
#line 539 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4HI_ARITH))
                return -1;
              return 1174; /* mulv4hi3addv4hi_neon */

            case E_V8HImode:
              if (pattern433 (x2, E_V8HImode) != 0
                  || !
#line 539 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V8HI_ARITH))
                return -1;
              return 1175; /* mulv8hi3addv8hi_neon */

            case E_V2SImode:
              if (pattern433 (x2, E_V2SImode) != 0
                  || !
#line 539 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V2SI_ARITH))
                return -1;
              return 1176; /* mulv2si3addv2si_neon */

            case E_V4SImode:
              if (pattern433 (x2, E_V4SImode) != 0
                  || !
#line 539 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4SI_ARITH))
                return -1;
              return 1177; /* mulv4si3addv4si_neon */

            case E_V2SFmode:
              if (pattern433 (x2, E_V2SFmode) != 0
                  || !
#line 539 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V2SF_ARITH))
                return -1;
              return 1178; /* mulv2sf3addv2sf_neon */

            case E_V4SFmode:
              if (pattern433 (x2, E_V4SFmode) != 0
                  || !
#line 539 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4SF_ARITH))
                return -1;
              return 1179; /* mulv4sf3addv4sf_neon */

            case E_V8HFmode:
              if (pattern433 (x2, E_V8HFmode) != 0
                  || !
#line 552 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V8HF_ARITH))
                return -1;
              return 1180; /* mulv8hf3addv8hf_neon */

            case E_V4HFmode:
              if (pattern433 (x2, E_V4HFmode) != 0
                  || !
#line 552 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4HF_ARITH))
                return -1;
              return 1181; /* mulv4hf3addv4hf_neon */

            default:
              return -1;
            }

        case CONST_INT:
          operands[3] = x6;
          if (!power_of_two_operand (operands[3], E_SImode)
              || !s_register_operand (operands[0], E_SImode)
              || GET_MODE (x2) != E_SImode
              || GET_MODE (x3) != E_SImode)
            return -1;
          operands[2] = x4;
          if (!s_register_operand (operands[2], E_SImode)
              || !s_register_operand (operands[1], E_SImode)
              || !
#line 9669 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 319; /* *add_multsi */

        default:
          return -1;
        }

    case SIGN_EXTEND:
      x6 = XEXP (x3, 1);
      if (GET_CODE (x6) != SIGN_EXTEND)
        return -1;
      x5 = XEXP (x2, 1);
      operands[3] = x5;
      x7 = XEXP (x4, 0);
      switch (GET_CODE (x7))
        {
        case REG:
        case SUBREG:
          operands[1] = x7;
          if (!s_register_operand (operands[1], E_HImode))
            return -1;
          x8 = XEXP (x6, 0);
          operands[2] = x8;
          if (!s_register_operand (operands[2], E_HImode))
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case E_SImode:
              if (pattern564 (x2, E_SImode) != 0
                  || !
#line 2589 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY && !ARM_Q_BIT_READ))
                return -1;
              return 77; /* *arm_maddhisi4 */

            case E_DImode:
              if (pattern564 (x2, E_DImode) != 0
                  || !
#line 2733 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY))
                return -1;
              return 83; /* maddhidi4 */

            default:
              return -1;
            }

        case ASHIFTRT:
          if (GET_MODE (x7) != E_SImode)
            return -1;
          x9 = XEXP (x7, 1);
          if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 16]
              || !s_register_operand (operands[0], E_DImode)
              || GET_MODE (x2) != E_DImode
              || GET_MODE (x3) != E_DImode
              || GET_MODE (x4) != E_DImode)
            return -1;
          x10 = XEXP (x7, 0);
          operands[1] = x10;
          if (!s_register_operand (operands[1], E_SImode)
              || GET_MODE (x6) != E_DImode
              || !s_register_operand (operands[3], E_DImode))
            return -1;
          x8 = XEXP (x6, 0);
          switch (GET_CODE (x8))
            {
            case REG:
            case SUBREG:
              operands[2] = x8;
              if (!s_register_operand (operands[2], E_HImode)
                  || !
#line 2749 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY))
                return -1;
              return 84; /* *maddhidi4tb */

            case ASHIFTRT:
              if (GET_MODE (x8) != E_SImode)
                return -1;
              x11 = XEXP (x8, 1);
              if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
                return -1;
              x12 = XEXP (x8, 0);
              operands[2] = x12;
              if (!s_register_operand (operands[2], E_SImode)
                  || !
#line 2766 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY))
                return -1;
              return 85; /* *maddhidi4tt */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case ASHIFTRT:
      if (GET_MODE (x4) != E_SImode)
        return -1;
      x13 = XEXP (x4, 1);
      if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 16]
          || !s_register_operand (operands[0], E_SImode)
          || GET_MODE (x2) != E_SImode
          || GET_MODE (x3) != E_SImode)
        return -1;
      x7 = XEXP (x4, 0);
      operands[1] = x7;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      x6 = XEXP (x3, 1);
      if (GET_MODE (x6) != E_SImode)
        return -1;
      x5 = XEXP (x2, 1);
      operands[3] = x5;
      if (!s_register_operand (operands[3], E_SImode))
        return -1;
      switch (GET_CODE (x6))
        {
        case SIGN_EXTEND:
          x8 = XEXP (x6, 0);
          operands[2] = x8;
          if (!s_register_operand (operands[2], E_HImode)
              || !
#line 2636 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY && !ARM_Q_BIT_READ))
            return -1;
          return 79; /* maddhisi4tb */

        case ASHIFTRT:
          x14 = XEXP (x6, 1);
          if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
            return -1;
          x8 = XEXP (x6, 0);
          operands[2] = x8;
          if (!s_register_operand (operands[2], E_SImode)
              || !
#line 2685 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY && !ARM_Q_BIT_READ))
            return -1;
          return 81; /* maddhisi4tt */

        default:
          return -1;
        }

    case VEC_SELECT:
      if (pattern337 (x3, 3, 1) != 0)
        return -1;
      x6 = XEXP (x3, 1);
      x14 = XEXP (x6, 1);
      x15 = XVECEXP (x14, 0, 0);
      if (GET_CODE (x15) != CONST_INT)
        return -1;
      x16 = XVECEXP (x14, 0, 1);
      if (GET_CODE (x16) != CONST_INT)
        return -1;
      x5 = XEXP (x2, 1);
      if (pattern605 (x5, E_V2SImode, VEC_SELECT, MULT) != 0)
        return -1;
      x17 = XEXP (x5, 0);
      x18 = XEXP (x17, 1);
      if (GET_CODE (x18) != PARALLEL
          || XVECLEN (x18, 0) != 2)
        return -1;
      x19 = XVECEXP (x18, 0, 0);
      if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x20 = XVECEXP (x18, 0, 1);
      if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
        return -1;
      x21 = XEXP (x5, 1);
      if (GET_CODE (x21) != VEC_SELECT
          || GET_MODE (x21) != E_V2SImode)
        return -1;
      x22 = XEXP (x21, 1);
      if (GET_CODE (x22) != PARALLEL
          || XVECLEN (x22, 0) != 2)
        return -1;
      x23 = XVECEXP (x22, 0, 0);
      if (GET_CODE (x23) != CONST_INT)
        return -1;
      x24 = XVECEXP (x22, 0, 1);
      if (GET_CODE (x24) != CONST_INT)
        return -1;
      switch (pattern647 (x2))
        {
        case 0:
          switch (pattern658 (x2, SIGN_EXTEND))
            {
            case 0:
              if (!
#line 1454 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 656; /* iwmmxt_wmadds */

            case 1:
              if (!
#line 194 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 692; /* iwmmxt_wmaddsx */

            default:
              return -1;
            }

        case 1:
          switch (pattern658 (x2, ZERO_EXTEND))
            {
            case 0:
              if (!
#line 1473 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 657; /* iwmmxt_wmaddu */

            case 1:
              if (!
#line 213 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 693; /* iwmmxt_wmaddux */

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_256 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  switch (GET_CODE (x3))
    {
    case CONST_INT:
    case CONST_DOUBLE:
    case CONST_VECTOR:
    case REG:
    case SUBREG:
      return recog_254 (x1, insn, pnum_clobbers);

    case PLUS:
      if (GET_MODE (x3) != E_SImode
          || !s_register_operand (operands[0], E_SImode)
          || GET_MODE (x2) != E_SImode)
        return -1;
      x4 = XEXP (x3, 0);
      switch (GET_CODE (x4))
        {
        case REG:
        case SUBREG:
          operands[1] = x4;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x5 = XEXP (x3, 1);
          operands[2] = x5;
          x6 = XEXP (x2, 1);
          operands[3] = x6;
          if (arm_carry_operation (operands[3], E_SImode))
            {
              if (arm_not_operand (operands[2], E_SImode)
                  && 
#line 1324 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return 21; /* addsi3_carryin */
              if (pnum_clobbers != NULL
                  && arm_rhs_operand (operands[2], E_SImode)
                  && 
#line 1391 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                {
                  *pnum_clobbers = 1;
                  return 25; /* *addsi3_carryin_clobercc */
                }
            }
          if (!s_register_operand (operands[2], E_SImode)
              || GET_CODE (x6) != GEU
              || GET_MODE (x6) != E_SImode)
            return -1;
          x7 = XEXP (x6, 0);
          operands[3] = x7;
          if (!s_register_operand (operands[3], E_SImode))
            return -1;
          x8 = XEXP (x6, 1);
          operands[4] = x8;
          if (!thumb1_cmp_operand (operands[4], E_SImode)
              || !
#line 1771 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return -1;
          return 982; /* thumb1_addsi3_addgeu */

        case GEU:
        case LTU:
          operands[3] = x4;
          if (!arm_carry_operation (operands[3], E_SImode))
            return -1;
          x5 = XEXP (x3, 1);
          operands[1] = x5;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x6 = XEXP (x2, 1);
          operands[2] = x6;
          if (!arm_not_operand (operands[2], E_SImode)
              || !
#line 1355 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 23; /* *addsi3_carryin_alt2 */

        case MULT:
        case ASHIFT:
        case ROTATE:
        case ASHIFTRT:
        case LSHIFTRT:
        case ROTATERT:
          if (!shift_operator (x4, E_SImode))
            return -1;
          x9 = XEXP (x4, 0);
          if (!s_register_operand (x9, E_SImode))
            return -1;
          x10 = XEXP (x4, 1);
          if (!shift_amount_operand (x10, E_SImode))
            return -1;
          x5 = XEXP (x3, 1);
          switch (GET_CODE (x5))
            {
            case GEU:
            case LTU:
              operands[5] = x5;
              if (!arm_carry_operation (operands[5], E_SImode))
                return -1;
              operands[2] = x4;
              operands[3] = x9;
              operands[4] = x10;
              x6 = XEXP (x2, 1);
              operands[1] = x6;
              if (!s_register_operand (operands[1], E_SImode)
                  || !
#line 1376 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 24; /* *addsi3_carryin_shift */

            case NOT:
              if (GET_MODE (x5) != E_SImode)
                return -1;
              operands[3] = x4;
              operands[1] = x9;
              operands[2] = x10;
              x11 = XEXP (x5, 0);
              operands[4] = x11;
              if (!s_register_operand (operands[4], E_SImode))
                return -1;
              x6 = XEXP (x2, 1);
              operands[5] = x6;
              if (!arm_carry_operation (operands[5], E_SImode)
                  || !
#line 1735 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return -1;
              return 32; /* add_not_shift_cin */

            default:
              return -1;
            }

        case NOT:
          if (GET_MODE (x4) != E_SImode)
            return -1;
          x9 = XEXP (x4, 0);
          operands[1] = x9;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x5 = XEXP (x3, 1);
          operands[3] = x5;
          if (!arm_carry_operation (operands[3], E_SImode))
            return -1;
          x6 = XEXP (x2, 1);
          operands[2] = x6;
          if (!arm_rhs_operand (operands[2], E_SImode)
              || !
#line 1715 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM || (TARGET_THUMB2 && !CONST_INT_P (operands[2]))))
            return -1;
          return 31; /* *add_not_cin */

        default:
          return -1;
        }

    case GEU:
    case LTU:
      operands[2] = x3;
      if (!arm_carry_operation (operands[2], E_SImode)
          || !s_register_operand (operands[0], E_SImode)
          || GET_MODE (x2) != E_SImode)
        return -1;
      x6 = XEXP (x2, 1);
      operands[1] = x6;
      if (!arm_not_operand (operands[1], E_SImode)
          || !
#line 1342 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 22; /* add0si3_carryin */

    case MULT:
      return recog_255 (x1, insn, pnum_clobbers);

    case ZERO_EXTEND:
      switch (pattern312 (x2))
        {
        case 0:
          if (!
#line 5697 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
            return -1;
          return 178; /* *arm_zero_extendhisi2addsi */

        case 1:
          if (!
#line 5767 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
            return -1;
          return 181; /* *arm_zero_extendqisi2addsi */

        case 2:
          if (!
#line 1062 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1396; /* widen_usumv8qi3 */

        case 3:
          if (!
#line 1062 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1397; /* widen_usumv4hi3 */

        case 4:
          if (!
#line 1062 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1398; /* widen_usumv2si3 */

        case 5:
          if (vect_par_constant_low (operands[2], E_V16QImode)
              && 
#line 1035 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1390; /* vec_sel_widen_usum_lov16qiv8qi3 */
          if (!vect_par_constant_high (operands[2], E_V16QImode)
              || !
#line 1050 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1393; /* vec_sel_widen_usum_hiv16qiv8qi3 */

        case 6:
          if (vect_par_constant_low (operands[2], E_V8HImode)
              && 
#line 1035 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1391; /* vec_sel_widen_usum_lov8hiv4hi3 */
          if (!vect_par_constant_high (operands[2], E_V8HImode)
              || !
#line 1050 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1394; /* vec_sel_widen_usum_hiv8hiv4hi3 */

        case 7:
          if (vect_par_constant_low (operands[2], E_V4SImode)
              && 
#line 1035 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1392; /* vec_sel_widen_usum_lov4siv2si3 */
          if (!vect_par_constant_high (operands[2], E_V4SImode)
              || !
#line 1050 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1395; /* vec_sel_widen_usum_hiv4siv2si3 */

        default:
          return -1;
        }

    case SIGN_EXTEND:
      switch (pattern312 (x2))
        {
        case 0:
          if (!
#line 5938 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
            return -1;
          return 185; /* *arm_extendhisi2addsi */

        case 1:
          if (!
#line 6032 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
            return -1;
          return 189; /* *arm_extendqisi2addsi */

        case 2:
          if (!
#line 993 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1387; /* widen_ssumv8qi3 */

        case 3:
          if (!
#line 993 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1388; /* widen_ssumv4hi3 */

        case 4:
          if (!
#line 993 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1389; /* widen_ssumv2si3 */

        case 5:
          if (vect_par_constant_low (operands[2], E_V16QImode)
              && 
#line 965 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1381; /* vec_sel_widen_ssum_lov16qiv8qi3 */
          if (!vect_par_constant_high (operands[2], E_V16QImode)
              || !
#line 980 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1384; /* vec_sel_widen_ssum_hiv16qiv8qi3 */

        case 6:
          if (vect_par_constant_low (operands[2], E_V8HImode)
              && 
#line 965 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1382; /* vec_sel_widen_ssum_lov8hiv4hi3 */
          if (!vect_par_constant_high (operands[2], E_V8HImode)
              || !
#line 980 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1385; /* vec_sel_widen_ssum_hiv8hiv4hi3 */

        case 7:
          if (vect_par_constant_low (operands[2], E_V4SImode)
              && 
#line 965 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1383; /* vec_sel_widen_ssum_lov4siv2si3 */
          if (!vect_par_constant_high (operands[2], E_V4SImode)
              || !
#line 980 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1386; /* vec_sel_widen_ssum_hiv4siv2si3 */

        default:
          return -1;
        }

    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      operands[2] = x3;
      if (pattern338 (x2) != 0
          || !
#line 9683 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && GET_CODE (operands[2]) != MULT))
        return -1;
      return 324; /* *add_shiftsi */

    case VEC_SELECT:
      switch (pattern309 (x2))
        {
        case 0:
          if (!
#line 1080 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1399; /* quad_halves_plusv4si */

        case 1:
          if (!
#line 1093 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4SF_ARITH))
            return -1;
          return 1404; /* quad_halves_plusv4sf */

        case 2:
          if (!
#line 1108 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1407; /* quad_halves_plusv8hi */

        case 3:
          if (!
#line 1127 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1412; /* quad_halves_plusv16qi */

        default:
          return -1;
        }

    case EQ:
      x4 = XEXP (x3, 0);
      if (GET_CODE (x4) != AND)
        return -1;
      x9 = XEXP (x4, 0);
      operands[1] = x9;
      x10 = XEXP (x4, 1);
      operands[2] = x10;
      x5 = XEXP (x3, 1);
      operands[3] = x5;
      x6 = XEXP (x2, 1);
      operands[4] = x6;
      switch (GET_MODE (operands[0]))
        {
        case E_V8QImode:
          if (pattern495 (x2, E_V8QImode) != 0
              || !
#line 2534 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1764; /* neon_vtst_combinev8qi */

        case E_V16QImode:
          if (pattern495 (x2, E_V16QImode) != 0
              || !
#line 2534 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1765; /* neon_vtst_combinev16qi */

        case E_V4HImode:
          if (pattern495 (x2, E_V4HImode) != 0
              || !
#line 2534 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1766; /* neon_vtst_combinev4hi */

        case E_V8HImode:
          if (pattern495 (x2, E_V8HImode) != 0
              || !
#line 2534 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1767; /* neon_vtst_combinev8hi */

        case E_V2SImode:
          if (pattern495 (x2, E_V2SImode) != 0
              || !
#line 2534 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1768; /* neon_vtst_combinev2si */

        case E_V4SImode:
          if (pattern495 (x2, E_V4SImode) != 0
              || !
#line 2534 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1769; /* neon_vtst_combinev4si */

        default:
          return -1;
        }

    case UNSPEC:
      switch (XVECLEN (x3, 0))
        {
        case 2:
          switch (XINT (x3, 1))
            {
            case 149:
              switch (pattern388 (x2))
                {
                case 0:
                  if (!
#line 2585 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 1792; /* neon_vabasv8qi */

                case 1:
                  if (!
#line 2585 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 1794; /* neon_vabasv16qi */

                case 2:
                  if (!
#line 2585 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 1796; /* neon_vabasv4hi */

                case 3:
                  if (!
#line 2585 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 1798; /* neon_vabasv8hi */

                case 4:
                  if (!
#line 2585 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 1800; /* neon_vabasv2si */

                case 5:
                  if (!
#line 2585 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 1802; /* neon_vabasv4si */

                default:
                  return -1;
                }

            case 150:
              switch (pattern388 (x2))
                {
                case 0:
                  if (!
#line 2585 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 1793; /* neon_vabauv8qi */

                case 1:
                  if (!
#line 2585 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 1795; /* neon_vabauv16qi */

                case 2:
                  if (!
#line 2585 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 1797; /* neon_vabauv4hi */

                case 3:
                  if (!
#line 2585 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 1799; /* neon_vabauv8hi */

                case 4:
                  if (!
#line 2585 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 1801; /* neon_vabauv2si */

                case 5:
                  if (!
#line 2585 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 1803; /* neon_vabauv4si */

                default:
                  return -1;
                }

            case 151:
              switch (pattern390 (x2))
                {
                case 0:
                  if (!
#line 2596 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 1804; /* neon_vabalsv8qi */

                case 1:
                  if (!
#line 2596 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 1806; /* neon_vabalsv4hi */

                case 2:
                  if (!
#line 2596 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 1808; /* neon_vabalsv2si */

                default:
                  return -1;
                }

            case 152:
              switch (pattern390 (x2))
                {
                case 0:
                  if (!
#line 2596 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 1805; /* neon_vabaluv8qi */

                case 1:
                  if (!
#line 2596 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 1807; /* neon_vabaluv4hi */

                case 2:
                  if (!
#line 2596 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 1809; /* neon_vabaluv2si */

                default:
                  return -1;
                }

            case 362:
              switch (pattern392 (x2))
                {
                case 0:
                  if (!
#line 2950 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_DOTPROD))
                    return -1;
                  return 1971; /* sdot_prodv8qi */

                case 1:
                  if (!
#line 2950 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_DOTPROD))
                    return -1;
                  return 1973; /* sdot_prodv16qi */

                default:
                  return -1;
                }

            case 363:
              switch (pattern392 (x2))
                {
                case 0:
                  if (!
#line 2950 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_DOTPROD))
                    return -1;
                  return 1972; /* udot_prodv8qi */

                case 1:
                  if (!
#line 2950 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_DOTPROD))
                    return -1;
                  return 1974; /* udot_prodv16qi */

                default:
                  return -1;
                }

            case 364:
              x12 = XVECEXP (x3, 0, 0);
              operands[2] = x12;
              x13 = XVECEXP (x3, 0, 1);
              operands[3] = x13;
              x6 = XEXP (x2, 1);
              operands[1] = x6;
              switch (GET_MODE (operands[0]))
                {
                case E_V2SImode:
                  if (pattern496 (x2, E_V2SImode, E_V8QImode) != 0
                      || !
#line 2975 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_I8MM))
                    return -1;
                  return 1975; /* neon_usdotv8qi */

                case E_V4SImode:
                  if (pattern496 (x2, E_V4SImode, E_V16QImode) != 0
                      || !
#line 2975 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_I8MM))
                    return -1;
                  return 1976; /* neon_usdotv16qi */

                default:
                  return -1;
                }

            case 381:
              if (pattern393 (x2) != 0
                  || !
#line 6336 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_I8MM))
                return -1;
              return 2825; /* neon_smmlav16qi */

            case 382:
              if (pattern393 (x2) != 0
                  || !
#line 6336 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_I8MM))
                return -1;
              return 2826; /* neon_ummlav16qi */

            case 383:
              if (pattern393 (x2) != 0
                  || !
#line 6336 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_I8MM))
                return -1;
              return 2827; /* neon_usmmlav16qi */

            default:
              return -1;
            }

        case 3:
          x12 = XVECEXP (x3, 0, 0);
          operands[2] = x12;
          x13 = XVECEXP (x3, 0, 1);
          operands[3] = x13;
          x14 = XVECEXP (x3, 0, 2);
          operands[4] = x14;
          if (!immediate_operand (operands[4], E_SImode))
            return -1;
          x6 = XEXP (x2, 1);
          operands[1] = x6;
          switch (XINT (x3, 1))
            {
            case 362:
              switch (GET_MODE (operands[0]))
                {
                case E_V2SImode:
                  switch (pattern544 (x2, E_V2SImode, E_V8QImode))
                    {
                    case 0:
                      if (!
#line 2990 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_DOTPROD))
                        return -1;
                      return 1977; /* neon_sdot_lanev8qi */

                    case 1:
                      if (!
#line 3005 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_DOTPROD))
                        return -1;
                      return 1981; /* neon_sdot_laneqv8qi */

                    default:
                      return -1;
                    }

                case E_V4SImode:
                  switch (pattern544 (x2, E_V4SImode, E_V16QImode))
                    {
                    case 0:
                      if (!
#line 2990 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_DOTPROD))
                        return -1;
                      return 1979; /* neon_sdot_lanev16qi */

                    case 1:
                      if (!
#line 3005 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_DOTPROD))
                        return -1;
                      return 1983; /* neon_sdot_laneqv16qi */

                    default:
                      return -1;
                    }

                default:
                  return -1;
                }

            case 363:
              switch (GET_MODE (operands[0]))
                {
                case E_V2SImode:
                  switch (pattern544 (x2, E_V2SImode, E_V8QImode))
                    {
                    case 0:
                      if (!
#line 2990 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_DOTPROD))
                        return -1;
                      return 1978; /* neon_udot_lanev8qi */

                    case 1:
                      if (!
#line 3005 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_DOTPROD))
                        return -1;
                      return 1982; /* neon_udot_laneqv8qi */

                    default:
                      return -1;
                    }

                case E_V4SImode:
                  switch (pattern544 (x2, E_V4SImode, E_V16QImode))
                    {
                    case 0:
                      if (!
#line 2990 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_DOTPROD))
                        return -1;
                      return 1980; /* neon_udot_lanev16qi */

                    case 1:
                      if (!
#line 3005 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_DOTPROD))
                        return -1;
                      return 1984; /* neon_udot_laneqv16qi */

                    default:
                      return -1;
                    }

                default:
                  return -1;
                }

            case 364:
              switch (GET_MODE (operands[0]))
                {
                case E_V2SImode:
                  switch (pattern544 (x2, E_V2SImode, E_V8QImode))
                    {
                    case 0:
                      if (!
#line 3033 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_I8MM))
                        return -1;
                      return 1985; /* neon_usdot_lanev8qi */

                    case 1:
                      if (!
#line 3048 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_I8MM))
                        return -1;
                      return 1989; /* neon_usdot_laneqv8qi */

                    default:
                      return -1;
                    }

                case E_V4SImode:
                  switch (pattern544 (x2, E_V4SImode, E_V16QImode))
                    {
                    case 0:
                      if (!
#line 3033 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_I8MM))
                        return -1;
                      return 1987; /* neon_usdot_lanev16qi */

                    case 1:
                      if (!
#line 3048 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_I8MM))
                        return -1;
                      return 1991; /* neon_usdot_laneqv16qi */

                    default:
                      return -1;
                    }

                default:
                  return -1;
                }

            case 365:
              switch (GET_MODE (operands[0]))
                {
                case E_V2SImode:
                  switch (pattern544 (x2, E_V2SImode, E_V8QImode))
                    {
                    case 0:
                      if (!
#line 3033 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_I8MM))
                        return -1;
                      return 1986; /* neon_sudot_lanev8qi */

                    case 1:
                      if (!
#line 3048 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_I8MM))
                        return -1;
                      return 1990; /* neon_sudot_laneqv8qi */

                    default:
                      return -1;
                    }

                case E_V4SImode:
                  switch (pattern544 (x2, E_V4SImode, E_V16QImode))
                    {
                    case 0:
                      if (!
#line 3033 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_I8MM))
                        return -1;
                      return 1988; /* neon_sudot_lanev16qi */

                    case 1:
                      if (!
#line 3048 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_I8MM))
                        return -1;
                      return 1992; /* neon_sudot_laneqv16qi */

                    default:
                      return -1;
                    }

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_257 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case REG:
    case SUBREG:
      switch (GET_MODE (operands[0]))
        {
        case E_SImode:
          if (!s_register_operand (operands[0], E_SImode)
              || GET_MODE (x2) != E_SImode
              || !s_register_operand (operands[1], E_SImode)
              || GET_MODE (x3) != E_SImode)
            return -1;
          operands[3] = x4;
          if (!s_register_operand (operands[3], E_SImode))
            return -1;
          x5 = XEXP (x3, 1);
          operands[2] = x5;
          if (!s_register_operand (operands[2], E_SImode)
              || !
#line 2278 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch_thumb2))
            return -1;
          return 58; /* *mls */

        case E_HFmode:
          if (pattern468 (x2, E_HFmode) != 0
              || !
#line 1268 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 812; /* *mulhf3neghfaddhf_vfp */

        case E_SFmode:
          if (pattern468 (x2, E_SFmode) != 0
              || !
#line 1279 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
            return -1;
          return 813; /* *mulsf3negsfaddsf_vfp */

        case E_DFmode:
          if (pattern468 (x2, E_DFmode) != 0
              || !
#line 1290 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
            return -1;
          return 814; /* *fmuldf3negdfadddf_vfp */

        case E_V8QImode:
          if (pattern468 (x2, E_V8QImode) != 0
              || !
#line 562 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V8QI_ARITH))
            return -1;
          return 1182; /* mulv8qi3negv8qiaddv8qi_neon */

        case E_V16QImode:
          if (pattern468 (x2, E_V16QImode) != 0
              || !
#line 562 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V16QI_ARITH))
            return -1;
          return 1183; /* mulv16qi3negv16qiaddv16qi_neon */

        case E_V4HImode:
          if (pattern468 (x2, E_V4HImode) != 0
              || !
#line 562 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4HI_ARITH))
            return -1;
          return 1184; /* mulv4hi3negv4hiaddv4hi_neon */

        case E_V8HImode:
          if (pattern468 (x2, E_V8HImode) != 0
              || !
#line 562 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V8HI_ARITH))
            return -1;
          return 1185; /* mulv8hi3negv8hiaddv8hi_neon */

        case E_V2SImode:
          if (pattern468 (x2, E_V2SImode) != 0
              || !
#line 562 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V2SI_ARITH))
            return -1;
          return 1186; /* mulv2si3negv2siaddv2si_neon */

        case E_V4SImode:
          if (pattern468 (x2, E_V4SImode) != 0
              || !
#line 562 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4SI_ARITH))
            return -1;
          return 1187; /* mulv4si3negv4siaddv4si_neon */

        case E_V2SFmode:
          if (pattern468 (x2, E_V2SFmode) != 0
              || !
#line 562 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V2SF_ARITH))
            return -1;
          return 1188; /* mulv2sf3negv2sfaddv2sf_neon */

        case E_V4SFmode:
          if (pattern468 (x2, E_V4SFmode) != 0
              || !
#line 562 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4SF_ARITH))
            return -1;
          return 1189; /* mulv4sf3negv4sfaddv4sf_neon */

        default:
          return -1;
        }

    case SIGN_EXTEND:
      if (GET_MODE (x4) != E_DImode)
        return -1;
      x6 = XEXP (x4, 0);
      if (GET_CODE (x6) != VEC_SELECT
          || pattern497 (x6) != 0)
        return -1;
      x5 = XEXP (x3, 1);
      if (GET_CODE (x5) != SIGN_EXTEND
          || GET_MODE (x5) != E_DImode)
        return -1;
      x7 = XEXP (x5, 0);
      if (pattern606 (x7) != 0
          || !register_operand (operands[0], E_DImode)
          || GET_MODE (x2) != E_DImode
          || !register_operand (operands[1], E_DImode)
          || GET_MODE (x3) != E_DImode)
        return -1;
      switch (pattern640 (x3))
        {
        case 0:
          if (!
#line 794 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 729; /* iwmmxt_wmiawbbn */

        case 1:
          if (!
#line 807 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 730; /* iwmmxt_wmiawbtn */

        case 2:
          if (!
#line 820 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 731; /* iwmmxt_wmiawtbn */

        case 3:
          if (!
#line 833 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 732; /* iwmmxt_wmiawttn */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_258 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  operands[1] = x3;
  x4 = XEXP (x2, 1);
  switch (GET_CODE (x4))
    {
    case NE:
    case EQ:
    case GE:
    case GT:
    case LE:
    case LT:
    case GEU:
    case GTU:
    case LEU:
    case LTU:
    case UNORDERED:
    case ORDERED:
    case UNGE:
    case UNGT:
    case UNLE:
    case UNLT:
      operands[2] = x4;
      if (arm_borrow_operation (operands[2], E_SImode)
          && s_register_operand (operands[0], E_SImode)
          && GET_MODE (x2) == E_SImode
          && s_register_operand (operands[1], E_SImode)
          && 
#line 1803 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return 40; /* *subsi3_carryin_const0 */
      if (pnum_clobbers == NULL)
        return -1;
      operands[4] = x4;
      if (!arm_comparison_operator (operands[4], E_SImode)
          || pattern467 (x2) != 0)
        return -1;
      if (
#line 10119 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
        {
          *pnum_clobbers = 1;
          return 339; /* *cond_sub */
        }
      if (!
#line 868 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return -1;
      *pnum_clobbers = 1;
      return 1031; /* *thumb2_cond_sub */

    case CONST_INT:
    case REG:
    case SUBREG:
      operands[2] = x4;
      switch (GET_MODE (operands[0]))
        {
        case E_SImode:
          if (!s_register_operand (operands[0], E_SImode)
              || GET_MODE (x2) != E_SImode
              || !reg_or_int_operand (operands[1], E_SImode)
              || !reg_or_int_operand (operands[2], E_SImode)
              || !
#line 2006 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 45; /* *arm_subsi3_insn */

        case E_V2SImode:
          if (GET_MODE (x2) != E_V2SImode)
            return -1;
          if (register_operand (operands[0], E_V2SImode)
              && register_operand (operands[1], E_V2SImode)
              && register_operand (operands[2], E_V2SImode)
              && 
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 554; /* *subv2si3_iwmmxt */
          if (!s_register_operand (operands[0], E_V2SImode)
              || !s_register_operand (operands[1], E_V2SImode)
              || !s_register_operand (operands[2], E_V2SImode)
              || !
#line 482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V2SI_ARITH))
            return -1;
          return 1157; /* *subv2si3_neon */

        case E_V4HImode:
          if (GET_MODE (x2) != E_V4HImode)
            return -1;
          if (register_operand (operands[0], E_V4HImode)
              && register_operand (operands[1], E_V4HImode)
              && register_operand (operands[2], E_V4HImode)
              && 
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 555; /* *subv4hi3_iwmmxt */
          if (!s_register_operand (operands[0], E_V4HImode)
              || !s_register_operand (operands[1], E_V4HImode)
              || !s_register_operand (operands[2], E_V4HImode)
              || !
#line 482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4HI_ARITH))
            return -1;
          return 1155; /* *subv4hi3_neon */

        case E_V8QImode:
          if (GET_MODE (x2) != E_V8QImode)
            return -1;
          if (register_operand (operands[0], E_V8QImode)
              && register_operand (operands[1], E_V8QImode)
              && register_operand (operands[2], E_V8QImode)
              && 
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 556; /* *subv8qi3_iwmmxt */
          if (!s_register_operand (operands[0], E_V8QImode)
              || !s_register_operand (operands[1], E_V8QImode)
              || !s_register_operand (operands[2], E_V8QImode)
              || !
#line 482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V8QI_ARITH))
            return -1;
          return 1153; /* *subv8qi3_neon */

        case E_HFmode:
          if (pattern1 (x2, E_HFmode) != 0
              || !
#line 1028 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 791; /* subhf3 */

        case E_SFmode:
          if (pattern1 (x2, E_SFmode) != 0
              || !
#line 1038 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
            return -1;
          return 792; /* *subsf3_vfp */

        case E_DFmode:
          if (pattern1 (x2, E_DFmode) != 0
              || !
#line 1048 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
            return -1;
          return 793; /* *subdf3_vfp */

        case E_DImode:
          if (pnum_clobbers == NULL
              || pattern384 (x2, E_DImode) != 0
              || !
#line 132 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return -1;
          *pnum_clobbers = 1;
          return 936; /* *thumb_subdi3 */

        case E_V16QImode:
          if (pattern1 (x2, E_V16QImode) != 0)
            return -1;
          if (
#line 482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V16QI_ARITH))
            return 1154; /* *subv16qi3_neon */
          if (!
#line 1807 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3543; /* mve_vsubqv16qi */

        case E_V8HImode:
          if (pattern1 (x2, E_V8HImode) != 0)
            return -1;
          if (
#line 482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V8HI_ARITH))
            return 1156; /* *subv8hi3_neon */
          if (!
#line 1807 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3544; /* mve_vsubqv8hi */

        case E_V4SImode:
          if (pattern1 (x2, E_V4SImode) != 0)
            return -1;
          if (
#line 482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4SI_ARITH))
            return 1158; /* *subv4si3_neon */
          if (!
#line 1807 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3545; /* mve_vsubqv4si */

        case E_V4HFmode:
          if (pattern1 (x2, E_V4HFmode) != 0
              || !
#line 482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4HF_ARITH))
            return -1;
          return 1159; /* *subv4hf3_neon */

        case E_V8HFmode:
          if (pattern1 (x2, E_V8HFmode) != 0)
            return -1;
          if (
#line 482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V8HF_ARITH))
            return 1160; /* *subv8hf3_neon */
          if (!
#line 2502 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3681; /* mve_vsubq_fv8hf */

        case E_V2SFmode:
          if (pattern1 (x2, E_V2SFmode) != 0
              || !
#line 482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V2SF_ARITH))
            return -1;
          return 1161; /* *subv2sf3_neon */

        case E_V4SFmode:
          if (pattern1 (x2, E_V4SFmode) != 0)
            return -1;
          if (
#line 482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4SF_ARITH))
            return 1162; /* *subv4sf3_neon */
          if (!
#line 2502 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3682; /* mve_vsubq_fv4sf */

        case E_V2DImode:
          if (pattern1 (x2, E_V2DImode) != 0
              || !
#line 482 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V2DI_ARITH))
            return -1;
          return 1163; /* *subv2di3_neon */

        case E_QQmode:
          if (pattern1 (x2, E_QQmode) != 0
              || !
#line 84 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 3007; /* subqq3 */

        case E_HQmode:
          if (pattern1 (x2, E_HQmode) != 0
              || !
#line 84 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 3008; /* subhq3 */

        case E_SQmode:
          if (pattern1 (x2, E_SQmode) != 0
              || !
#line 84 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 3009; /* subsq3 */

        case E_UQQmode:
          if (pattern1 (x2, E_UQQmode) != 0
              || !
#line 84 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 3010; /* subuqq3 */

        case E_UHQmode:
          if (pattern1 (x2, E_UHQmode) != 0
              || !
#line 84 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 3011; /* subuhq3 */

        case E_USQmode:
          if (pattern1 (x2, E_USQmode) != 0
              || !
#line 84 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 3012; /* subusq3 */

        case E_HAmode:
          if (pattern1 (x2, E_HAmode) != 0
              || !
#line 84 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 3013; /* subha3 */

        case E_SAmode:
          if (pattern1 (x2, E_SAmode) != 0
              || !
#line 84 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 3014; /* subsa3 */

        case E_UHAmode:
          if (pattern1 (x2, E_UHAmode) != 0
              || !
#line 84 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 3015; /* subuha3 */

        case E_USAmode:
          if (pattern1 (x2, E_USAmode) != 0
              || !
#line 84 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 3016; /* subusa3 */

        case E_V4QQmode:
          if (pattern1 (x2, E_V4QQmode) != 0
              || !
#line 105 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_GE_BITS_READ))
            return -1;
          return 3017; /* *arm_subv4qq3 */

        case E_V2HQmode:
          if (pattern1 (x2, E_V2HQmode) != 0
              || !
#line 105 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_GE_BITS_READ))
            return -1;
          return 3018; /* *arm_subv2hq3 */

        case E_V2HAmode:
          if (pattern1 (x2, E_V2HAmode) != 0
              || !
#line 105 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_GE_BITS_READ))
            return -1;
          return 3019; /* *arm_subv2ha3 */

        default:
          return -1;
        }

    case MULT:
    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      if (GET_CODE (x4) == MULT)
        {
          res = recog_257 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      operands[2] = x4;
      if (!shift_operator (operands[2], E_SImode)
          || !s_register_operand (operands[0], E_SImode)
          || GET_MODE (x2) != E_SImode
          || !s_register_operand (operands[1], E_SImode))
        return -1;
      x5 = XEXP (x4, 0);
      operands[3] = x5;
      if (!s_register_operand (operands[3], E_SImode))
        return -1;
      x6 = XEXP (x4, 1);
      operands[4] = x6;
      if (!shift_amount_operand (operands[4], E_SImode)
          || !
#line 9750 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 331; /* *sub_shiftsi */

    case SMIN:
    case SMAX:
    case UMIN:
    case UMAX:
      if (pnum_clobbers == NULL)
        return -1;
      operands[4] = x4;
      if (!minmax_operator (operands[4], E_SImode)
          || pattern467 (x2) != 0
          || !
#line 4287 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && !arm_eliminable_register (operands[1])
   && !(arm_restrict_it && CONST_INT_P (operands[3]))))
        return -1;
      *pnum_clobbers = 1;
      return 126; /* *minmax_arithsi_non_canon */

    case PLUS:
      if (pattern394 (x4, SIGN_EXTEND, E_DImode, MULT) != 0)
        return -1;
      x5 = XEXP (x4, 0);
      x7 = XEXP (x5, 0);
      if (GET_MODE (x7) != E_DImode)
        return -1;
      x8 = XEXP (x7, 0);
      if (GET_CODE (x8) != VEC_SELECT
          || GET_MODE (x8) != E_HImode)
        return -1;
      x9 = XEXP (x8, 1);
      if (GET_CODE (x9) != PARALLEL
          || XVECLEN (x9, 0) != 1)
        return -1;
      x10 = XVECEXP (x9, 0, 0);
      if (GET_CODE (x10) != CONST_INT)
        return -1;
      x11 = XEXP (x5, 1);
      if (pattern565 (x11, E_HImode, E_DImode, SIGN_EXTEND) != 0)
        return -1;
      x12 = XEXP (x11, 0);
      x13 = XEXP (x12, 1);
      if (GET_CODE (x13) != PARALLEL
          || XVECLEN (x13, 0) != 1)
        return -1;
      x14 = XVECEXP (x13, 0, 0);
      if (GET_CODE (x14) != CONST_INT)
        return -1;
      x6 = XEXP (x4, 1);
      if (GET_CODE (x6) != MULT
          || GET_MODE (x6) != E_DImode)
        return -1;
      x15 = XEXP (x6, 0);
      if (GET_CODE (x15) != SIGN_EXTEND
          || pattern569 (x6, E_HImode) != 0
          || !register_operand (operands[0], E_DImode)
          || GET_MODE (x2) != E_DImode
          || !register_operand (operands[1], E_DImode))
        return -1;
      switch (pattern665 (x4))
        {
        case 0:
          if (!
#line 657 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 721; /* iwmmxt_wmiabbn */

        case 1:
          if (!
#line 681 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 722; /* iwmmxt_wmiabtn */

        case 2:
          if (!
#line 705 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 723; /* iwmmxt_wmiatbn */

        case 3:
          if (!
#line 729 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 724; /* iwmmxt_wmiattn */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_259 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  switch (GET_CODE (x3))
    {
    case MINUS:
      if (GET_MODE (x3) != E_SImode
          || !s_register_operand (operands[0], E_SImode)
          || GET_MODE (x2) != E_SImode)
        return -1;
      x4 = XEXP (x3, 0);
      switch (GET_CODE (x4))
        {
        case CONST_INT:
        case REG:
        case SUBREG:
          operands[1] = x4;
          x5 = XEXP (x3, 1);
          switch (GET_CODE (x5))
            {
            case REG:
            case SUBREG:
              operands[2] = x5;
              if (!s_register_operand (operands[2], E_SImode)
                  || !reg_or_int_operand (operands[1], E_SImode))
                return -1;
              x6 = XEXP (x2, 1);
              operands[3] = x6;
              if (!arm_borrow_operation (operands[3], E_SImode)
                  || !
#line 1683 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 29; /* subsi3_carryin */

            case MULT:
            case ASHIFT:
            case ROTATE:
            case ASHIFTRT:
            case LSHIFTRT:
            case ROTATERT:
              operands[2] = x5;
              if (!shift_operator (operands[2], E_SImode)
                  || !s_register_operand (operands[1], E_SImode))
                return -1;
              x7 = XEXP (x5, 0);
              operands[3] = x7;
              if (!s_register_operand (operands[3], E_SImode))
                return -1;
              x8 = XEXP (x5, 1);
              operands[4] = x8;
              if (!shift_amount_operand (operands[4], E_SImode))
                return -1;
              x6 = XEXP (x2, 1);
              operands[5] = x6;
              if (!arm_borrow_operation (operands[5], E_SImode)
                  || !
#line 1817 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 41; /* *subsi3_carryin_shift */

            case GEU:
            case LTU:
              operands[5] = x5;
              if (!arm_borrow_operation (operands[5], E_SImode))
                return -1;
              x6 = XEXP (x2, 1);
              if (!shift_operator (x6, E_SImode))
                return -1;
              operands[2] = x6;
              if (!s_register_operand (operands[1], E_SImode))
                return -1;
              x9 = XEXP (x6, 0);
              operands[3] = x9;
              if (!s_register_operand (operands[3], E_SImode))
                return -1;
              x10 = XEXP (x6, 1);
              operands[4] = x10;
              if (!shift_amount_operand (operands[4], E_SImode)
                  || !
#line 1834 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 42; /* *subsi3_carryin_shift_alt */

            default:
              return -1;
            }

        case MULT:
        case ASHIFT:
        case ROTATE:
        case ASHIFTRT:
        case LSHIFTRT:
        case ROTATERT:
          operands[2] = x4;
          if (!shift_operator (operands[2], E_SImode))
            return -1;
          x11 = XEXP (x4, 0);
          operands[3] = x11;
          if (!s_register_operand (operands[3], E_SImode))
            return -1;
          x12 = XEXP (x4, 1);
          operands[4] = x12;
          if (!shift_amount_operand (operands[4], E_SImode))
            return -1;
          x5 = XEXP (x3, 1);
          switch (GET_CODE (x5))
            {
            case REG:
            case SUBREG:
              operands[1] = x5;
              if (!s_register_operand (operands[1], E_SImode))
                return -1;
              x6 = XEXP (x2, 1);
              operands[5] = x6;
              if (!arm_borrow_operation (operands[5], E_SImode)
                  || !
#line 1852 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return -1;
              return 43; /* *rsbsi3_carryin_shift */

            case GEU:
            case LTU:
              operands[5] = x5;
              if (!arm_borrow_operation (operands[5], E_SImode))
                return -1;
              x6 = XEXP (x2, 1);
              operands[1] = x6;
              if (!s_register_operand (operands[1], E_SImode)
                  || !
#line 1867 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return -1;
              return 44; /* *rsbsi3_carryin_shift_alt */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case GEU:
    case LTU:
      operands[1] = x3;
      if (!arm_carry_operation (operands[1], E_SImode)
          || !s_register_operand (operands[0], E_SImode)
          || GET_MODE (x2) != E_SImode)
        return -1;
      x6 = XEXP (x2, 1);
      operands[2] = x6;
      if (!s_register_operand (operands[2], E_SImode)
          || !
#line 1700 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      return 30; /* rsbsi_carryin_reg */

    case PLUS:
      if (GET_MODE (x3) != E_SImode
          || !s_register_operand (operands[0], E_SImode)
          || GET_MODE (x2) != E_SImode)
        return -1;
      x4 = XEXP (x3, 0);
      operands[1] = x4;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      x5 = XEXP (x3, 1);
      operands[2] = x5;
      if (!arm_neg_immediate_operand (operands[2], E_SImode))
        return -1;
      x6 = XEXP (x2, 1);
      operands[3] = x6;
      if (!arm_borrow_operation (operands[3], E_SImode)
          || !
#line 1793 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 39; /* *subsi3_carryin_const */

    case CONST_INT:
    case REG:
    case SUBREG:
      return recog_258 (x1, insn, pnum_clobbers);

    case NEG:
      if (pattern280 (x2, E_SImode) != 0)
        return -1;
      x6 = XEXP (x2, 1);
      operands[2] = x6;
      if (!arm_borrow_operation (operands[2], E_SImode)
          || !
#line 5197 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 170; /* negsi2_carryin */

    case MULT:
      x4 = XEXP (x3, 0);
      switch (GET_CODE (x4))
        {
        case REG:
        case SUBREG:
          operands[2] = x4;
          x5 = XEXP (x3, 1);
          operands[3] = x5;
          x6 = XEXP (x2, 1);
          operands[1] = x6;
          switch (GET_CODE (operands[3]))
            {
            case CONST_INT:
              if (!power_of_two_operand (operands[3], E_SImode)
                  || pattern435 (x2, E_SImode) != 0
                  || !
#line 9669 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 320; /* *rsb_multsi */

            case REG:
            case SUBREG:
              switch (GET_MODE (operands[0]))
                {
                case E_HFmode:
                  if (pattern498 (x2, E_HFmode) != 0
                      || !
#line 1234 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
                    return -1;
                  return 809; /* *mulhf3subhf_vfp */

                case E_SFmode:
                  if (pattern498 (x2, E_SFmode) != 0
                      || !
#line 1245 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
                    return -1;
                  return 810; /* *mulsf3subsf_vfp */

                case E_DFmode:
                  if (pattern498 (x2, E_DFmode) != 0
                      || !
#line 1256 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
                    return -1;
                  return 811; /* *muldf3subdf_vfp */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case VEC_SELECT:
          if (pattern337 (x3, 2, 0) != 0)
            return -1;
          x5 = XEXP (x3, 1);
          x8 = XEXP (x5, 1);
          x13 = XVECEXP (x8, 0, 0);
          if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x14 = XVECEXP (x8, 0, 1);
          if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
            return -1;
          x6 = XEXP (x2, 1);
          if (pattern605 (x6, E_V2SImode, VEC_SELECT, MULT) != 0)
            return -1;
          x9 = XEXP (x6, 0);
          x15 = XEXP (x9, 1);
          if (pattern626 (x15, 3, 2) != 0)
            return -1;
          x10 = XEXP (x6, 1);
          if (GET_CODE (x10) != VEC_SELECT
              || GET_MODE (x10) != E_V2SImode)
            return -1;
          x16 = XEXP (x10, 1);
          if (GET_CODE (x16) != PARALLEL
              || XVECLEN (x16, 0) != 2)
            return -1;
          x17 = XVECEXP (x16, 0, 0);
          if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
            return -1;
          x18 = XVECEXP (x16, 0, 1);
          if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
            return -1;
          switch (pattern647 (x2))
            {
            case 0:
              if (pattern659 (x2, SIGN_EXTEND) != 0
                  || !
#line 232 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 694; /* iwmmxt_wmaddsn */

            case 1:
              if (pattern659 (x2, ZERO_EXTEND) != 0
                  || !
#line 251 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 695; /* iwmmxt_wmaddun */

            default:
              return -1;
            }

        case NEG:
          x11 = XEXP (x4, 0);
          operands[2] = x11;
          x5 = XEXP (x3, 1);
          operands[3] = x5;
          x6 = XEXP (x2, 1);
          operands[1] = x6;
          switch (GET_MODE (operands[0]))
            {
            case E_HFmode:
              if (pattern469 (x2, E_HFmode) != 0
                  || !
#line 1304 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
                return -1;
              return 815; /* *mulhf3neghfsubhf_vfp */

            case E_SFmode:
              if (pattern469 (x2, E_SFmode) != 0
                  || !
#line 1316 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
                return -1;
              return 816; /* *mulsf3negsfsubsf_vfp */

            case E_DFmode:
              if (pattern469 (x2, E_DFmode) != 0
                  || !
#line 1328 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
                return -1;
              return 817; /* *muldf3negdfsubdf_vfp */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      operands[2] = x3;
      if (pattern338 (x2) != 0
          || !
#line 9683 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && GET_CODE (operands[2]) != MULT))
        return -1;
      return 325; /* *rsb_shiftsi */

    default:
      return -1;
    }
}

static int
recog_260 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  switch (GET_CODE (x3))
    {
    case REG:
    case SUBREG:
      operands[1] = x3;
      x4 = XEXP (x2, 1);
      switch (GET_CODE (x4))
        {
        case CONST_INT:
        case CONST_VECTOR:
        case REG:
        case SUBREG:
          operands[2] = x4;
          switch (GET_MODE (operands[0]))
            {
            case E_SImode:
              if (pattern410 (x2) != 0
                  || !
#line 3009 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 90; /* *arm_andsi3_insn */

            case E_DImode:
              if (pattern384 (x2, E_DImode) != 0
                  || !
#line 83 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 528; /* iwmmxt_anddi3 */

            case E_V2SImode:
              if (GET_MODE (x2) != E_V2SImode)
                return -1;
              if (register_operand (operands[0], E_V2SImode)
                  && register_operand (operands[1], E_V2SImode)
                  && register_operand (operands[2], E_V2SImode)
                  && 
#line 308 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 536; /* *andv2si3_iwmmxt */
              if (!s_register_operand (operands[0], E_V2SImode)
                  || !s_register_operand (operands[1], E_V2SImode)
                  || !neon_inv_logic_op2 (operands[2], E_V2SImode)
                  || !
#line 700 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1241; /* andv2si3_neon */

            case E_V4HImode:
              if (GET_MODE (x2) != E_V4HImode)
                return -1;
              if (register_operand (operands[0], E_V4HImode)
                  && register_operand (operands[1], E_V4HImode)
                  && register_operand (operands[2], E_V4HImode)
                  && 
#line 308 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 537; /* *andv4hi3_iwmmxt */
              if (!s_register_operand (operands[0], E_V4HImode)
                  || !s_register_operand (operands[1], E_V4HImode)
                  || !neon_inv_logic_op2 (operands[2], E_V4HImode)
                  || !
#line 700 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1239; /* andv4hi3_neon */

            case E_V8QImode:
              if (GET_MODE (x2) != E_V8QImode)
                return -1;
              if (register_operand (operands[0], E_V8QImode)
                  && register_operand (operands[1], E_V8QImode)
                  && register_operand (operands[2], E_V8QImode)
                  && 
#line 308 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 538; /* *andv8qi3_iwmmxt */
              if (!s_register_operand (operands[0], E_V8QImode)
                  || !s_register_operand (operands[1], E_V8QImode)
                  || !neon_inv_logic_op2 (operands[2], E_V8QImode)
                  || !
#line 700 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1237; /* andv8qi3_neon */

            case E_V16QImode:
              if (pattern434 (x2, E_V16QImode) != 0)
                return -1;
              if (
#line 700 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1238; /* andv16qi3_neon */
              if (!
#line 930 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 3279; /* mve_vandq_uv16qi */

            case E_V8HImode:
              if (pattern434 (x2, E_V8HImode) != 0)
                return -1;
              if (
#line 700 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1240; /* andv8hi3_neon */
              if (!
#line 930 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 3280; /* mve_vandq_uv8hi */

            case E_V4SImode:
              if (pattern434 (x2, E_V4SImode) != 0)
                return -1;
              if (
#line 700 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1242; /* andv4si3_neon */
              if (!
#line 930 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 3281; /* mve_vandq_uv4si */

            case E_V4HFmode:
              if (pattern434 (x2, E_V4HFmode) != 0
                  || !
#line 700 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1243; /* andv4hf3_neon */

            case E_V8HFmode:
              if (!s_register_operand (operands[0], E_V8HFmode)
                  || GET_MODE (x2) != E_V8HFmode
                  || !s_register_operand (operands[1], E_V8HFmode))
                return -1;
              if (neon_inv_logic_op2 (operands[2], E_V8HFmode)
                  && 
#line 700 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1244; /* andv8hf3_neon */
              if (!s_register_operand (operands[2], E_V8HFmode)
                  || !
#line 1866 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
                return -1;
              return 3552; /* mve_vandq_fv8hf */

            case E_V2SFmode:
              if (pattern434 (x2, E_V2SFmode) != 0
                  || !
#line 700 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1245; /* andv2sf3_neon */

            case E_V4SFmode:
              if (!s_register_operand (operands[0], E_V4SFmode)
                  || GET_MODE (x2) != E_V4SFmode
                  || !s_register_operand (operands[1], E_V4SFmode))
                return -1;
              if (neon_inv_logic_op2 (operands[2], E_V4SFmode)
                  && 
#line 700 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1246; /* andv4sf3_neon */
              if (!s_register_operand (operands[2], E_V4SFmode)
                  || !
#line 1866 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
                return -1;
              return 3553; /* mve_vandq_fv4sf */

            case E_V2DImode:
              if (pattern434 (x2, E_V2DImode) != 0
                  || !
#line 700 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1247; /* andv2di3_neon */

            default:
              return -1;
            }

        case NOT:
          if (GET_MODE (x4) != E_DImode
              || !register_operand (operands[0], E_DImode)
              || GET_MODE (x2) != E_DImode
              || !register_operand (operands[1], E_DImode))
            return -1;
          x5 = XEXP (x4, 0);
          operands[2] = x5;
          if (!register_operand (operands[2], E_DImode)
              || !
#line 94 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 529; /* iwmmxt_nanddi3 */

        default:
          return -1;
        }

    case NOT:
      x6 = XEXP (x3, 0);
      switch (GET_CODE (x6))
        {
        case REG:
        case SUBREG:
          switch (GET_MODE (operands[0]))
            {
            case E_SImode:
              if (GET_MODE (x2) != E_SImode
                  || GET_MODE (x3) != E_SImode)
                return -1;
              if (s_register_operand (operands[0], E_SImode))
                {
                  operands[2] = x6;
                  if (s_register_operand (operands[2], E_SImode))
                    {
                      x4 = XEXP (x2, 1);
                      operands[1] = x4;
                      if (s_register_operand (operands[1], E_SImode)
                          && 
#line 3591 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                        return 104; /* andsi_notsi_si */
                    }
                }
              if (!register_operand (operands[0], E_SImode))
                return -1;
              operands[1] = x6;
              if (!register_operand (operands[1], E_SImode))
                return -1;
              x4 = XEXP (x2, 1);
              operands[2] = x4;
              if (!register_operand (operands[2], E_SImode)
                  || !
#line 235 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                return -1;
              return 941; /* thumb1_bicsi3 */

            case E_V8QImode:
              if (pattern395 (x2, E_V8QImode) != 0
                  || !
#line 726 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1259; /* bicv8qi3_neon */

            case E_V16QImode:
              if (pattern395 (x2, E_V16QImode) != 0)
                return -1;
              if (
#line 726 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1260; /* bicv16qi3_neon */
              if (!
#line 954 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 3282; /* mve_vbicq_uv16qi */

            case E_V4HImode:
              if (pattern395 (x2, E_V4HImode) != 0
                  || !
#line 726 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1261; /* bicv4hi3_neon */

            case E_V8HImode:
              if (pattern395 (x2, E_V8HImode) != 0)
                return -1;
              if (
#line 726 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1262; /* bicv8hi3_neon */
              if (!
#line 954 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 3283; /* mve_vbicq_uv8hi */

            case E_V2SImode:
              if (pattern395 (x2, E_V2SImode) != 0
                  || !
#line 726 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1263; /* bicv2si3_neon */

            case E_V4SImode:
              if (pattern395 (x2, E_V4SImode) != 0)
                return -1;
              if (
#line 726 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1264; /* bicv4si3_neon */
              if (!
#line 954 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 3284; /* mve_vbicq_uv4si */

            case E_V4HFmode:
              if (pattern395 (x2, E_V4HFmode) != 0
                  || !
#line 726 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1265; /* bicv4hf3_neon */

            case E_V8HFmode:
              if (pattern396 (x2, E_V8HFmode) != 0)
                return -1;
              x4 = XEXP (x2, 1);
              operands[1] = x4;
              operands[2] = x6;
              if (
#line 726 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1266; /* bicv8hf3_neon */
              operands[2] = x4;
              operands[1] = x6;
              if (!
#line 1880 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
                return -1;
              return 3554; /* mve_vbicq_fv8hf */

            case E_V2SFmode:
              if (pattern395 (x2, E_V2SFmode) != 0
                  || !
#line 726 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1267; /* bicv2sf3_neon */

            case E_V4SFmode:
              if (pattern396 (x2, E_V4SFmode) != 0)
                return -1;
              x4 = XEXP (x2, 1);
              operands[1] = x4;
              operands[2] = x6;
              if (
#line 726 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1268; /* bicv4sf3_neon */
              operands[2] = x4;
              operands[1] = x6;
              if (!
#line 1880 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
                return -1;
              return 3555; /* mve_vbicq_fv4sf */

            case E_V2DImode:
              if (pattern395 (x2, E_V2DImode) != 0
                  || !
#line 726 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1269; /* bicv2di3_neon */

            default:
              return -1;
            }

        case MULT:
        case ASHIFT:
        case ROTATE:
        case ASHIFTRT:
        case LSHIFTRT:
        case ROTATERT:
          operands[4] = x6;
          if (!shift_operator (operands[4], E_SImode)
              || !s_register_operand (operands[0], E_SImode)
              || GET_MODE (x2) != E_SImode
              || GET_MODE (x3) != E_SImode)
            return -1;
          x7 = XEXP (x6, 0);
          operands[2] = x7;
          if (!s_register_operand (operands[2], E_SImode))
            return -1;
          x8 = XEXP (x6, 1);
          operands[3] = x8;
          if (!shift_amount_operand (operands[3], E_SImode))
            return -1;
          x4 = XEXP (x2, 1);
          operands[1] = x4;
          if (!s_register_operand (operands[1], E_SImode)
              || !
#line 3603 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 105; /* andsi_not_shiftsi_si */

        default:
          return -1;
        }

    case IOR:
      if (GET_MODE (x3) != E_SImode)
        return -1;
      x4 = XEXP (x2, 1);
      if (GET_CODE (x4) != NOT
          || GET_MODE (x4) != E_SImode
          || !s_register_operand (operands[0], E_SImode)
          || GET_MODE (x2) != E_SImode)
        return -1;
      x6 = XEXP (x3, 0);
      operands[1] = x6;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      x9 = XEXP (x3, 1);
      operands[2] = x9;
      if (!arm_rhs_operand (operands[2], E_SImode))
        return -1;
      x5 = XEXP (x4, 0);
      operands[3] = x5;
      if (!arm_rhs_operand (operands[3], E_SImode)
          || !
#line 3896 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 116; /* *andsi_iorsi3_notsi */

    case MULT:
      if (pattern313 (x2) != 0
          || !
#line 9669 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 323; /* *and_multsi */

    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      operands[2] = x3;
      if (pattern338 (x2) != 0
          || !
#line 9683 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && GET_CODE (operands[2]) != MULT))
        return -1;
      return 328; /* *and_shiftsi */

    case NE:
    case EQ:
    case GE:
    case GT:
    case LE:
    case LT:
    case GEU:
    case GTU:
    case LEU:
    case LTU:
    case UNORDERED:
    case ORDERED:
    case UNGE:
    case UNGT:
    case UNLE:
    case UNLT:
      operands[1] = x3;
      if (pattern339 (x2) == 0
          && 
#line 9798 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
        return 334; /* *and_scc */
      if (pnum_clobbers == NULL
          || pattern340 (x2) != 0)
        return -1;
      if (
#line 10539 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (arm_select_dominance_cc_mode (operands[3], operands[6], DOM_CC_X_AND_Y)
       != CCmode)))
        {
          *pnum_clobbers = 1;
          return 346; /* *and_scc_scc */
        }
      if (!
#line 10607 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (arm_select_dominance_cc_mode (operands[3], operands[6], DOM_CC_X_AND_Y)
       == CCmode)))
        return -1;
      *pnum_clobbers = 1;
      return 348; /* *and_scc_scc_nodom */

    default:
      return -1;
    }
}

static int
recog_261 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  switch (GET_CODE (x3))
    {
    case AND:
      if (GET_MODE (x3) != E_SImode)
        return -1;
      x4 = XEXP (x2, 1);
      if (GET_CODE (x4) != AND
          || GET_MODE (x4) != E_SImode
          || GET_MODE (x2) != E_SImode)
        return -1;
      x5 = XEXP (x3, 0);
      switch (GET_CODE (x5))
        {
        case REG:
        case SUBREG:
          if (!s_register_operand (x5, E_SImode)
              || !s_register_operand (operands[0], E_SImode))
            return -1;
          x6 = XEXP (x3, 1);
          if (!const_int_operand (x6, E_VOIDmode))
            return -1;
          x7 = XEXP (x4, 1);
          if (!const_int_operand (x7, E_VOIDmode))
            return -1;
          x8 = XEXP (x4, 0);
          switch (GET_CODE (x8))
            {
            case ASHIFT:
              if (GET_MODE (x8) != E_SImode)
                return -1;
              operands[1] = x5;
              operands[2] = x6;
              x9 = XEXP (x8, 0);
              operands[3] = x9;
              if (!s_register_operand (operands[3], E_SImode))
                return -1;
              x10 = XEXP (x8, 1);
              operands[4] = x10;
              if (!const_int_operand (operands[4], E_VOIDmode))
                return -1;
              operands[5] = x7;
              if (!
#line 3525 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_arch_thumb2
   && UINTVAL (operands[4]) < 32
   && UINTVAL (operands[2]) == ~UINTVAL (operands[5])
   && (exact_log2 (UINTVAL (operands[5])
		   + (HOST_WIDE_INT_1U << UINTVAL (operands[4])))
       >= 0)))
                return -1;
              return 100; /* *bfi */

            case REG:
            case SUBREG:
              operands[3] = x8;
              if (s_register_operand (operands[3], E_SImode))
                {
                  operands[1] = x5;
                  operands[2] = x6;
                  operands[4] = x7;
                  if (
#line 3563 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_arch_thumb2
   && UINTVAL (operands[2]) == ~UINTVAL (operands[4])
   && exact_log2 (UINTVAL (operands[4]) + 1) >= 0))
                    return 102; /* *bfi_alt2 */
                }
              operands[1] = x8;
              if (!s_register_operand (operands[1], E_SImode))
                return -1;
              operands[3] = x5;
              operands[4] = x6;
              operands[2] = x7;
              if (!
#line 3578 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_arch_thumb2
   && UINTVAL (operands[2]) == ~UINTVAL (operands[4])
   && exact_log2 (UINTVAL (operands[4]) + 1) >= 0))
                return -1;
              return 103; /* *bfi_alt3 */

            default:
              return -1;
            }

        case ASHIFT:
          if (GET_MODE (x5) != E_SImode)
            return -1;
          x11 = XEXP (x5, 1);
          if (GET_CODE (x11) != CONST_INT)
            return -1;
          operands[4] = x11;
          if (const_int_operand (operands[4], E_VOIDmode)
              && s_register_operand (operands[0], E_SImode))
            {
              x12 = XEXP (x5, 0);
              operands[3] = x12;
              if (s_register_operand (operands[3], E_SImode))
                {
                  x6 = XEXP (x3, 1);
                  operands[5] = x6;
                  if (const_int_operand (operands[5], E_VOIDmode))
                    {
                      x8 = XEXP (x4, 0);
                      operands[1] = x8;
                      if (s_register_operand (operands[1], E_SImode))
                        {
                          x7 = XEXP (x4, 1);
                          operands[2] = x7;
                          if (const_int_operand (operands[2], E_VOIDmode)
                              && 
#line 3545 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_arch_thumb2
   && UINTVAL (operands[4]) < 32
   && UINTVAL (operands[2]) == ~UINTVAL (operands[5])
   && (exact_log2 (UINTVAL (operands[5])
		   + (HOST_WIDE_INT_1U << UINTVAL (operands[4])))
       >= 0)))
                            return 101; /* *bfi_alt1 */
                        }
                    }
                }
            }
          if (XWINT (x11, 0) != 8L
              || pattern522 (x2, LSHIFTRT) != 0)
            return -1;
          x6 = XEXP (x3, 1);
          operands[3] = x6;
          if (!const_int_operand (operands[3], E_SImode))
            return -1;
          x7 = XEXP (x4, 1);
          operands[2] = x7;
          if (!const_int_operand (operands[2], E_SImode))
            return -1;
          x8 = XEXP (x4, 0);
          x9 = XEXP (x8, 0);
          if (!rtx_equal_p (x9, operands[1])
              || !
#line 12575 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_arch6
   && aarch_rev16_shleft_mask_imm_p (operands[3], SImode)
   && aarch_rev16_shright_mask_imm_p (operands[2], SImode)))
            return -1;
          return 414; /* arm_rev16si2 */

        case LSHIFTRT:
          if (GET_MODE (x5) != E_SImode)
            return -1;
          x11 = XEXP (x5, 1);
          if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 8]
              || pattern522 (x2, ASHIFT) != 0)
            return -1;
          x6 = XEXP (x3, 1);
          operands[2] = x6;
          if (!const_int_operand (operands[2], E_SImode))
            return -1;
          x7 = XEXP (x4, 1);
          operands[3] = x7;
          if (!const_int_operand (operands[3], E_SImode))
            return -1;
          x8 = XEXP (x4, 0);
          x9 = XEXP (x8, 0);
          if (!rtx_equal_p (x9, operands[1])
              || !
#line 12592 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_arch6
   && aarch_rev16_shleft_mask_imm_p (operands[3], SImode)
   && aarch_rev16_shright_mask_imm_p (operands[2], SImode)))
            return -1;
          return 415; /* arm_rev16si2_alt */

        default:
          return -1;
        }

    case REG:
    case SUBREG:
      operands[1] = x3;
      x4 = XEXP (x2, 1);
      operands[2] = x4;
      switch (GET_MODE (operands[0]))
        {
        case E_SImode:
          if (pattern410 (x2) != 0
              || !
#line 3723 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 110; /* *iorsi3_insn */

        case E_DImode:
          if (pattern384 (x2, E_DImode) != 0
              || !
#line 61 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 526; /* iwmmxt_iordi3 */

        case E_V2SImode:
          if (GET_MODE (x2) != E_V2SImode)
            return -1;
          if (register_operand (operands[0], E_V2SImode)
              && register_operand (operands[1], E_V2SImode)
              && register_operand (operands[2], E_V2SImode)
              && 
#line 318 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 539; /* *iorv2si3_iwmmxt */
          if (!s_register_operand (operands[0], E_V2SImode)
              || !s_register_operand (operands[1], E_V2SImode)
              || !neon_logic_op2 (operands[2], E_V2SImode)
              || !
#line 678 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1230; /* iorv2si3_neon */

        case E_V4HImode:
          if (GET_MODE (x2) != E_V4HImode)
            return -1;
          if (register_operand (operands[0], E_V4HImode)
              && register_operand (operands[1], E_V4HImode)
              && register_operand (operands[2], E_V4HImode)
              && 
#line 318 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 540; /* *iorv4hi3_iwmmxt */
          if (!s_register_operand (operands[0], E_V4HImode)
              || !s_register_operand (operands[1], E_V4HImode)
              || !neon_logic_op2 (operands[2], E_V4HImode)
              || !
#line 678 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1228; /* iorv4hi3_neon */

        case E_V8QImode:
          if (GET_MODE (x2) != E_V8QImode)
            return -1;
          if (register_operand (operands[0], E_V8QImode)
              && register_operand (operands[1], E_V8QImode)
              && register_operand (operands[2], E_V8QImode)
              && 
#line 318 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 541; /* *iorv8qi3_iwmmxt */
          if (!s_register_operand (operands[0], E_V8QImode)
              || !s_register_operand (operands[1], E_V8QImode)
              || !neon_logic_op2 (operands[2], E_V8QImode)
              || !
#line 678 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1226; /* iorv8qi3_neon */

        case E_V16QImode:
          if (pattern411 (x2, E_V16QImode) != 0)
            return -1;
          if (
#line 678 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1227; /* iorv16qi3_neon */
          if (!
#line 1441 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3417; /* mve_vorrq_sv16qi */

        case E_V8HImode:
          if (pattern411 (x2, E_V8HImode) != 0)
            return -1;
          if (
#line 678 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1229; /* iorv8hi3_neon */
          if (!
#line 1441 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3418; /* mve_vorrq_sv8hi */

        case E_V4SImode:
          if (pattern411 (x2, E_V4SImode) != 0)
            return -1;
          if (
#line 678 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1231; /* iorv4si3_neon */
          if (!
#line 1441 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3419; /* mve_vorrq_sv4si */

        case E_V4HFmode:
          if (pattern411 (x2, E_V4HFmode) != 0
              || !
#line 678 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1232; /* iorv4hf3_neon */

        case E_V8HFmode:
          if (!s_register_operand (operands[0], E_V8HFmode)
              || GET_MODE (x2) != E_V8HFmode
              || !s_register_operand (operands[1], E_V8HFmode))
            return -1;
          if (neon_logic_op2 (operands[2], E_V8HFmode)
              && 
#line 678 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1233; /* iorv8hf3_neon */
          if (!s_register_operand (operands[2], E_V8HFmode)
              || !
#line 2278 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3644; /* mve_vorrq_fv8hf */

        case E_V2SFmode:
          if (pattern411 (x2, E_V2SFmode) != 0
              || !
#line 678 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1234; /* iorv2sf3_neon */

        case E_V4SFmode:
          if (!s_register_operand (operands[0], E_V4SFmode)
              || GET_MODE (x2) != E_V4SFmode
              || !s_register_operand (operands[1], E_V4SFmode))
            return -1;
          if (neon_logic_op2 (operands[2], E_V4SFmode)
              && 
#line 678 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1235; /* iorv4sf3_neon */
          if (!s_register_operand (operands[2], E_V4SFmode)
              || !
#line 2278 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3645; /* mve_vorrq_fv4sf */

        case E_V2DImode:
          if (pattern411 (x2, E_V2DImode) != 0
              || !
#line 678 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1236; /* iorv2di3_neon */

        default:
          return -1;
        }

    case MULT:
      if (pattern313 (x2) != 0
          || !
#line 9669 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 321; /* *orr_multsi */

    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      operands[2] = x3;
      if (pattern338 (x2) == 0
          && 
#line 9683 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && GET_CODE (operands[2]) != MULT))
        return 326; /* *orr_shiftsi */
      if (GET_CODE (x3) != ASHIFT
          || GET_MODE (x3) != E_DImode)
        return -1;
      x6 = XEXP (x3, 1);
      if (GET_CODE (x6) != MINUS
          || GET_MODE (x6) != E_SImode)
        return -1;
      x13 = XEXP (x6, 0);
      if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 64])
        return -1;
      x14 = XEXP (x6, 1);
      if (GET_CODE (x14) != MULT
          || GET_MODE (x14) != E_SImode)
        return -1;
      x15 = XEXP (x14, 1);
      if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
        return -1;
      x4 = XEXP (x2, 1);
      if (GET_CODE (x4) != LSHIFTRT
          || GET_MODE (x4) != E_DImode)
        return -1;
      x8 = XEXP (x4, 0);
      if (GET_CODE (x8) != ASHIFT
          || GET_MODE (x8) != E_DImode)
        return -1;
      x10 = XEXP (x8, 1);
      if (GET_CODE (x10) != MULT
          || GET_MODE (x10) != E_SImode)
        return -1;
      x16 = XEXP (x10, 1);
      if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
        return -1;
      x7 = XEXP (x4, 1);
      if (GET_CODE (x7) != MULT
          || GET_MODE (x7) != E_SImode)
        return -1;
      x17 = XEXP (x7, 1);
      if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 8]
          || !register_operand (operands[0], E_DImode)
          || GET_MODE (x2) != E_DImode)
        return -1;
      x5 = XEXP (x3, 0);
      operands[2] = x5;
      if (!register_operand (operands[2], E_DImode))
        return -1;
      x18 = XEXP (x14, 0);
      operands[3] = x18;
      if (!immediate_operand (operands[3], E_SImode))
        return -1;
      x9 = XEXP (x8, 0);
      operands[1] = x9;
      if (!register_operand (operands[1], E_DImode))
        return -1;
      x19 = XEXP (x10, 0);
      if (!rtx_equal_p (x19, operands[3]))
        return -1;
      x20 = XEXP (x7, 0);
      if (!rtx_equal_p (x20, operands[3])
          || !
#line 858 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 733; /* iwmmxt_wmerge */

    case NE:
    case EQ:
    case GE:
    case GT:
    case LE:
    case LT:
    case GEU:
    case GTU:
    case LEU:
    case LTU:
    case UNORDERED:
    case ORDERED:
    case UNGE:
    case UNGT:
    case UNLE:
    case UNLT:
      operands[1] = x3;
      if (pattern339 (x2) == 0
          && 
#line 9827 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
        return 335; /* *ior_scc */
      if (pnum_clobbers == NULL
          || pattern340 (x2) != 0
          || !
#line 10477 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (arm_select_dominance_cc_mode (operands[3], operands[6], DOM_CC_X_OR_Y)
       != CCmode)))
        return -1;
      *pnum_clobbers = 1;
      return 344; /* *ior_scc_scc */

    case NOT:
      x4 = XEXP (x2, 1);
      operands[1] = x4;
      x5 = XEXP (x3, 0);
      switch (GET_CODE (x5))
        {
        case REG:
        case SUBREG:
          operands[2] = x5;
          switch (GET_MODE (operands[0]))
            {
            case E_SImode:
              if (pattern435 (x2, E_SImode) != 0
                  || !
#line 1534 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
                return -1;
              return 1061; /* *orsi_notsi_si */

            case E_V8QImode:
              if (pattern435 (x2, E_V8QImode) != 0
                  || !
#line 717 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1248; /* ornv8qi3_neon */

            case E_V16QImode:
              if (pattern435 (x2, E_V16QImode) != 0)
                return -1;
              if (
#line 717 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1249; /* ornv16qi3_neon */
              if (!
#line 1414 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 3414; /* mve_vornq_sv16qi */

            case E_V4HImode:
              if (pattern435 (x2, E_V4HImode) != 0
                  || !
#line 717 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1250; /* ornv4hi3_neon */

            case E_V8HImode:
              if (pattern435 (x2, E_V8HImode) != 0)
                return -1;
              if (
#line 717 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1251; /* ornv8hi3_neon */
              if (!
#line 1414 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 3415; /* mve_vornq_sv8hi */

            case E_V2SImode:
              if (pattern435 (x2, E_V2SImode) != 0
                  || !
#line 717 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1252; /* ornv2si3_neon */

            case E_V4SImode:
              if (pattern435 (x2, E_V4SImode) != 0)
                return -1;
              if (
#line 717 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1253; /* ornv4si3_neon */
              if (!
#line 1414 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 3416; /* mve_vornq_sv4si */

            case E_V4HFmode:
              if (pattern435 (x2, E_V4HFmode) != 0
                  || !
#line 717 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1254; /* ornv4hf3_neon */

            case E_V8HFmode:
              if (pattern435 (x2, E_V8HFmode) != 0)
                return -1;
              if (
#line 717 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1255; /* ornv8hf3_neon */
              if (!
#line 2264 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
                return -1;
              return 3642; /* mve_vornq_fv8hf */

            case E_V2SFmode:
              if (pattern435 (x2, E_V2SFmode) != 0
                  || !
#line 717 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1256; /* ornv2sf3_neon */

            case E_V4SFmode:
              if (pattern435 (x2, E_V4SFmode) != 0)
                return -1;
              if (
#line 717 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1257; /* ornv4sf3_neon */
              if (!
#line 2264 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
                return -1;
              return 3643; /* mve_vornq_fv4sf */

            case E_V2DImode:
              if (pattern435 (x2, E_V2DImode) != 0
                  || !
#line 717 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1258; /* ornv2di3_neon */

            default:
              return -1;
            }

        case MULT:
        case ASHIFT:
        case ROTATE:
        case ASHIFTRT:
        case LSHIFTRT:
        case ROTATERT:
          operands[4] = x5;
          if (!shift_operator (operands[4], E_SImode)
              || !s_register_operand (operands[0], E_SImode)
              || GET_MODE (x2) != E_SImode
              || GET_MODE (x3) != E_SImode)
            return -1;
          x12 = XEXP (x5, 0);
          operands[2] = x12;
          if (!s_register_operand (operands[2], E_SImode))
            return -1;
          x11 = XEXP (x5, 1);
          operands[3] = x11;
          if (!const_int_operand (operands[3], E_SImode)
              || !s_register_operand (operands[1], E_SImode)
              || !
#line 1546 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
            return -1;
          return 1062; /* *orsi_not_shiftsi_si */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_262 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  switch (GET_CODE (x3))
    {
    case REG:
    case SUBREG:
      operands[1] = x3;
      x4 = XEXP (x2, 1);
      operands[2] = x4;
      switch (GET_MODE (operands[0]))
        {
        case E_SImode:
          if (pattern410 (x2) != 0
              || !
#line 3829 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 113; /* *arm_xorsi3 */

        case E_DImode:
          if (pattern384 (x2, E_DImode) != 0
              || !
#line 72 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 527; /* iwmmxt_xordi3 */

        case E_V2SImode:
          if (GET_MODE (x2) != E_V2SImode)
            return -1;
          if (register_operand (operands[0], E_V2SImode)
              && register_operand (operands[1], E_V2SImode)
              && register_operand (operands[2], E_V2SImode)
              && 
#line 328 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 542; /* *xorv2si3_iwmmxt */
          if (!s_register_operand (operands[0], E_V2SImode)
              || !s_register_operand (operands[1], E_V2SImode)
              || !s_register_operand (operands[2], E_V2SImode)
              || !
#line 735 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1274; /* xorv2si3_neon */

        case E_V4HImode:
          if (GET_MODE (x2) != E_V4HImode)
            return -1;
          if (register_operand (operands[0], E_V4HImode)
              && register_operand (operands[1], E_V4HImode)
              && register_operand (operands[2], E_V4HImode)
              && 
#line 328 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 543; /* *xorv4hi3_iwmmxt */
          if (!s_register_operand (operands[0], E_V4HImode)
              || !s_register_operand (operands[1], E_V4HImode)
              || !s_register_operand (operands[2], E_V4HImode)
              || !
#line 735 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1272; /* xorv4hi3_neon */

        case E_V8QImode:
          if (GET_MODE (x2) != E_V8QImode)
            return -1;
          if (register_operand (operands[0], E_V8QImode)
              && register_operand (operands[1], E_V8QImode)
              && register_operand (operands[2], E_V8QImode)
              && 
#line 328 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 544; /* *xorv8qi3_iwmmxt */
          if (!s_register_operand (operands[0], E_V8QImode)
              || !s_register_operand (operands[1], E_V8QImode)
              || !s_register_operand (operands[2], E_V8QImode)
              || !
#line 735 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1270; /* xorv8qi3_neon */

        case E_V16QImode:
          if (pattern1 (x2, E_V16QImode) != 0)
            return -1;
          if (
#line 735 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1271; /* xorv16qi3_neon */
          if (!
#line 1016 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3297; /* mve_veorq_uv16qi */

        case E_V8HImode:
          if (pattern1 (x2, E_V8HImode) != 0)
            return -1;
          if (
#line 735 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1273; /* xorv8hi3_neon */
          if (!
#line 1016 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3298; /* mve_veorq_uv8hi */

        case E_V4SImode:
          if (pattern1 (x2, E_V4SImode) != 0)
            return -1;
          if (
#line 735 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1275; /* xorv4si3_neon */
          if (!
#line 1016 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3299; /* mve_veorq_uv4si */

        case E_V4HFmode:
          if (pattern1 (x2, E_V4HFmode) != 0
              || !
#line 735 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1276; /* xorv4hf3_neon */

        case E_V8HFmode:
          if (pattern1 (x2, E_V8HFmode) != 0)
            return -1;
          if (
#line 735 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1277; /* xorv8hf3_neon */
          if (!
#line 2013 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3602; /* mve_veorq_fv8hf */

        case E_V2SFmode:
          if (pattern1 (x2, E_V2SFmode) != 0
              || !
#line 735 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1278; /* xorv2sf3_neon */

        case E_V4SFmode:
          if (pattern1 (x2, E_V4SFmode) != 0)
            return -1;
          if (
#line 735 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1279; /* xorv4sf3_neon */
          if (!
#line 2013 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3603; /* mve_veorq_fv4sf */

        case E_V2DImode:
          if (pattern1 (x2, E_V2DImode) != 0
              || !
#line 735 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1280; /* xorv2di3_neon */

        default:
          return -1;
        }

    case MULT:
      if (pattern313 (x2) != 0
          || !
#line 9669 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 322; /* *eor_multsi */

    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      operands[2] = x3;
      if (pattern338 (x2) != 0
          || !
#line 9683 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && GET_CODE (operands[2]) != MULT))
        return -1;
      return 327; /* *eor_shiftsi */

    default:
      return -1;
    }
}

static int
recog_263 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x2 = XEXP (x1, 1);
  if (!shiftable_operator (x2, E_SImode))
    return -1;
  x3 = XEXP (x2, 0);
  switch (GET_CODE (x3))
    {
    case SMIN:
    case SMAX:
    case UMIN:
    case UMAX:
      operands[5] = x3;
      if (!minmax_operator (operands[5], E_SImode))
        return -1;
      operands[4] = x2;
      x4 = XEXP (x3, 0);
      operands[2] = x4;
      if (!s_register_operand (operands[2], E_SImode))
        return -1;
      x5 = XEXP (x3, 1);
      operands[3] = x5;
      if (!arm_rhs_operand (operands[3], E_SImode))
        return -1;
      x6 = XEXP (x2, 1);
      operands[1] = x6;
      if (!s_register_operand (operands[1], E_SImode)
          || !
#line 4242 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && !arm_eliminable_register (operands[1]) && !arm_restrict_it))
        return -1;
      *pnum_clobbers = 1;
      return 125; /* *minmax_arithsi */

    case NE:
    case EQ:
    case GE:
    case GT:
    case LE:
    case LT:
    case GEU:
    case GTU:
    case LEU:
    case LTU:
    case UNORDERED:
    case ORDERED:
    case UNGE:
    case UNGT:
    case UNLE:
    case UNLT:
      operands[4] = x3;
      if (!arm_comparison_operator (operands[4], E_SImode))
        return -1;
      operands[5] = x2;
      x4 = XEXP (x3, 0);
      operands[2] = x4;
      if (!s_register_operand (operands[2], E_SImode))
        return -1;
      x5 = XEXP (x3, 1);
      operands[3] = x5;
      if (!arm_rhs_operand (operands[3], E_SImode))
        return -1;
      x6 = XEXP (x2, 1);
      operands[1] = x6;
      if (!s_register_operand (operands[1], E_SImode)
          || !
#line 10093 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      *pnum_clobbers = 1;
      return 338; /* *cond_arith */

    case SUBREG:
    case MEM:
      operands[2] = x3;
      if (!memory_operand (operands[2], E_SImode))
        return -1;
      operands[1] = x2;
      x6 = XEXP (x2, 1);
      operands[3] = x6;
      if (!memory_operand (operands[3], E_SImode)
          || !
#line 11455 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && adjacent_mem_locations (operands[2], operands[3])))
        return -1;
      *pnum_clobbers = 1;
      return 380; /* *arith_adjacentmem */

    default:
      return -1;
    }
}

static int
recog_264 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    case PLUS:
      if (!register_operand (operands[0], E_SImode))
        return -1;
      x3 = XEXP (x2, 0);
      operands[1] = x3;
      if (!register_operand (operands[1], E_SImode))
        return -1;
      x4 = XEXP (x2, 1);
      operands[2] = x4;
      if (!nonmemory_operand (operands[2], E_SImode)
          || !
#line 66 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 935; /* *thumb1_addsi3 */

    case MINUS:
      if (!register_operand (operands[0], E_SImode))
        return -1;
      x3 = XEXP (x2, 0);
      operands[1] = x3;
      if (!register_operand (operands[1], E_SImode))
        return -1;
      x4 = XEXP (x2, 1);
      operands[2] = x4;
      if (!reg_or_int_operand (operands[2], E_SImode)
          || !
#line 146 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 937; /* thumb1_subsi3_insn */

    case AND:
      x3 = XEXP (x2, 0);
      operands[1] = x3;
      switch (GET_CODE (operands[1]))
        {
        case REG:
        case SUBREG:
          if (!register_operand (operands[1], E_SImode)
              || !register_operand (operands[0], E_SImode))
            return -1;
          x4 = XEXP (x2, 1);
          operands[2] = x4;
          if (!register_operand (operands[2], E_SImode)
              || !
#line 192 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return -1;
          return 940; /* *thumb1_andsi3_insn */

        case NE:
        case EQ:
        case GE:
        case GT:
        case LE:
        case LT:
        case GEU:
        case GTU:
        case LEU:
        case LTU:
        case UNORDERED:
        case ORDERED:
        case UNGE:
        case UNGT:
        case UNLE:
        case UNLT:
          if (!arm_comparison_operator (operands[1], E_SImode))
            return -1;
          x5 = XEXP (x3, 1);
          if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
              || !s_register_operand (operands[0], E_SImode))
            return -1;
          x6 = XEXP (x3, 0);
          operands[2] = x6;
          if (!cc_register (operands[2], E_VOIDmode))
            return -1;
          x4 = XEXP (x2, 1);
          operands[3] = x4;
          if (!s_register_operand (operands[3], E_SImode)
              || !
#line 618 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
            return -1;
          return 1025; /* *thumb2_and_scc */

        default:
          return -1;
        }

    case IOR:
      x3 = XEXP (x2, 0);
      switch (GET_CODE (x3))
        {
        case REG:
        case SUBREG:
          operands[1] = x3;
          if (!register_operand (operands[1], E_SImode)
              || !register_operand (operands[0], E_SImode))
            return -1;
          x4 = XEXP (x2, 1);
          operands[2] = x4;
          if (!register_operand (operands[2], E_SImode)
              || !
#line 250 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return -1;
          return 942; /* *thumb1_iorsi3_insn */

        case NE:
        case EQ:
        case GE:
        case GT:
        case LE:
        case LT:
        case GEU:
        case GTU:
        case LEU:
        case LTU:
        case UNORDERED:
        case ORDERED:
        case UNGE:
        case UNGT:
        case UNLE:
        case UNLT:
          if (!arm_comparison_operator (x3, E_SImode))
            return -1;
          x5 = XEXP (x3, 1);
          if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
              || !s_register_operand (operands[0], E_SImode))
            return -1;
          x6 = XEXP (x3, 0);
          if (!cc_register (x6, E_VOIDmode))
            return -1;
          operands[2] = x6;
          operands[1] = x3;
          x4 = XEXP (x2, 1);
          operands[3] = x4;
          if (s_register_operand (operands[3], E_SImode)
              && 
#line 646 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !arm_restrict_it))
            return 1026; /* *thumb2_ior_scc */
          operands[3] = x6;
          operands[2] = x3;
          operands[1] = x4;
          if (!s_register_operand (operands[1], E_SImode)
              || !
#line 677 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_restrict_it))
            return -1;
          return 1027; /* *thumb2_ior_scc_strict_it */

        default:
          return -1;
        }

    case XOR:
      if (!register_operand (operands[0], E_SImode))
        return -1;
      x3 = XEXP (x2, 0);
      operands[1] = x3;
      if (!register_operand (operands[1], E_SImode))
        return -1;
      x4 = XEXP (x2, 1);
      operands[2] = x4;
      if (!register_operand (operands[2], E_SImode)
          || !
#line 264 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 943; /* *thumb1_xorsi3_insn */

    default:
      return -1;
    }
}

static int
recog_265 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  if (!s_register_operand (x3, E_SImode))
    return -1;
  x4 = XEXP (x2, 0);
  switch (GET_CODE (x4))
    {
    case NE:
    case EQ:
    case GE:
    case GT:
    case LE:
    case LT:
    case GEU:
    case GTU:
    case LEU:
    case LTU:
    case UNORDERED:
    case ORDERED:
    case UNGE:
    case UNGT:
    case UNLE:
    case UNLT:
      operands[4] = x4;
      if (!arm_comparison_operator (operands[4], E_SImode))
        return -1;
      operands[5] = x2;
      if (!shiftable_operator (operands[5], E_SImode))
        return -1;
      x5 = XEXP (x4, 0);
      operands[2] = x5;
      if (!s_register_operand (operands[2], E_SImode))
        return -1;
      x6 = XEXP (x4, 1);
      operands[3] = x6;
      if (!arm_rhs_operand (operands[3], E_SImode))
        return -1;
      operands[1] = x3;
      if (!
#line 756 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !arm_restrict_it))
        return -1;
      *pnum_clobbers = 1;
      return 1029; /* *thumb2_cond_arith */

    case REG:
    case SUBREG:
      operands[1] = x4;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      operands[3] = x2;
      if (!thumb_16bit_operator (operands[3], E_SImode))
        return -1;
      operands[2] = x3;
      if (!
#line 1256 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed
   && GET_CODE(operands[3]) != PLUS
   && GET_CODE(operands[3]) != MINUS))
        return -1;
      *pnum_clobbers = 1;
      return 1045; /* *thumb2_alusi3_short */

    default:
      return -1;
    }
}

static int
recog_266 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 1);
  x5 = XVECEXP (x4, 0, 0);
  operands[2] = x5;
  if (!immediate_operand (operands[2], E_SImode))
    return -1;
  if (register_operand (operands[0], E_SImode))
    {
      switch (GET_MODE (x3))
        {
        case E_QImode:
          if (register_operand (operands[1], E_V8QImode)
              && 
#line 736 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 582; /* iwmmxt_textrmsb */
          break;

        case E_HImode:
          if (register_operand (operands[1], E_V4HImode)
              && 
#line 758 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 584; /* iwmmxt_textrmsh */
          break;

        default:
          break;
        }
    }
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  switch (pattern499 (x3))
    {
    case 0:
      if (!
#line 3184 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2023; /* neon_vget_lanev8qi_sext_internal */

    case 1:
      if (
#line 3222 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return 2031; /* neon_vget_lanev16qi_sext_internal */
      if (!
#line 10099 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V16QImode))
   || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V16QImode))))
        return -1;
      return 4910; /* *mve_vec_extract_sext_internalv16qi */

    case 2:
      if (!
#line 3184 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2024; /* neon_vget_lanev4hi_sext_internal */

    case 3:
      if (
#line 3222 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return 2032; /* neon_vget_lanev8hi_sext_internal */
      if (!
#line 10099 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V8HImode))
   || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V8HImode))))
        return -1;
      return 4911; /* *mve_vec_extract_sext_internalv8hi */

    case 4:
      if (!
#line 3184 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2025; /* neon_vget_lanev2si_sext_internal */

    case 5:
      if (
#line 3222 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return 2034; /* neon_vget_lanev4si_sext_internal */
      if (!
#line 10099 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V4SImode))
   || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V4SImode))))
        return -1;
      return 4912; /* *mve_vec_extract_sext_internalv4si */

    case 6:
      if (!
#line 3184 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2026; /* neon_vget_lanev2sf_sext_internal */

    case 7:
      if (!
#line 3222 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2035; /* neon_vget_lanev4sf_sext_internal */

    case 8:
      if (!
#line 3222 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2033; /* neon_vget_lanev8hf_sext_internal */

    default:
      return -1;
    }
}

static int
recog_267 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 1);
  x5 = XVECEXP (x4, 0, 0);
  operands[2] = x5;
  if (!immediate_operand (operands[2], E_SImode))
    return -1;
  if (register_operand (operands[0], E_SImode))
    {
      switch (GET_MODE (x3))
        {
        case E_QImode:
          if (register_operand (operands[1], E_V8QImode)
              && 
#line 725 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 581; /* iwmmxt_textrmub */
          break;

        case E_HImode:
          if (register_operand (operands[1], E_V4HImode)
              && 
#line 747 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 583; /* iwmmxt_textrmuh */
          break;

        default:
          break;
        }
    }
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  switch (pattern499 (x3))
    {
    case 0:
      if (!
#line 3203 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2027; /* neon_vget_lanev8qi_zext_internal */

    case 1:
      if (
#line 3249 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return 2036; /* neon_vget_lanev16qi_zext_internal */
      if (!
#line 10118 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V16QImode))
   || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V16QImode))))
        return -1;
      return 4913; /* *mve_vec_extract_zext_internalv16qi */

    case 2:
      if (!
#line 3203 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2028; /* neon_vget_lanev4hi_zext_internal */

    case 3:
      if (
#line 3249 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return 2037; /* neon_vget_lanev8hi_zext_internal */
      if (!
#line 10118 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V8HImode))
   || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V8HImode))))
        return -1;
      return 4914; /* *mve_vec_extract_zext_internalv8hi */

    case 4:
      if (!
#line 3203 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2029; /* neon_vget_lanev2si_zext_internal */

    case 5:
      if (
#line 3249 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return 2039; /* neon_vget_lanev4si_zext_internal */
      if (!
#line 10118 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V4SImode))
   || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V4SImode))))
        return -1;
      return 4915; /* *mve_vec_extract_zext_internalv4si */

    case 6:
      if (!
#line 3203 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2030; /* neon_vget_lanev2sf_zext_internal */

    case 7:
      if (!
#line 3249 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2040; /* neon_vget_lanev4sf_zext_internal */

    case 8:
      if (!
#line 3249 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2038; /* neon_vget_lanev8hf_zext_internal */

    default:
      return -1;
    }
}

static int
recog_268 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  switch (GET_CODE (x3))
    {
    case GEU:
    case LTU:
      operands[1] = x3;
      if (arm_borrow_operation (operands[1], E_SImode)
          && s_register_operand (operands[0], E_SImode)
          && GET_MODE (x2) == E_SImode
          && 
#line 8094 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return 280; /* *negscc_borrow */
      if (GET_CODE (x3) == GEU)
        {
          switch (pattern319 (x2))
            {
            case 0:
              if (
#line 2427 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1721; /* neon_vcgeuv8qi */
              break;

            case 1:
              if (
#line 2427 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1723; /* neon_vcgeuv16qi */
              break;

            case 2:
              if (
#line 2427 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1725; /* neon_vcgeuv4hi */
              break;

            case 3:
              if (
#line 2427 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1727; /* neon_vcgeuv8hi */
              break;

            case 4:
              if (
#line 2427 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1729; /* neon_vcgeuv2si */
              break;

            case 5:
              if (
#line 2427 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1731; /* neon_vcgeuv4si */
              break;

            default:
              break;
            }
        }
      break;

    case EQ:
      switch (pattern315 (x2))
        {
        case 0:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V8QImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1650; /* neon_vceqv8qi_insn */
          break;

        case 1:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V16QImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1655; /* neon_vceqv16qi_insn */
          break;

        case 2:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4HImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1660; /* neon_vceqv4hi_insn */
          break;

        case 3:
          if (
#line 2383 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST
  && !(GET_MODE_CLASS (V4HFmode) == MODE_VECTOR_FLOAT
  && !flag_unsafe_math_optimizations)))
            return 1705; /* neon_vceqv4hf_fp16insn */
          break;

        case 4:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V8HImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1665; /* neon_vceqv8hi_insn */
          break;

        case 5:
          if (
#line 2383 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST
  && !(GET_MODE_CLASS (V8HFmode) == MODE_VECTOR_FLOAT
  && !flag_unsafe_math_optimizations)))
            return 1700; /* neon_vceqv8hf_fp16insn */
          break;

        case 6:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V2SImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1670; /* neon_vceqv2si_insn */
          break;

        case 7:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V2SFmode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1680; /* neon_vceqv2sf_insn */
          break;

        case 8:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4SImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1675; /* neon_vceqv4si_insn */
          break;

        case 9:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4SFmode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1685; /* neon_vceqv4sf_insn */
          break;

        default:
          break;
        }
      break;

    case GT:
      switch (pattern317 (x2))
        {
        case 0:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V8QImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1651; /* neon_vcgtv8qi_insn */
          break;

        case 1:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V16QImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1656; /* neon_vcgtv16qi_insn */
          break;

        case 2:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4HImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1661; /* neon_vcgtv4hi_insn */
          break;

        case 3:
          if (
#line 2383 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST
  && !(GET_MODE_CLASS (V4HFmode) == MODE_VECTOR_FLOAT
  && !flag_unsafe_math_optimizations)))
            return 1706; /* neon_vcgtv4hf_fp16insn */
          break;

        case 4:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V8HImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1666; /* neon_vcgtv8hi_insn */
          break;

        case 5:
          if (
#line 2383 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST
  && !(GET_MODE_CLASS (V8HFmode) == MODE_VECTOR_FLOAT
  && !flag_unsafe_math_optimizations)))
            return 1701; /* neon_vcgtv8hf_fp16insn */
          break;

        case 6:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V2SImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1671; /* neon_vcgtv2si_insn */
          break;

        case 7:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V2SFmode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1681; /* neon_vcgtv2sf_insn */
          break;

        case 8:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4SImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1676; /* neon_vcgtv4si_insn */
          break;

        case 9:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4SFmode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1686; /* neon_vcgtv4sf_insn */
          break;

        case 10:
          if (
#line 2457 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && flag_unsafe_math_optimizations))
            return 1732; /* neon_vcagtv2sf_insn */
          break;

        case 11:
          if (
#line 2457 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && flag_unsafe_math_optimizations))
            return 1736; /* neon_vcagtv4sf_insn */
          break;

        case 12:
          if (
#line 2497 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST && flag_unsafe_math_optimizations))
            return 1748; /* neon_vcagtv8hf_fp16insn */
          break;

        case 13:
          if (
#line 2497 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST && flag_unsafe_math_optimizations))
            return 1752; /* neon_vcagtv4hf_fp16insn */
          break;

        default:
          break;
        }
      break;

    case GE:
      switch (pattern317 (x2))
        {
        case 0:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V8QImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1652; /* neon_vcgev8qi_insn */
          break;

        case 1:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V16QImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1657; /* neon_vcgev16qi_insn */
          break;

        case 2:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4HImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1662; /* neon_vcgev4hi_insn */
          break;

        case 3:
          if (
#line 2383 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST
  && !(GET_MODE_CLASS (V4HFmode) == MODE_VECTOR_FLOAT
  && !flag_unsafe_math_optimizations)))
            return 1707; /* neon_vcgev4hf_fp16insn */
          break;

        case 4:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V8HImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1667; /* neon_vcgev8hi_insn */
          break;

        case 5:
          if (
#line 2383 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST
  && !(GET_MODE_CLASS (V8HFmode) == MODE_VECTOR_FLOAT
  && !flag_unsafe_math_optimizations)))
            return 1702; /* neon_vcgev8hf_fp16insn */
          break;

        case 6:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V2SImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1672; /* neon_vcgev2si_insn */
          break;

        case 7:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V2SFmode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1682; /* neon_vcgev2sf_insn */
          break;

        case 8:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4SImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1677; /* neon_vcgev4si_insn */
          break;

        case 9:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4SFmode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1687; /* neon_vcgev4sf_insn */
          break;

        case 10:
          if (
#line 2457 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && flag_unsafe_math_optimizations))
            return 1733; /* neon_vcagev2sf_insn */
          break;

        case 11:
          if (
#line 2457 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && flag_unsafe_math_optimizations))
            return 1737; /* neon_vcagev4sf_insn */
          break;

        case 12:
          if (
#line 2497 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST && flag_unsafe_math_optimizations))
            return 1749; /* neon_vcagev8hf_fp16insn */
          break;

        case 13:
          if (
#line 2497 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST && flag_unsafe_math_optimizations))
            return 1753; /* neon_vcagev4hf_fp16insn */
          break;

        default:
          break;
        }
      break;

    case LE:
      switch (pattern317 (x2))
        {
        case 0:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V8QImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1653; /* neon_vclev8qi_insn */
          break;

        case 1:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V16QImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1658; /* neon_vclev16qi_insn */
          break;

        case 2:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4HImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1663; /* neon_vclev4hi_insn */
          break;

        case 3:
          if (
#line 2383 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST
  && !(GET_MODE_CLASS (V4HFmode) == MODE_VECTOR_FLOAT
  && !flag_unsafe_math_optimizations)))
            return 1708; /* neon_vclev4hf_fp16insn */
          break;

        case 4:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V8HImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1668; /* neon_vclev8hi_insn */
          break;

        case 5:
          if (
#line 2383 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST
  && !(GET_MODE_CLASS (V8HFmode) == MODE_VECTOR_FLOAT
  && !flag_unsafe_math_optimizations)))
            return 1703; /* neon_vclev8hf_fp16insn */
          break;

        case 6:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V2SImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1673; /* neon_vclev2si_insn */
          break;

        case 7:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V2SFmode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1683; /* neon_vclev2sf_insn */
          break;

        case 8:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4SImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1678; /* neon_vclev4si_insn */
          break;

        case 9:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4SFmode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1688; /* neon_vclev4sf_insn */
          break;

        case 10:
          if (
#line 2457 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && flag_unsafe_math_optimizations))
            return 1735; /* neon_vcalev2sf_insn */
          break;

        case 11:
          if (
#line 2457 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && flag_unsafe_math_optimizations))
            return 1739; /* neon_vcalev4sf_insn */
          break;

        case 12:
          if (
#line 2497 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST && flag_unsafe_math_optimizations))
            return 1751; /* neon_vcalev8hf_fp16insn */
          break;

        case 13:
          if (
#line 2497 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST && flag_unsafe_math_optimizations))
            return 1755; /* neon_vcalev4hf_fp16insn */
          break;

        default:
          break;
        }
      break;

    case LT:
      switch (pattern317 (x2))
        {
        case 0:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V8QImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1654; /* neon_vcltv8qi_insn */
          break;

        case 1:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V16QImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1659; /* neon_vcltv16qi_insn */
          break;

        case 2:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4HImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1664; /* neon_vcltv4hi_insn */
          break;

        case 3:
          if (
#line 2383 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST
  && !(GET_MODE_CLASS (V4HFmode) == MODE_VECTOR_FLOAT
  && !flag_unsafe_math_optimizations)))
            return 1709; /* neon_vcltv4hf_fp16insn */
          break;

        case 4:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V8HImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1669; /* neon_vcltv8hi_insn */
          break;

        case 5:
          if (
#line 2383 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST
  && !(GET_MODE_CLASS (V8HFmode) == MODE_VECTOR_FLOAT
  && !flag_unsafe_math_optimizations)))
            return 1704; /* neon_vcltv8hf_fp16insn */
          break;

        case 6:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V2SImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1674; /* neon_vcltv2si_insn */
          break;

        case 7:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V2SFmode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1684; /* neon_vcltv2sf_insn */
          break;

        case 8:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4SImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1679; /* neon_vcltv4si_insn */
          break;

        case 9:
          if (
#line 2317 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4SFmode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1689; /* neon_vcltv4sf_insn */
          break;

        case 10:
          if (
#line 2457 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && flag_unsafe_math_optimizations))
            return 1734; /* neon_vcaltv2sf_insn */
          break;

        case 11:
          if (
#line 2457 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && flag_unsafe_math_optimizations))
            return 1738; /* neon_vcaltv4sf_insn */
          break;

        case 12:
          if (
#line 2497 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST && flag_unsafe_math_optimizations))
            return 1750; /* neon_vcaltv8hf_fp16insn */
          break;

        case 13:
          if (
#line 2497 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST && flag_unsafe_math_optimizations))
            return 1754; /* neon_vcaltv4hf_fp16insn */
          break;

        default:
          break;
        }
      break;

    case GTU:
      switch (pattern319 (x2))
        {
        case 0:
          if (
#line 2427 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1720; /* neon_vcgtuv8qi */
          break;

        case 1:
          if (
#line 2427 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1722; /* neon_vcgtuv16qi */
          break;

        case 2:
          if (
#line 2427 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1724; /* neon_vcgtuv4hi */
          break;

        case 3:
          if (
#line 2427 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1726; /* neon_vcgtuv8hi */
          break;

        case 4:
          if (
#line 2427 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1728; /* neon_vcgtuv2si */
          break;

        case 5:
          if (
#line 2427 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1730; /* neon_vcgtuv4si */
          break;

        default:
          break;
        }
      break;

    default:
      break;
    }
  operands[1] = x3;
  if (arm_comparison_operator_mode (operands[1], E_SImode))
    {
      x4 = XEXP (x3, 1);
      if (x4 == const_int_rtx[MAX_SAVED_CONST_INT + 0]
          && s_register_operand (operands[0], E_SImode)
          && GET_MODE (x2) == E_SImode)
        {
          x5 = XEXP (x3, 0);
          operands[2] = x5;
          if (cc_register (operands[2], E_VOIDmode)
              && 
#line 8105 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && !arm_borrow_operation (operands[1], SImode)))
            return 281; /* *mov_negscc */
        }
    }
  if (pnum_clobbers != NULL)
    {
      operands[3] = x3;
      if (arm_comparison_operator (operands[3], E_VOIDmode)
          && s_register_operand (operands[0], E_SImode)
          && GET_MODE (x2) == E_SImode)
        {
          x5 = XEXP (x3, 0);
          operands[1] = x5;
          if (s_register_operand (operands[1], E_SImode))
            {
              x4 = XEXP (x3, 1);
              operands[2] = x4;
              if (arm_rhs_operand (operands[2], E_SImode)
                  && 
#line 10675 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                {
                  *pnum_clobbers = 1;
                  return 349; /* *negscc */
                }
            }
        }
    }
  if (GET_MODE (x2) != E_SImode)
    return -1;
  if (GET_CODE (x3) == LTU
      && GET_MODE (x3) == E_SImode
      && s_register_operand (operands[0], E_SImode))
    {
      x5 = XEXP (x3, 0);
      operands[1] = x5;
      if (s_register_operand (operands[1], E_SImode))
        {
          x4 = XEXP (x3, 1);
          operands[2] = x4;
          if (thumb1_cmp_operand (operands[2], E_SImode)
              && 
#line 1743 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return 980; /* cstoresi_nltu_thumb1 */
        }
    }
  x4 = XEXP (x3, 1);
  if (x4 == const_int_rtx[MAX_SAVED_CONST_INT + 0])
    {
      operands[1] = x3;
      if (arm_comparison_operator_mode (operands[1], E_SImode))
        {
          x5 = XEXP (x3, 0);
          operands[2] = x5;
          if (cc_register (operands[2], E_VOIDmode))
            {
              if (s_register_operand (operands[0], E_SImode)
                  && 
#line 344 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2
   && !arm_restrict_it
   && !arm_borrow_operation (operands[1], SImode)))
                return 1012; /* *thumb2_mov_negscc */
              if (low_register_operand (operands[0], E_SImode)
                  && 
#line 365 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2
   && arm_restrict_it
   && !arm_borrow_operation (operands[1], SImode)))
                return 1013; /* *thumb2_mov_negscc_strict_it */
            }
        }
    }
  if (pnum_clobbers == NULL
      || !s_register_operand (operands[0], E_SImode))
    return -1;
  operands[3] = x3;
  if (!arm_comparison_operator (operands[3], E_VOIDmode))
    return -1;
  x5 = XEXP (x3, 0);
  operands[1] = x5;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  operands[2] = x4;
  if (!arm_rhs_operand (operands[2], E_SImode)
      || !
#line 899 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !TARGET_COND_ARITH))
    return -1;
  *pnum_clobbers = 1;
  return 1032; /* *thumb2_negscc */
}

static int
recog_269 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (XVECLEN (x2, 0))
    {
    case 8:
      if (pattern320 (x2, E_V8QImode) != 0)
        return -1;
      x3 = XVECEXP (x2, 0, 4);
      if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x4 = XVECEXP (x2, 0, 5);
      if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x5 = XVECEXP (x2, 0, 6);
      if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x6 = XVECEXP (x2, 0, 7);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
          || !s_register_operand (operands[0], E_V8QImode)
          || !
#line 574 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 571; /* iwmmxt_clrv8qi */

    case 4:
      if (pattern320 (x2, E_V4HImode) != 0
          || !s_register_operand (operands[0], E_V4HImode)
          || !
#line 584 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 572; /* iwmmxt_clrv4hi */

    case 2:
      if (GET_MODE (x2) != E_V2SImode)
        return -1;
      x7 = XVECEXP (x2, 0, 0);
      if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x8 = XVECEXP (x2, 0, 1);
      if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
          || !register_operand (operands[0], E_V2SImode)
          || !
#line 593 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 573; /* iwmmxt_clrv2si */

    default:
      return -1;
    }
}

static int
recog_270 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (maybe_ne (SUBREG_BYTE (x2), 0)
      || GET_MODE (x2) != E_V8QImode)
    return -1;
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != ASHIFTRT
      || GET_MODE (x3) != E_TImode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != SUBREG
      || maybe_ne (SUBREG_BYTE (x4), 0)
      || GET_MODE (x4) != E_TImode)
    return -1;
  x5 = XEXP (x4, 0);
  if (GET_CODE (x5) != VEC_CONCAT
      || GET_MODE (x5) != E_V16QImode)
    return -1;
  x6 = XEXP (x3, 1);
  if (GET_CODE (x6) != MULT
      || GET_MODE (x6) != E_SImode)
    return -1;
  x7 = XEXP (x6, 0);
  if (GET_CODE (x7) != ZERO_EXTRACT
      || GET_MODE (x7) != E_SImode)
    return -1;
  x8 = XEXP (x7, 1);
  if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
    return -1;
  x9 = XEXP (x7, 2);
  if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x10 = XEXP (x6, 1);
  if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 8]
      || !register_operand (operands[0], E_V8QImode))
    return -1;
  x11 = XEXP (x5, 0);
  operands[1] = x11;
  if (!register_operand (operands[1], E_V8QImode))
    return -1;
  x12 = XEXP (x5, 1);
  operands[2] = x12;
  if (!register_operand (operands[2], E_V8QImode))
    return -1;
  x13 = XEXP (x7, 0);
  operands[3] = x13;
  if (register_operand (operands[3], E_SImode)
      && 
#line 1656 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
    return 671; /* iwmmxt_walignr */
  if (GET_CODE (x13) != REG
      || GET_MODE (x13) != E_SImode)
    return -1;
  switch (REGNO (x13))
    {
    case 96:
      if (!
#line 1671 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 672; /* iwmmxt_walignr0 */

    case 97:
      if (!
#line 1686 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 673; /* iwmmxt_walignr1 */

    case 98:
      if (!
#line 1701 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 674; /* iwmmxt_walignr2 */

    case 99:
      if (!
#line 1716 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 675; /* iwmmxt_walignr3 */

    default:
      return -1;
    }
}

static int
recog_271 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  switch (GET_MODE (operands[0]))
    {
    case E_DImode:
      if (!nonimmediate_operand (operands[0], E_DImode)
          || !general_operand (operands[1], E_DImode))
        return -1;
      if (
#line 615 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1
   && (   register_operand (operands[0], DImode)
       || register_operand (operands[1], DImode))))
        return 958; /* *thumb1_movdi_insn */
      if (!
#line 41 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], DImode)
       || register_operand (operands[1], DImode))))
        return -1;
      return 1077; /* *neon_movdi */

    case E_SImode:
      if (!nonimmediate_operand (operands[0], E_SImode)
          || !general_operand (operands[1], E_SImode)
          || !
#line 661 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1
   && (   register_operand (operands[0], SImode)
       || register_operand (operands[1], SImode))))
        return -1;
      return 959; /* *thumb1_movsi_insn */

    case E_HImode:
      if (nonimmediate_operand (operands[0], E_HImode)
          && general_operand (operands[1], E_HImode))
        {
          if (
#line 802 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1
   && (   register_operand (operands[0], HImode)
       || register_operand (operands[1], HImode))))
            return 960; /* *thumb1_movhi_insn */
          if (
#line 289 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2
  && (register_operand (operands[0], HImode)
     || register_operand (operands[1], HImode))))
            return 1009; /* *thumb2_movhi_insn */
        }
      if (pnum_clobbers == NULL
          || !low_register_operand (operands[0], E_HImode)
          || !const_int_operand (operands[1], E_HImode)
          || !
#line 1289 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
        return -1;
      *pnum_clobbers = 1;
      return 1048; /* *thumb2_movhi_shortim */

    case E_QImode:
      if (nonimmediate_operand (operands[0], E_QImode)
          && general_operand (operands[1], E_QImode)
          && 
#line 859 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1
   && (   register_operand (operands[0], QImode)
       || register_operand (operands[1], QImode))))
        return 961; /* *thumb1_movqi_insn */
      if (pnum_clobbers == NULL
          || !low_register_operand (operands[0], E_QImode)
          || !const_int_operand (operands[1], E_QImode)
          || !
#line 1289 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
        return -1;
      *pnum_clobbers = 1;
      return 1047; /* *thumb2_movqi_shortim */

    case E_HFmode:
      if (!nonimmediate_operand (operands[0], E_HFmode)
          || !general_operand (operands[1], E_HFmode)
          || !
#line 877 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1
   && (	  s_register_operand (operands[0], HFmode)
       || s_register_operand (operands[1], HFmode))))
        return -1;
      return 962; /* *thumb1_movhf */

    case E_SFmode:
      if (!nonimmediate_operand (operands[0], E_SFmode)
          || !general_operand (operands[1], E_SFmode)
          || !
#line 933 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1
   && (   register_operand (operands[0], SFmode)
       || register_operand (operands[1], SFmode))))
        return -1;
      return 963; /* *thumb1_movsf_insn */

    case E_DFmode:
      if (!nonimmediate_operand (operands[0], E_DFmode)
          || !general_operand (operands[1], E_DFmode)
          || !
#line 957 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1
   && (   register_operand (operands[0], DFmode)
       || register_operand (operands[1], DFmode))))
        return -1;
      return 964; /* *thumb_movdf_insn */

    case E_V8QImode:
      if (!nonimmediate_operand (operands[0], E_V8QImode)
          || !general_operand (operands[1], E_V8QImode)
          || !
#line 41 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], V8QImode)
       || register_operand (operands[1], V8QImode))))
        return -1;
      return 1071; /* *neon_movv8qi */

    case E_V4HImode:
      if (!nonimmediate_operand (operands[0], E_V4HImode)
          || !general_operand (operands[1], E_V4HImode)
          || !
#line 41 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], V4HImode)
       || register_operand (operands[1], V4HImode))))
        return -1;
      return 1072; /* *neon_movv4hi */

    case E_V4HFmode:
      if (!nonimmediate_operand (operands[0], E_V4HFmode)
          || !general_operand (operands[1], E_V4HFmode)
          || !
#line 41 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], V4HFmode)
       || register_operand (operands[1], V4HFmode))))
        return -1;
      return 1073; /* *neon_movv4hf */

    case E_V4BFmode:
      if (!nonimmediate_operand (operands[0], E_V4BFmode)
          || !general_operand (operands[1], E_V4BFmode)
          || !
#line 41 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], V4BFmode)
       || register_operand (operands[1], V4BFmode))))
        return -1;
      return 1074; /* *neon_movv4bf */

    case E_V2SImode:
      if (!nonimmediate_operand (operands[0], E_V2SImode)
          || !general_operand (operands[1], E_V2SImode)
          || !
#line 41 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], V2SImode)
       || register_operand (operands[1], V2SImode))))
        return -1;
      return 1075; /* *neon_movv2si */

    case E_V2SFmode:
      if (!nonimmediate_operand (operands[0], E_V2SFmode)
          || !general_operand (operands[1], E_V2SFmode)
          || !
#line 41 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], V2SFmode)
       || register_operand (operands[1], V2SFmode))))
        return -1;
      return 1076; /* *neon_movv2sf */

    case E_V16QImode:
      if (!nonimmediate_operand (operands[0], E_V16QImode)
          || !general_operand (operands[1], E_V16QImode))
        return -1;
      if (
#line 88 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], V16QImode)
       || register_operand (operands[1], V16QImode))))
        return 1078; /* *neon_movv16qi */
      if (!
#line 23 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE || TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3038; /* *mve_movv16qi */

    case E_V8HImode:
      if (!nonimmediate_operand (operands[0], E_V8HImode)
          || !general_operand (operands[1], E_V8HImode))
        return -1;
      if (
#line 88 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], V8HImode)
       || register_operand (operands[1], V8HImode))))
        return 1079; /* *neon_movv8hi */
      if (!
#line 23 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE || TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3039; /* *mve_movv8hi */

    case E_V8HFmode:
      if (!nonimmediate_operand (operands[0], E_V8HFmode)
          || !general_operand (operands[1], E_V8HFmode))
        return -1;
      if (
#line 88 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], V8HFmode)
       || register_operand (operands[1], V8HFmode))))
        return 1080; /* *neon_movv8hf */
      if (!
#line 23 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE || TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3043; /* *mve_movv8hf */

    case E_V8BFmode:
      if (!nonimmediate_operand (operands[0], E_V8BFmode)
          || !general_operand (operands[1], E_V8BFmode)
          || !
#line 88 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], V8BFmode)
       || register_operand (operands[1], V8BFmode))))
        return -1;
      return 1081; /* *neon_movv8bf */

    case E_V4SImode:
      if (!nonimmediate_operand (operands[0], E_V4SImode)
          || !general_operand (operands[1], E_V4SImode))
        return -1;
      if (
#line 88 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], V4SImode)
       || register_operand (operands[1], V4SImode))))
        return 1082; /* *neon_movv4si */
      if (!
#line 23 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE || TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3040; /* *mve_movv4si */

    case E_V4SFmode:
      if (!nonimmediate_operand (operands[0], E_V4SFmode)
          || !general_operand (operands[1], E_V4SFmode))
        return -1;
      if (
#line 88 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], V4SFmode)
       || register_operand (operands[1], V4SFmode))))
        return 1083; /* *neon_movv4sf */
      if (!
#line 23 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE || TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3044; /* *mve_movv4sf */

    case E_V2DImode:
      if (!nonimmediate_operand (operands[0], E_V2DImode)
          || !general_operand (operands[1], E_V2DImode))
        return -1;
      if (
#line 88 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], V2DImode)
       || register_operand (operands[1], V2DImode))))
        return 1084; /* *neon_movv2di */
      if (!
#line 23 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE || TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3041; /* *mve_movv2di */

    case E_TImode:
      if (!nonimmediate_operand (operands[0], E_TImode)
          || !general_operand (operands[1], E_TImode))
        return -1;
      if (
#line 88 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], TImode)
       || register_operand (operands[1], TImode))))
        return 1085; /* *neon_movti */
      if (!
#line 23 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE || TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3042; /* *mve_movti */

    case E_EImode:
      if (!nonimmediate_operand (operands[0], E_EImode)
          || !general_operand (operands[1], E_EImode)
          || !(
#line 184 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
((TARGET_NEON || TARGET_HAVE_MVE)
   && (register_operand (operands[0], EImode)
       || register_operand (operands[1], EImode))) && 
#line 137 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(!TARGET_HAVE_MVE)))
        return -1;
      return 1086; /* *neon_movei */

    case E_OImode:
      if (!nonimmediate_operand (operands[0], E_OImode)
          || !general_operand (operands[1], E_OImode)
          || !
#line 184 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
((TARGET_NEON || TARGET_HAVE_MVE)
   && (register_operand (operands[0], OImode)
       || register_operand (operands[1], OImode))))
        return -1;
      return 1087; /* *neon_movoi */

    case E_CImode:
      if (!nonimmediate_operand (operands[0], E_CImode)
          || !general_operand (operands[1], E_CImode)
          || !(
#line 184 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
((TARGET_NEON || TARGET_HAVE_MVE)
   && (register_operand (operands[0], CImode)
       || register_operand (operands[1], CImode))) && 
#line 138 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(!TARGET_HAVE_MVE)))
        return -1;
      return 1088; /* *neon_movci */

    case E_XImode:
      if (!nonimmediate_operand (operands[0], E_XImode)
          || !general_operand (operands[1], E_XImode)
          || !
#line 184 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
((TARGET_NEON || TARGET_HAVE_MVE)
   && (register_operand (operands[0], XImode)
       || register_operand (operands[1], XImode))))
        return -1;
      return 1089; /* *neon_movxi */

    case E_V2DFmode:
      if (!nonimmediate_operand (operands[0], E_V2DFmode)
          || !general_operand (operands[1], E_V2DFmode)
          || !
#line 23 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE || TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3045; /* *mve_movv2df */

    default:
      return -1;
    }
}

static int
recog_272 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24, x25;
  rtx x26, x27, x28, x29, x30, x31, x32, x33;
  rtx x34, x35, x36, x37, x38, x39, x40, x41;
  rtx x42, x43, x44, x45, x46, x47, x48, x49;
  rtx x50, x51, x52, x53, x54, x55, x56, x57;
  rtx x58, x59, x60, x61, x62, x63, x64, x65;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case LSHIFTRT:
      x5 = XEXP (x4, 1);
      if (GET_CODE (x5) != CONST_INT)
        return -1;
      x6 = XEXP (x4, 0);
      switch (GET_CODE (x6))
        {
        case MULT:
          x7 = XEXP (x6, 0);
          switch (GET_CODE (x7))
            {
            case SIGN_EXTEND:
              switch (pattern383 (x3, SIGN_EXTEND))
                {
                case 0:
                  if (pattern489 (x3, pnum_clobbers) != 0
                      || !
#line 2501 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                    return -1;
                  *pnum_clobbers = 1;
                  return 71; /* *smull_high */

                case 1:
                  if (!
#line 494 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                    return -1;
                  return 564; /* smulv4hi3_highpart */

                default:
                  return -1;
                }

            case ZERO_EXTEND:
              switch (pattern383 (x3, ZERO_EXTEND))
                {
                case 0:
                  switch (GET_MODE (operands[0]))
                    {
                    case E_SImode:
                      if (pattern489 (x3, pnum_clobbers) != 0
                          || !
#line 2501 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                        return -1;
                      *pnum_clobbers = 1;
                      return 72; /* *umull_high */

                    case E_V2SImode:
                      if (pattern382 (x3, E_V2SImode, E_V2DImode) != 0
                          || !
#line 279 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                        return -1;
                      return 697; /* iwmmxt_wmulwum */

                    default:
                      return -1;
                    }

                case 1:
                  if (!
#line 507 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                    return -1;
                  return 565; /* umulv4hi3_highpart */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case PLUS:
          x7 = XEXP (x6, 0);
          switch (GET_CODE (x7))
            {
            case PLUS:
              x8 = XEXP (x7, 0);
              if (GET_CODE (x8) != ZERO_EXTEND)
                return -1;
              x9 = XEXP (x7, 1);
              if (GET_CODE (x9) != ZERO_EXTEND)
                return -1;
              x10 = XEXP (x6, 1);
              if (GET_CODE (x10) != CONST_VECTOR
                  || XWINT (x5, 0) != 1L)
                return -1;
              x11 = XEXP (x8, 0);
              operands[1] = x11;
              x12 = XEXP (x9, 0);
              operands[2] = x12;
              switch (XVECLEN (x10, 0))
                {
                case 8:
                  if (pattern562 (x10, 1) != 0
                      || pattern534 (x3, E_V8QImode, E_V8HImode) != 0
                      || !
#line 617 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                    return -1;
                  return 574; /* iwmmxt_uavgrndv8qi3 */

                case 4:
                  if (GET_MODE (x10) != E_V4SImode)
                    return -1;
                  x13 = XVECEXP (x10, 0, 0);
                  if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
                    return -1;
                  x14 = XVECEXP (x10, 0, 1);
                  if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
                    return -1;
                  x15 = XVECEXP (x10, 0, 2);
                  if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
                    return -1;
                  x16 = XVECEXP (x10, 0, 3);
                  if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
                      || pattern534 (x3, E_V4HImode, E_V4SImode) != 0
                      || !
#line 635 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                    return -1;
                  return 575; /* iwmmxt_uavgrndv4hi3 */

                default:
                  return -1;
                }

            case ZERO_EXTEND:
              x10 = XEXP (x6, 1);
              if (GET_CODE (x10) != ZERO_EXTEND
                  || XWINT (x5, 0) != 1L)
                return -1;
              x8 = XEXP (x7, 0);
              operands[1] = x8;
              x17 = XEXP (x10, 0);
              operands[2] = x17;
              switch (GET_MODE (operands[0]))
                {
                case E_V8QImode:
                  if (pattern382 (x3, E_V8QImode, E_V8HImode) != 0
                      || !
#line 648 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                    return -1;
                  return 576; /* iwmmxt_uavgv8qi3 */

                case E_V4HImode:
                  if (pattern382 (x3, E_V4HImode, E_V4SImode) != 0
                      || !
#line 661 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                    return -1;
                  return 577; /* iwmmxt_uavgv4hi3 */

                default:
                  return -1;
                }

            case MULT:
              x8 = XEXP (x7, 0);
              if (GET_CODE (x8) != ZERO_EXTEND)
                return -1;
              x9 = XEXP (x7, 1);
              if (GET_CODE (x9) != ZERO_EXTEND)
                return -1;
              x10 = XEXP (x6, 1);
              if (GET_CODE (x10) != CONST_VECTOR)
                return -1;
              x11 = XEXP (x8, 0);
              operands[1] = x11;
              x12 = XEXP (x9, 0);
              operands[2] = x12;
              switch (XVECLEN (x10, 0))
                {
                case 4:
                  if (pattern533 (x10) != 0)
                    return -1;
                  x16 = XVECEXP (x10, 0, 3);
                  if (GET_CODE (x16) != CONST_INT
                      || XWINT (x16, 0) != 32768L
                      || XWINT (x5, 0) != 16L
                      || pattern534 (x3, E_V4HImode, E_V4SImode) != 0
                      || !
#line 316 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                    return -1;
                  return 699; /* iwmmxt_wmulumr */

                case 2:
                  if (pattern535 (x3) != 0
                      || !
#line 350 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                    return -1;
                  return 701; /* iwmmxt_wmulwumr */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    case ABS:
      x6 = XEXP (x4, 0);
      if (GET_CODE (x6) != MINUS)
        return -1;
      x7 = XEXP (x6, 0);
      if (GET_CODE (x7) != ZERO_EXTEND)
        return -1;
      x10 = XEXP (x6, 1);
      if (GET_CODE (x10) != ZERO_EXTEND)
        return -1;
      x8 = XEXP (x7, 0);
      operands[1] = x8;
      x17 = XEXP (x10, 0);
      operands[2] = x17;
      switch (GET_MODE (operands[0]))
        {
        case E_V8QImode:
          if (pattern382 (x3, E_V8QImode, E_V8HImode) != 0
              || !
#line 37 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 683; /* iwmmxt_wabsdiffb */

        case E_V4HImode:
          if (pattern382 (x3, E_V4HImode, E_V4SImode) != 0
              || !
#line 50 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 684; /* iwmmxt_wabsdiffh */

        case E_V2SImode:
          if (pattern382 (x3, E_V2SImode, E_V2DImode) != 0
              || !
#line 63 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 685; /* iwmmxt_wabsdiffw */

        default:
          return -1;
        }

    case VEC_SELECT:
      if (GET_MODE (x4) != E_V8HImode)
        return -1;
      x6 = XEXP (x4, 0);
      if (GET_CODE (x6) != VEC_MERGE
          || GET_MODE (x6) != E_V8HImode)
        return -1;
      x7 = XEXP (x6, 0);
      if (GET_CODE (x7) != LSHIFTRT
          || GET_MODE (x7) != E_V8HImode)
        return -1;
      x8 = XEXP (x7, 0);
      if (GET_CODE (x8) != PLUS
          || GET_MODE (x8) != E_V8HImode)
        return -1;
      x11 = XEXP (x8, 0);
      if (GET_CODE (x11) != PLUS
          || GET_MODE (x11) != E_V8HImode)
        return -1;
      x18 = XEXP (x11, 0);
      if (GET_CODE (x18) != PLUS
          || GET_MODE (x18) != E_V8HImode)
        return -1;
      x19 = XEXP (x18, 0);
      if (GET_CODE (x19) != PLUS
          || GET_MODE (x19) != E_V8HImode)
        return -1;
      x20 = XEXP (x19, 0);
      if (GET_CODE (x20) != ZERO_EXTEND
          || GET_MODE (x20) != E_V8HImode)
        return -1;
      x21 = XEXP (x19, 1);
      if (GET_CODE (x21) != ZERO_EXTEND
          || GET_MODE (x21) != E_V8HImode)
        return -1;
      x22 = XEXP (x18, 1);
      if (GET_CODE (x22) != VEC_SELECT
          || GET_MODE (x22) != E_V8HImode)
        return -1;
      x23 = XEXP (x22, 0);
      if (GET_CODE (x23) != ZERO_EXTEND
          || GET_MODE (x23) != E_V8HImode)
        return -1;
      x24 = XEXP (x22, 1);
      if (GET_CODE (x24) != PARALLEL
          || XVECLEN (x24, 0) != 8)
        return -1;
      x25 = XVECEXP (x24, 0, 0);
      if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
        return -1;
      x26 = XVECEXP (x24, 0, 1);
      if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x27 = XVECEXP (x24, 0, 2);
      if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x28 = XVECEXP (x24, 0, 3);
      if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
        return -1;
      x29 = XVECEXP (x24, 0, 4);
      if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
        return -1;
      x30 = XVECEXP (x24, 0, 5);
      if (x30 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
        return -1;
      x31 = XVECEXP (x24, 0, 6);
      if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
        return -1;
      x32 = XVECEXP (x24, 0, 7);
      if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
        return -1;
      x33 = XEXP (x11, 1);
      if (GET_CODE (x33) != VEC_SELECT
          || GET_MODE (x33) != E_V8HImode)
        return -1;
      x34 = XEXP (x33, 0);
      if (GET_CODE (x34) != ZERO_EXTEND
          || GET_MODE (x34) != E_V8HImode)
        return -1;
      x35 = XEXP (x33, 1);
      if (GET_CODE (x35) != PARALLEL
          || XVECLEN (x35, 0) != 8)
        return -1;
      x36 = XVECEXP (x35, 0, 0);
      if (x36 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
        return -1;
      x37 = XVECEXP (x35, 0, 1);
      if (x37 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x38 = XVECEXP (x35, 0, 2);
      if (x38 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x39 = XVECEXP (x35, 0, 3);
      if (x39 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
        return -1;
      x40 = XVECEXP (x35, 0, 4);
      if (x40 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
        return -1;
      x41 = XVECEXP (x35, 0, 5);
      if (x41 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
        return -1;
      x42 = XVECEXP (x35, 0, 6);
      if (x42 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
        return -1;
      x43 = XVECEXP (x35, 0, 7);
      if (x43 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
        return -1;
      x44 = XEXP (x8, 1);
      if (GET_CODE (x44) != CONST_VECTOR
          || XVECLEN (x44, 0) != 8
          || GET_MODE (x44) != E_V8HImode)
        return -1;
      x45 = XVECEXP (x44, 0, 0);
      if (GET_CODE (x45) != CONST_INT)
        return -1;
      x46 = XVECEXP (x44, 0, 1);
      if (GET_CODE (x46) != CONST_INT)
        return -1;
      x47 = XVECEXP (x44, 0, 2);
      if (GET_CODE (x47) != CONST_INT)
        return -1;
      x48 = XVECEXP (x44, 0, 3);
      if (GET_CODE (x48) != CONST_INT)
        return -1;
      x49 = XVECEXP (x44, 0, 4);
      if (GET_CODE (x49) != CONST_INT)
        return -1;
      x50 = XVECEXP (x44, 0, 5);
      if (GET_CODE (x50) != CONST_INT)
        return -1;
      x51 = XVECEXP (x44, 0, 6);
      if (GET_CODE (x51) != CONST_INT)
        return -1;
      x52 = XVECEXP (x44, 0, 7);
      if (GET_CODE (x52) != CONST_INT)
        return -1;
      x9 = XEXP (x7, 1);
      if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
        return -1;
      x10 = XEXP (x6, 1);
      if (GET_CODE (x10) != CONST_VECTOR
          || XVECLEN (x10, 0) != 8
          || pattern562 (x10, 0) != 0)
        return -1;
      x53 = XEXP (x6, 2);
      if (GET_CODE (x53) != CONST_INT
          || XWINT (x53, 0) != 254L)
        return -1;
      x5 = XEXP (x4, 1);
      if (GET_CODE (x5) != PARALLEL
          || XVECLEN (x5, 0) != 8)
        return -1;
      x54 = XVECEXP (x5, 0, 0);
      if (x54 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x55 = XVECEXP (x5, 0, 1);
      if (x55 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
        return -1;
      x56 = XVECEXP (x5, 0, 2);
      if (x56 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
        return -1;
      x57 = XVECEXP (x5, 0, 3);
      if (x57 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
        return -1;
      x58 = XVECEXP (x5, 0, 4);
      if (x58 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
        return -1;
      x59 = XVECEXP (x5, 0, 5);
      if (x59 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
        return -1;
      x60 = XVECEXP (x5, 0, 6);
      if (x60 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
        return -1;
      x61 = XVECEXP (x5, 0, 7);
      if (x61 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
          || !register_operand (operands[0], E_V8QImode)
          || GET_MODE (x3) != E_V8QImode)
        return -1;
      x62 = XEXP (x20, 0);
      operands[1] = x62;
      if (!register_operand (operands[1], E_V8QImode))
        return -1;
      x63 = XEXP (x21, 0);
      operands[2] = x63;
      if (!register_operand (operands[2], E_V8QImode))
        return -1;
      x64 = XEXP (x23, 0);
      if (!rtx_equal_p (x64, operands[1]))
        return -1;
      x65 = XEXP (x34, 0);
      if (!rtx_equal_p (x65, operands[2]))
        return -1;
      switch (XWINT (x45, 0))
        {
        case 1L:
          if (XWINT (x46, 0) != 1L
              || XWINT (x47, 0) != 1L
              || XWINT (x48, 0) != 1L
              || XWINT (x49, 0) != 1L
              || XWINT (x50, 0) != 1L
              || XWINT (x51, 0) != 1L
              || XWINT (x52, 0) != 1L
              || !
#line 143 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 690; /* iwmmxt_avg4 */

        case 2L:
          if (XWINT (x46, 0) != 2L
              || XWINT (x47, 0) != 2L
              || XWINT (x48, 0) != 2L
              || XWINT (x49, 0) != 2L
              || XWINT (x50, 0) != 2L
              || XWINT (x51, 0) != 2L
              || XWINT (x52, 0) != 2L
              || !
#line 175 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 691; /* iwmmxt_avg4r */

        default:
          return -1;
        }

    case ASHIFTRT:
      x5 = XEXP (x4, 1);
      if (GET_CODE (x5) != CONST_INT)
        return -1;
      x6 = XEXP (x4, 0);
      switch (GET_CODE (x6))
        {
        case MULT:
          if (GET_MODE (x6) != E_V2DImode)
            return -1;
          x7 = XEXP (x6, 0);
          if (GET_CODE (x7) != SIGN_EXTEND
              || GET_MODE (x7) != E_V2DImode)
            return -1;
          x10 = XEXP (x6, 1);
          if (GET_CODE (x10) != SIGN_EXTEND
              || GET_MODE (x10) != E_V2DImode
              || XWINT (x5, 0) != 32L
              || !register_operand (operands[0], E_V2SImode)
              || GET_MODE (x3) != E_V2SImode
              || GET_MODE (x4) != E_V2DImode)
            return -1;
          x8 = XEXP (x7, 0);
          operands[1] = x8;
          if (!register_operand (operands[1], E_V2SImode))
            return -1;
          x17 = XEXP (x10, 0);
          operands[2] = x17;
          if (!register_operand (operands[2], E_V2SImode)
              || !
#line 265 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 696; /* iwmmxt_wmulwsm */

        case PLUS:
          x7 = XEXP (x6, 0);
          if (GET_CODE (x7) != MULT)
            return -1;
          x8 = XEXP (x7, 0);
          if (GET_CODE (x8) != SIGN_EXTEND)
            return -1;
          x9 = XEXP (x7, 1);
          if (GET_CODE (x9) != SIGN_EXTEND)
            return -1;
          x10 = XEXP (x6, 1);
          if (GET_CODE (x10) != CONST_VECTOR)
            return -1;
          x11 = XEXP (x8, 0);
          operands[1] = x11;
          x12 = XEXP (x9, 0);
          operands[2] = x12;
          switch (XVECLEN (x10, 0))
            {
            case 3:
              if (pattern533 (x10) != 0
                  || XWINT (x5, 0) != 16L
                  || pattern534 (x3, E_V4HImode, E_V4SImode) != 0
                  || !
#line 297 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 698; /* iwmmxt_wmulsmr */

            case 2:
              if (pattern535 (x3) != 0
                  || !
#line 333 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 700; /* iwmmxt_wmulwsmr */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case REG:
    case SUBREG:
      operands[1] = x4;
      switch (GET_MODE (operands[0]))
        {
        case E_V8QImode:
          if (!register_operand (operands[0], E_V8QImode)
              || GET_MODE (x3) != E_V8QImode
              || !register_operand (operands[1], E_V8HImode)
              || !
#line 6292 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return -1;
          return 2814; /* neon_vec_pack_trunc_v8hi */

        case E_V4HImode:
          if (!register_operand (operands[0], E_V4HImode)
              || GET_MODE (x3) != E_V4HImode
              || !register_operand (operands[1], E_V4SImode)
              || !
#line 6292 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return -1;
          return 2815; /* neon_vec_pack_trunc_v4si */

        case E_V2SImode:
          if (!register_operand (operands[0], E_V2SImode)
              || GET_MODE (x3) != E_V2SImode
              || !register_operand (operands[1], E_V2DImode)
              || !
#line 6292 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return -1;
          return 2816; /* neon_vec_pack_trunc_v2di */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_273 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    case CONST_INT:
      x3 = XEXP (x1, 0);
      if (GET_CODE (x3) == ZERO_EXTRACT
          && GET_MODE (x3) == E_SImode)
        {
          x4 = XEXP (x3, 0);
          operands[0] = x4;
          if (s_register_operand (operands[0], E_SImode))
            {
              if (XWINT (x2, 0) == 0L)
                {
                  x5 = XEXP (x3, 1);
                  operands[1] = x5;
                  if (const_int_M_operand (operands[1], E_SImode))
                    {
                      x6 = XEXP (x3, 2);
                      operands[2] = x6;
                      if (const_int_M_operand (operands[2], E_SImode)
                          && 
#line 3486 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_arch_thumb2))
                        return 98; /* insv_zero */
                    }
                }
              x5 = XEXP (x3, 1);
              if (x5 == const_int_rtx[MAX_SAVED_CONST_INT + 16])
                {
                  x6 = XEXP (x3, 2);
                  if (x6 == const_int_rtx[MAX_SAVED_CONST_INT + 16])
                    {
                      operands[1] = x2;
                      if (const_int_operand (operands[1], E_SImode)
                          && 
#line 12356 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_HAVE_MOVT))
                        return 410; /* *arm_movtas_ze */
                    }
                }
            }
        }
      break;

    case CONST_DOUBLE:
    case REG:
    case SUBREG:
    case MEM:
      x3 = XEXP (x1, 0);
      switch (GET_CODE (x3))
        {
        case ZERO_EXTRACT:
          if (pattern283 (x3) == 0)
            {
              operands[3] = x2;
              if (s_register_operand (operands[3], E_SImode)
                  && 
#line 3510 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_arch_thumb2))
                return 99; /* insv_t2 */
            }
          break;

        case REG:
        case SUBREG:
        case MEM:
          operands[0] = x3;
          if (nonimmediate_soft_df_operand (operands[0], E_DFmode))
            {
              operands[1] = x2;
              if (soft_df_operand (operands[1], E_DFmode)
                  && 
#line 7613 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && TARGET_SOFT_FLOAT && !TARGET_HAVE_MVE
   && (   register_operand (operands[0], DFmode)
       || register_operand (operands[1], DFmode))))
                return 271; /* *movdf_soft_insn */
            }
          break;

        case PC:
          operands[0] = x2;
          if (s_register_operand (operands[0], E_SImode)
              && 
#line 9612 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return 315; /* *arm_indirect_jump */
          if (memory_operand (operands[0], E_SImode)
              && 
#line 9621 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return 316; /* *load_indirect_jump */
          if (register_operand (operands[0], E_SImode))
            {
              if (
#line 1954 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                return 993; /* *thumb1_indirect_jump */
              if (
#line 604 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
                return 1024; /* *thumb2_indirect_jump */
            }
          break;

        default:
          break;
        }
      break;

    case LABEL_REF:
      x3 = XEXP (x1, 0);
      if (GET_CODE (x3) == PC)
        {
          x7 = XEXP (x2, 0);
          operands[0] = x7;
          if (
#line 8577 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return 288; /* *arm_jump */
          if (
#line 1781 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return 983; /* *thumb_jump */
        }
      break;

    default:
      break;
    }
  operands[1] = x2;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  switch (GET_MODE (operands[0]))
    {
    case E_DImode:
      if (nonimmediate_di_operand (operands[0], E_DImode)
          && di_operand (operands[1], E_DImode)
          && 
#line 6331 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && !(TARGET_HARD_FLOAT)
   && !(TARGET_HAVE_MVE || TARGET_HAVE_MVE_FLOAT)
   && !TARGET_IWMMXT
   && (   register_operand (operands[0], DImode)
       || register_operand (operands[1], DImode))))
        return 255; /* *arm_movdi */
      break;

    case E_SImode:
      if (nonimmediate_operand (operands[0], E_SImode)
          && general_operand (operands[1], E_SImode)
          && 
#line 6543 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && !TARGET_IWMMXT && !TARGET_HARD_FLOAT
   && (   register_operand (operands[0], SImode)
       || register_operand (operands[1], SImode))))
        return 257; /* *arm_movsi_insn */
      break;

    case E_HImode:
      if (nonimmediate_operand (operands[0], E_HImode)
          && general_operand (operands[1], E_HImode)
          && 
#line 7198 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM
   && arm_arch4 && !TARGET_HARD_FLOAT
   && (register_operand (operands[0], HImode)
       || register_operand (operands[1], HImode))))
        return 265; /* *movhi_insn_arch4 */
      if (s_register_operand (operands[0], E_HImode)
          && arm_rhs_operand (operands[1], E_HImode)
          && 
#line 7225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && !TARGET_HARD_FLOAT))
        return 266; /* *movhi_bytes */
      break;

    case E_QImode:
      if (nonimmediate_operand (operands[0], E_QImode)
          && general_operand (operands[1], E_QImode)
          && 
#line 7342 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (   register_operand (operands[0], QImode)
       || register_operand (operands[1], QImode))))
        return 267; /* *arm_movqi_insn */
      break;

    case E_HFmode:
      if (nonimmediate_operand (operands[0], E_HFmode)
          && general_operand (operands[1], E_HFmode)
          && 
#line 7389 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && !TARGET_HARD_FLOAT
   && !TARGET_HAVE_MVE
   && (	  s_register_operand (operands[0], HFmode)
       || s_register_operand (operands[1], HFmode))))
        return 268; /* *arm32_movhf */
      break;

    case E_BFmode:
      if (nonimmediate_operand (operands[0], E_BFmode)
          && general_operand (operands[1], E_BFmode)
          && 
#line 7389 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && !TARGET_HARD_FLOAT
   && !TARGET_HAVE_MVE
   && (	  s_register_operand (operands[0], BFmode)
       || s_register_operand (operands[1], BFmode))))
        return 269; /* *arm32_movbf */
      break;

    case E_SFmode:
      if (nonimmediate_operand (operands[0], E_SFmode)
          && general_operand (operands[1], E_SFmode)
          && 
#line 7488 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && TARGET_SOFT_FLOAT && !TARGET_HAVE_MVE
   && (!MEM_P (operands[0])
       || register_operand (operands[1], SFmode))))
        return 270; /* *arm_movsf_soft_insn */
      break;

    default:
      break;
    }
  operands[0] = x3;
  if (cc_register (operands[0], E_VOIDmode)
      && rtx_equal_p (x2, operands[0])
      && 
#line 7928 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
    return 276; /* *deleted_compare */
  operands[1] = x2;
  switch (GET_MODE (operands[0]))
    {
    case E_DImode:
      if (nonimmediate_di_operand (operands[0], E_DImode)
          && di_operand (operands[1], E_DImode))
        {
          if (
#line 103 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT
   && (   register_operand (operands[0], DImode)
       || register_operand (operands[1], DImode))))
            return 530; /* *iwmmxt_arm_movdi */
          if (
#line 344 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_VFP_BASE
   && (   register_operand (operands[0], DImode)
       || register_operand (operands[1], DImode))
   && !((TARGET_NEON || TARGET_HAVE_MVE) && CONST_INT_P (operands[1])
       && simd_immediate_valid_for_move (operands[1], DImode, NULL, NULL))))
            return 760; /* *movdi_vfp */
        }
      break;

    case E_V2SImode:
      if (nonimmediate_operand (operands[0], E_V2SImode)
          && general_operand (operands[1], E_V2SImode)
          && 
#line 229 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 533; /* movv2si_internal */
      break;

    case E_V4HImode:
      if (nonimmediate_operand (operands[0], E_V4HImode)
          && general_operand (operands[1], E_V4HImode)
          && 
#line 229 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 534; /* movv4hi_internal */
      break;

    case E_V8QImode:
      if (nonimmediate_operand (operands[0], E_V8QImode)
          && general_operand (operands[1], E_V8QImode)
          && 
#line 229 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 535; /* movv8qi_internal */
      break;

    case E_HImode:
      if (nonimmediate_operand (operands[0], E_HImode)
          && general_operand (operands[1], E_HImode))
        {
          if (
#line 29 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_ARM && TARGET_HARD_FLOAT
  && !TARGET_VFP_FP16INST
  && (register_operand (operands[0], HImode)
       || register_operand (operands[1], HImode))))
            return 746; /* *arm_movhi_vfp */
          if (
#line 80 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && TARGET_VFP_BASE
  && !TARGET_VFP_FP16INST
  && (register_operand (operands[0], HImode)
       || register_operand (operands[1], HImode))))
            return 747; /* *thumb2_movhi_vfp */
          if (
#line 135 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_ARM && TARGET_VFP_FP16INST
  && (register_operand (operands[0], HImode)
       || register_operand (operands[1], HImode))))
            return 752; /* *arm_movhi_fp16 */
          if (
#line 185 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && (TARGET_VFP_FP16INST || TARGET_HAVE_MVE)
  && (register_operand (operands[0], HImode)
       || register_operand (operands[1], HImode))))
            return 753; /* *thumb2_movhi_fp16 */
        }
      break;

    case E_V16BImode:
      if (nonimmediate_operand (operands[0], E_V16BImode)
          && general_operand (operands[1], E_V16BImode))
        {
          if (
#line 80 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && TARGET_VFP_BASE
  && !TARGET_VFP_FP16INST
  && (register_operand (operands[0], V16BImode)
       || register_operand (operands[1], V16BImode))))
            return 748; /* *thumb2_movhi_vfp */
          if (
#line 185 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && (TARGET_VFP_FP16INST || TARGET_HAVE_MVE)
  && (register_operand (operands[0], V16BImode)
       || register_operand (operands[1], V16BImode))))
            return 754; /* *thumb2_movhi_fp16 */
        }
      break;

    case E_V8BImode:
      if (nonimmediate_operand (operands[0], E_V8BImode)
          && general_operand (operands[1], E_V8BImode))
        {
          if (
#line 80 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && TARGET_VFP_BASE
  && !TARGET_VFP_FP16INST
  && (register_operand (operands[0], V8BImode)
       || register_operand (operands[1], V8BImode))))
            return 749; /* *thumb2_movhi_vfp */
          if (
#line 185 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && (TARGET_VFP_FP16INST || TARGET_HAVE_MVE)
  && (register_operand (operands[0], V8BImode)
       || register_operand (operands[1], V8BImode))))
            return 755; /* *thumb2_movhi_fp16 */
        }
      break;

    case E_V4BImode:
      if (nonimmediate_operand (operands[0], E_V4BImode)
          && general_operand (operands[1], E_V4BImode))
        {
          if (
#line 80 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && TARGET_VFP_BASE
  && !TARGET_VFP_FP16INST
  && (register_operand (operands[0], V4BImode)
       || register_operand (operands[1], V4BImode))))
            return 750; /* *thumb2_movhi_vfp */
          if (
#line 185 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && (TARGET_VFP_FP16INST || TARGET_HAVE_MVE)
  && (register_operand (operands[0], V4BImode)
       || register_operand (operands[1], V4BImode))))
            return 756; /* *thumb2_movhi_fp16 */
        }
      break;

    case E_V2QImode:
      if (nonimmediate_operand (operands[0], E_V2QImode)
          && general_operand (operands[1], E_V2QImode))
        {
          if (
#line 80 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && TARGET_VFP_BASE
  && !TARGET_VFP_FP16INST
  && (register_operand (operands[0], V2QImode)
       || register_operand (operands[1], V2QImode))))
            return 751; /* *thumb2_movhi_vfp */
          if (
#line 185 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && (TARGET_VFP_FP16INST || TARGET_HAVE_MVE)
  && (register_operand (operands[0], V2QImode)
       || register_operand (operands[1], V2QImode))))
            return 757; /* *thumb2_movhi_fp16 */
        }
      break;

    case E_HFmode:
      if (nonimmediate_operand (operands[0], E_HFmode)
          && general_operand (operands[1], E_HFmode))
        {
          if (
#line 407 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT
   && (TARGET_VFP_FP16INST || TARGET_HAVE_MVE)
   && (s_register_operand (operands[0], HFmode)
       || s_register_operand (operands[1], HFmode))))
            return 761; /* *movhf_vfp_hf16 */
          if (
#line 488 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT
   && TARGET_HARD_FLOAT && TARGET_NEON_FP16
   && !TARGET_VFP_FP16INST
   && (   s_register_operand (operands[0], HFmode)
       || s_register_operand (operands[1], HFmode))))
            return 763; /* *movhf_vfp_neon */
          if (
#line 544 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT
   && TARGET_HARD_FLOAT
   && !TARGET_NEON_FP16
   && !TARGET_VFP_FP16INST
   && (   s_register_operand (operands[0], HFmode)
       || s_register_operand (operands[1], HFmode))))
            return 765; /* *movhf_vfp */
        }
      break;

    case E_BFmode:
      if (nonimmediate_operand (operands[0], E_BFmode)
          && general_operand (operands[1], E_BFmode))
        {
          if (
#line 407 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT
   && (TARGET_VFP_FP16INST || TARGET_HAVE_MVE)
   && (s_register_operand (operands[0], BFmode)
       || s_register_operand (operands[1], BFmode))))
            return 762; /* *movbf_vfp_bf16 */
          if (
#line 488 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT
   && TARGET_HARD_FLOAT && TARGET_NEON_FP16
   && !TARGET_VFP_FP16INST
   && (   s_register_operand (operands[0], BFmode)
       || s_register_operand (operands[1], BFmode))))
            return 764; /* *movbf_vfp_neon */
          if (
#line 544 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT
   && TARGET_HARD_FLOAT
   && !TARGET_NEON_FP16
   && !TARGET_VFP_FP16INST
   && (   s_register_operand (operands[0], BFmode)
       || s_register_operand (operands[1], BFmode))))
            return 766; /* *movbf_vfp */
        }
      break;

    case E_SFmode:
      if (nonimmediate_operand (operands[0], E_SFmode))
        {
          if (general_operand (operands[1], E_SFmode)
              && 
#line 600 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_ARM && TARGET_HARD_FLOAT
   && (   s_register_operand (operands[0], SFmode)
       || s_register_operand (operands[1], SFmode))))
            return 767; /* *movsf_vfp */
          if (hard_sf_operand (operands[1], E_SFmode)
              && 
#line 636 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && TARGET_VFP_BASE
   && (   s_register_operand (operands[0], SFmode)
       || s_register_operand (operands[1], SFmode))))
            return 768; /* *thumb2_movsf_vfp */
        }
      break;

    case E_DFmode:
      if (nonimmediate_soft_df_operand (operands[0], E_DFmode))
        {
          if (soft_df_operand (operands[1], E_DFmode)
              && 
#line 674 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_ARM && TARGET_HARD_FLOAT
   && (   register_operand (operands[0], DFmode)
       || register_operand (operands[1], DFmode))))
            return 769; /* *movdf_vfp */
          if (hard_df_operand (operands[1], E_DFmode)
              && 
#line 725 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && TARGET_VFP_BASE
   && (   register_operand (operands[0], DFmode)
       || register_operand (operands[1], DFmode))))
            return 770; /* *thumb2_movdf_vfp */
        }
      break;

    default:
      break;
    }
  switch (GET_CODE (x2))
    {
    case MEM:
      if (pattern284 (x2, 8) == 0
          && register_operand (operands[0], E_SImode))
        {
          x7 = XEXP (x2, 0);
          x8 = XVECEXP (x7, 0, 0);
          operands[1] = x8;
          if (register_operand (operands[1], E_SImode))
            {
              x9 = XVECEXP (x7, 0, 2);
              operands[2] = x9;
              if (
#line 6757 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return 263; /* tls_load_dot_plus_eight */
            }
        }
      break;

    case CONST_VECTOR:
      res = recog_269 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    case SUBREG:
      res = recog_270 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    default:
      break;
    }
  if (nonimmediate_operand (operands[0], E_SImode))
    {
      operands[1] = x2;
      if (general_operand (operands[1], E_SImode))
        {
          if (
#line 158 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT
   && (   register_operand (operands[0], SImode)
       || register_operand (operands[1], SImode))))
            return 531; /* *iwmmxt_movsi_insn */
          if (
#line 238 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_ARM && TARGET_HARD_FLOAT
   && (   s_register_operand (operands[0], SImode)
       || s_register_operand (operands[1], SImode))))
            return 758; /* *arm_movsi_vfp */
          if (
#line 283 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && TARGET_VFP_BASE
   && (   s_register_operand (operands[0], SImode)
       || s_register_operand (operands[1], SImode))))
            return 759; /* *thumb2_movsi_vfp */
        }
    }
  if (GET_CODE (x2) == REG
      && REGNO (x2) == 101
      && GET_CODE (x3) == REG
      && REGNO (x3) == 100
      && 
#line 1637 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
    return 848; /* *movcc_vfp */
  operands[1] = x2;
  res = recog_271 (x1, insn, pnum_clobbers);
  if (res >= 0)
    return res;
  operands[0] = x3;
  if (GET_MODE (x2) == E_SImode)
    {
      switch (GET_CODE (x2))
        {
        case REG:
          if (REGNO (x2) == 15
              && s_register_operand (operands[0], E_SImode)
              && 
#line 2011 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return 996; /* *thumb1_movpc_insn */
          break;

        case MEM:
          x7 = XEXP (x2, 0);
          if (GET_CODE (x7) == POST_INC
              && GET_MODE (x7) == E_SImode)
            {
              x10 = XEXP (x7, 0);
              if (GET_CODE (x10) == REG
                  && REGNO (x10) == 13
                  && GET_MODE (x10) == E_SImode
                  && low_register_operand (operands[0], E_SImode)
                  && 
#line 223 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && (reload_in_progress || reload_completed)))
                return 1006; /* *thumb2_pop_single */
            }
          break;

        default:
          break;
        }
    }
  operands[1] = x2;
  if (general_operand (operands[1], E_SImode)
      && nonimmediate_operand (operands[0], E_SImode)
      && 
#line 238 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !TARGET_IWMMXT && !TARGET_HARD_FLOAT
   && (   register_operand (operands[0], SImode)
       || register_operand (operands[1], SImode))))
    return 1007; /* *thumb2_movsi_insn */
  if (pnum_clobbers != NULL
      && const_int_operand (operands[1], E_SImode)
      && low_register_operand (operands[0], E_SImode)
      && 
#line 1289 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
    {
      *pnum_clobbers = 1;
      return 1049; /* *thumb2_movsi_shortim */
    }
  if (pnum_clobbers == NULL
      || !register_operand (operands[0], E_SImode)
      || GET_CODE (x2) != MEM
      || pattern284 (x2, 4) != 0)
    return -1;
  x7 = XEXP (x2, 0);
  x8 = XVECEXP (x7, 0, 0);
  operands[2] = x8;
  if (!register_operand (operands[2], E_SImode))
    return -1;
  x9 = XVECEXP (x7, 0, 2);
  operands[3] = x9;
  if (!
#line 274 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
    return -1;
  *pnum_clobbers = 1;
  return 1008; /* tls_load_dot_plus_four */
}

static int
recog_274 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case REG:
    case SUBREG:
      operands[1] = x4;
      switch (GET_MODE (operands[0]))
        {
        case E_V8QImode:
          if (GET_MODE (x3) != E_V8QImode
              || !s_register_operand (operands[1], E_QImode))
            return -1;
          if (register_operand (operands[0], E_V8QImode)
              && 
#line 33 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 523; /* tbcstv8qi */
          if (!s_register_operand (operands[0], E_V8QImode)
              || !
#line 3416 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2041; /* neon_vdup_nv8qi */

        case E_V4HImode:
          if (GET_MODE (x3) != E_V4HImode
              || !s_register_operand (operands[1], E_HImode))
            return -1;
          if (register_operand (operands[0], E_V4HImode)
              && 
#line 42 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 524; /* tbcstv4hi */
          if (!s_register_operand (operands[0], E_V4HImode)
              || !
#line 3416 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2042; /* neon_vdup_nv4hi */

        case E_V2SImode:
          if (GET_MODE (x3) != E_V2SImode
              || !s_register_operand (operands[1], E_SImode))
            return -1;
          if (register_operand (operands[0], E_V2SImode)
              && 
#line 51 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 525; /* tbcstv2si */
          if (!s_register_operand (operands[0], E_V2SImode)
              || !
#line 3456 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2049; /* neon_vdup_nv2si */

        case E_V16QImode:
          if (!s_register_operand (operands[0], E_V16QImode)
              || GET_MODE (x3) != E_V16QImode
              || !s_register_operand (operands[1], E_QImode))
            return -1;
          if (
#line 3416 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 2043; /* neon_vdup_nv16qi */
          if (!
#line 93 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE || TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3046; /* *mve_vdupv16qi */

        case E_V8HImode:
          if (!s_register_operand (operands[0], E_V8HImode)
              || GET_MODE (x3) != E_V8HImode
              || !s_register_operand (operands[1], E_HImode))
            return -1;
          if (
#line 3416 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 2044; /* neon_vdup_nv8hi */
          if (!
#line 93 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE || TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3047; /* *mve_vdupv8hi */

        case E_V4HFmode:
          if (!s_register_operand (operands[0], E_V4HFmode)
              || GET_MODE (x3) != E_V4HFmode
              || !s_register_operand (operands[1], E_HFmode)
              || !
#line 3424 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2045; /* neon_vdup_nv4hf */

        case E_V8HFmode:
          if (!s_register_operand (operands[0], E_V8HFmode)
              || GET_MODE (x3) != E_V8HFmode
              || !s_register_operand (operands[1], E_HFmode))
            return -1;
          if (
#line 3432 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 2046; /* neon_vdup_nv8hf */
          if (!
#line 93 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE || TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3050; /* *mve_vdupv8hf */

        case E_V4BFmode:
          if (!s_register_operand (operands[0], E_V4BFmode)
              || GET_MODE (x3) != E_V4BFmode
              || !s_register_operand (operands[1], E_BFmode)
              || !
#line 3440 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2047; /* neon_vdup_nv4bf */

        case E_V8BFmode:
          if (!s_register_operand (operands[0], E_V8BFmode)
              || GET_MODE (x3) != E_V8BFmode
              || !s_register_operand (operands[1], E_BFmode)
              || !
#line 3448 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2048; /* neon_vdup_nv8bf */

        case E_V2SFmode:
          if (!s_register_operand (operands[0], E_V2SFmode)
              || GET_MODE (x3) != E_V2SFmode
              || !s_register_operand (operands[1], E_SFmode)
              || !
#line 3456 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2050; /* neon_vdup_nv2sf */

        case E_V4SImode:
          if (!s_register_operand (operands[0], E_V4SImode)
              || GET_MODE (x3) != E_V4SImode
              || !s_register_operand (operands[1], E_SImode))
            return -1;
          if (
#line 3456 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 2051; /* neon_vdup_nv4si */
          if (!
#line 93 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE || TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3048; /* *mve_vdupv4si */

        case E_V4SFmode:
          if (!s_register_operand (operands[0], E_V4SFmode)
              || GET_MODE (x3) != E_V4SFmode
              || !s_register_operand (operands[1], E_SFmode))
            return -1;
          if (
#line 3456 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 2052; /* neon_vdup_nv4sf */
          if (!
#line 93 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE || TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3051; /* *mve_vdupv4sf */

        case E_V2DImode:
          if (!s_register_operand (operands[0], E_V2DImode)
              || GET_MODE (x3) != E_V2DImode
              || !s_register_operand (operands[1], E_DImode))
            return -1;
          if (
#line 3476 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 2053; /* neon_vdup_nv2di */
          if (!
#line 93 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE || TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3049; /* *mve_vdupv2di */

        case E_V2DFmode:
          if (!s_register_operand (operands[0], E_V2DFmode)
              || GET_MODE (x3) != E_V2DFmode
              || !s_register_operand (operands[1], E_DFmode)
              || !
#line 93 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE || TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3052; /* *mve_vdupv2df */

        default:
          return -1;
        }

    case VEC_SELECT:
      x5 = XEXP (x4, 1);
      if (GET_CODE (x5) != PARALLEL
          || XVECLEN (x5, 0) != 1)
        return -1;
      x6 = XEXP (x4, 0);
      operands[1] = x6;
      x7 = XVECEXP (x5, 0, 0);
      operands[2] = x7;
      if (!immediate_operand (operands[2], E_SImode))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case E_V8QImode:
          if (pattern470 (x3, E_V8QImode, E_QImode) != 0
              || !
#line 3490 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2054; /* neon_vdup_lanev8qi_internal */

        case E_V16QImode:
          if (pattern471 (x3, E_V16QImode, E_V8QImode, E_QImode) != 0
              || !
#line 3490 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2055; /* neon_vdup_lanev16qi_internal */

        case E_V4HImode:
          if (pattern470 (x3, E_V4HImode, E_HImode) != 0
              || !
#line 3490 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2056; /* neon_vdup_lanev4hi_internal */

        case E_V8HImode:
          if (pattern471 (x3, E_V8HImode, E_V4HImode, E_HImode) != 0
              || !
#line 3490 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2057; /* neon_vdup_lanev8hi_internal */

        case E_V2SImode:
          if (pattern470 (x3, E_V2SImode, E_SImode) != 0
              || !
#line 3490 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2058; /* neon_vdup_lanev2si_internal */

        case E_V4SImode:
          if (pattern471 (x3, E_V4SImode, E_V2SImode, E_SImode) != 0
              || !
#line 3490 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2059; /* neon_vdup_lanev4si_internal */

        case E_V2SFmode:
          if (pattern470 (x3, E_V2SFmode, E_SFmode) != 0
              || !
#line 3490 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2060; /* neon_vdup_lanev2sf_internal */

        case E_V4SFmode:
          if (pattern471 (x3, E_V4SFmode, E_V2SFmode, E_SFmode) != 0
              || !
#line 3490 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2061; /* neon_vdup_lanev4sf_internal */

        case E_V8HFmode:
          if (pattern471 (x3, E_V8HFmode, E_V4HFmode, E_HFmode) != 0
              || !
#line 3512 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && (TARGET_FP16 || TARGET_BF16_SIMD)))
            return -1;
          return 2062; /* neon_vdup_lanev8hf_internal */

        case E_V4HFmode:
          if (pattern470 (x3, E_V4HFmode, E_HFmode) != 0
              || !
#line 3512 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && (TARGET_FP16 || TARGET_BF16_SIMD)))
            return -1;
          return 2063; /* neon_vdup_lanev4hf_internal */

        case E_V4BFmode:
          if (pattern471 (x3, E_V4BFmode, E_V4BFmode, E_BFmode) != 0
              || !
#line 3512 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && (TARGET_FP16 || TARGET_BF16_SIMD)))
            return -1;
          return 2064; /* neon_vdup_lanev4bf_internal */

        case E_V8BFmode:
          if (pattern471 (x3, E_V8BFmode, E_V4BFmode, E_BFmode) != 0
              || !
#line 3512 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && (TARGET_FP16 || TARGET_BF16_SIMD)))
            return -1;
          return 2065; /* neon_vdup_lanev8bf_internal */

        default:
          return -1;
        }

    case MEM:
      operands[1] = x4;
      switch (GET_MODE (operands[0]))
        {
        case E_V8QImode:
          if (!s_register_operand (operands[0], E_V8QImode)
              || GET_MODE (x3) != E_V8QImode
              || !neon_struct_operand (operands[1], E_QImode)
              || !
#line 5014 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2537; /* neon_vld1_dupv8qi */

        case E_V4HImode:
          if (!s_register_operand (operands[0], E_V4HImode)
              || GET_MODE (x3) != E_V4HImode
              || !neon_struct_operand (operands[1], E_HImode)
              || !
#line 5014 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2538; /* neon_vld1_dupv4hi */

        case E_V4HFmode:
          if (!s_register_operand (operands[0], E_V4HFmode)
              || GET_MODE (x3) != E_V4HFmode
              || !neon_struct_operand (operands[1], E_HFmode)
              || !
#line 5014 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2539; /* neon_vld1_dupv4hf */

        case E_V4BFmode:
          if (!s_register_operand (operands[0], E_V4BFmode)
              || GET_MODE (x3) != E_V4BFmode
              || !neon_struct_operand (operands[1], E_BFmode)
              || !
#line 5014 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2540; /* neon_vld1_dupv4bf */

        case E_V2SImode:
          if (!s_register_operand (operands[0], E_V2SImode)
              || GET_MODE (x3) != E_V2SImode
              || !neon_struct_operand (operands[1], E_SImode)
              || !
#line 5014 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2541; /* neon_vld1_dupv2si */

        case E_V2SFmode:
          if (!s_register_operand (operands[0], E_V2SFmode)
              || GET_MODE (x3) != E_V2SFmode
              || !neon_struct_operand (operands[1], E_SFmode)
              || !
#line 5014 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2542; /* neon_vld1_dupv2sf */

        case E_V16QImode:
          if (!s_register_operand (operands[0], E_V16QImode)
              || GET_MODE (x3) != E_V16QImode
              || !neon_struct_operand (operands[1], E_QImode)
              || !
#line 5031 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2543; /* neon_vld1_dupv16qi */

        case E_V8HImode:
          if (!s_register_operand (operands[0], E_V8HImode)
              || GET_MODE (x3) != E_V8HImode
              || !neon_struct_operand (operands[1], E_HImode)
              || !
#line 5031 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2544; /* neon_vld1_dupv8hi */

        case E_V8HFmode:
          if (!s_register_operand (operands[0], E_V8HFmode)
              || GET_MODE (x3) != E_V8HFmode
              || !neon_struct_operand (operands[1], E_HFmode)
              || !
#line 5031 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2545; /* neon_vld1_dupv8hf */

        case E_V4SImode:
          if (!s_register_operand (operands[0], E_V4SImode)
              || GET_MODE (x3) != E_V4SImode
              || !neon_struct_operand (operands[1], E_SImode)
              || !
#line 5031 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2546; /* neon_vld1_dupv4si */

        case E_V4SFmode:
          if (!s_register_operand (operands[0], E_V4SFmode)
              || GET_MODE (x3) != E_V4SFmode
              || !neon_struct_operand (operands[1], E_SFmode)
              || !
#line 5031 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2547; /* neon_vld1_dupv4sf */

        case E_V2DImode:
          if (!s_register_operand (operands[0], E_V2DImode)
              || GET_MODE (x3) != E_V2DImode
              || !neon_struct_operand (operands[1], E_DImode)
              || !
#line 5041 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2548; /* neon_vld1_dupv2di */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_275 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (XVECLEN (x2, 0))
    {
    case 1:
      switch (XINT (x2, 1))
        {
        case 50:
          if (pattern116 (x1, E_CCmode, 104) != 0
              || !
#line 4415 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM_QBIT))
            return -1;
          return 132; /* arm_set_apsr */

        case 43:
          if (GET_MODE (x2) != E_SImode)
            return -1;
          x3 = XVECEXP (x2, 0, 0);
          if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x4 = XEXP (x1, 0);
          operands[0] = x4;
          if (!register_operand (operands[0], E_SImode)
              || !
#line 12287 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_HARD_TP))
            return -1;
          return 406; /* reload_tp_hard */

        case 51:
          if (GET_MODE (x2) != E_SImode)
            return -1;
          x4 = XEXP (x1, 0);
          if (GET_CODE (x4) != MEM
              || GET_MODE (x4) != E_SImode)
            return -1;
          x5 = XEXP (x4, 0);
          if (GET_MODE (x5) != E_SImode)
            return -1;
          x3 = XVECEXP (x2, 0, 0);
          operands[1] = x3;
          if (!const_int_operand (operands[1], E_SImode))
            return -1;
          switch (GET_CODE (x5))
            {
            case POST_DEC:
              x6 = XEXP (x5, 0);
              operands[0] = x6;
              if (!s_register_operand (operands[0], E_SImode)
                  || !
#line 1647 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HAVE_FPCXT_CMSE && use_cmse))
                return -1;
              return 849; /* push_fpsysreg_insn */

            case POST_INC:
              x6 = XEXP (x5, 0);
              operands[0] = x6;
              if (!s_register_operand (operands[0], E_SImode)
                  || !
#line 1666 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HAVE_FPCXT_CMSE && use_cmse))
                return -1;
              return 850; /* pop_fpsysreg_insn */

            default:
              return -1;
            }

        case 27:
          if (GET_MODE (x2) != E_SImode)
            return -1;
          x3 = XVECEXP (x2, 0, 0);
          if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x4 = XEXP (x1, 0);
          operands[0] = x4;
          if (!register_operand (operands[0], E_SImode)
              || !
#line 2124 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_BASE))
            return -1;
          return 919; /* get_fpscr */

        case 21:
          if (GET_MODE (x2) != E_DImode)
            return -1;
          x4 = XEXP (x1, 0);
          operands[0] = x4;
          if (!register_operand (operands[0], E_DImode))
            return -1;
          x3 = XVECEXP (x2, 0, 0);
          operands[1] = x3;
          if (!arm_sync_memory_operand (operands[1], E_DImode)
              || !
#line 124 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(ARM_DOUBLEWORD_ALIGN && TARGET_HAVE_LPAE))
            return -1;
          return 2879; /* arm_atomic_loaddi2_ldrd */

        case 20:
          switch (pattern277 (x1))
            {
            case 0:
              if (!
#line 479 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX))
                return -1;
              return 2968; /* arm_load_exclusivesi */

            case 1:
              if (!
#line 503 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD))
                return -1;
              return 2970; /* arm_load_exclusivedi */

            default:
              return -1;
            }

        case 23:
          switch (pattern277 (x1))
            {
            case 0:
              if (!
#line 491 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ))
                return -1;
              return 2969; /* arm_load_acquire_exclusivesi */

            case 1:
              if (!
#line 512 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQEXD && ARM_DOUBLEWORD_ALIGN))
                return -1;
              return 2971; /* arm_load_acquire_exclusivedi */

            default:
              return -1;
            }

        case 120:
          if (pattern110 (x2, 101, E_SImode) != 0)
            return -1;
          x4 = XEXP (x1, 0);
          operands[0] = x4;
          if (!register_operand (operands[0], E_SImode)
              || !
#line 9786 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4869; /* get_fpscr_nzcvqc */

        case 29:
          if (GET_MODE (x2) != E_SImode)
            return -1;
          x4 = XEXP (x1, 0);
          if (GET_CODE (x4) != REG
              || REGNO (x4) != 101
              || GET_MODE (x4) != E_SImode)
            return -1;
          x3 = XVECEXP (x2, 0, 0);
          operands[0] = x3;
          if (!register_operand (operands[0], E_SImode)
              || !
#line 9794 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4870; /* set_fpscr_nzcvqc */

        default:
          return -1;
        }

    case 2:
      switch (XINT (x2, 1))
        {
        case 30:
          if (pattern149 (x1, E_SImode) != 0
              || !
#line 9259 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 307; /* probe_stack_range */

        case 56:
          if (pattern145 (x1) != 0
              || !
#line 13002 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_arch8m_main))
            return -1;
          return 508; /* pacbti_nop */

        case 13:
          switch (pattern278 (x1))
            {
            case 0:
              if (!
#line 802 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 587; /* eqv8qi3 */

            case 1:
              if (!
#line 813 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 588; /* eqv4hi3 */

            case 2:
              if (!
#line 825 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 589; /* eqv2si3 */

            default:
              return -1;
            }

        case 14:
          switch (pattern278 (x1))
            {
            case 0:
              if (!
#line 836 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 590; /* gtuv8qi3 */

            case 1:
              if (!
#line 847 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 591; /* gtuv4hi3 */

            case 2:
              if (!
#line 858 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 592; /* gtuv2si3 */

            default:
              return -1;
            }

        case 15:
          switch (pattern278 (x1))
            {
            case 0:
              if (!
#line 869 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 593; /* gtv8qi3 */

            case 1:
              if (!
#line 880 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 594; /* gtv4hi3 */

            case 2:
              if (!
#line 891 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 595; /* gtv2si3 */

            default:
              return -1;
            }

        case 25:
          x4 = XEXP (x1, 0);
          operands[0] = x4;
          x3 = XVECEXP (x2, 0, 0);
          operands[1] = x3;
          x7 = XVECEXP (x2, 0, 1);
          operands[2] = x7;
          if (!const_int_operand (operands[2], E_SImode))
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case E_QImode:
              if (!register_operand (operands[0], E_QImode)
                  || GET_MODE (x2) != E_QImode
                  || !arm_sync_memory_operand (operands[1], E_QImode)
                  || !
#line 71 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ))
                return -1;
              return 2873; /* atomic_loadqi */

            case E_HImode:
              if (!register_operand (operands[0], E_HImode)
                  || GET_MODE (x2) != E_HImode
                  || !arm_sync_memory_operand (operands[1], E_HImode)
                  || !
#line 71 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ))
                return -1;
              return 2874; /* atomic_loadhi */

            case E_SImode:
              if (!register_operand (operands[0], E_SImode)
                  || GET_MODE (x2) != E_SImode
                  || !arm_sync_memory_operand (operands[1], E_SImode)
                  || !
#line 71 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ))
                return -1;
              return 2875; /* atomic_loadsi */

            default:
              return -1;
            }

        case 26:
          x4 = XEXP (x1, 0);
          operands[0] = x4;
          x3 = XVECEXP (x2, 0, 0);
          operands[1] = x3;
          x7 = XVECEXP (x2, 0, 1);
          operands[2] = x7;
          if (!const_int_operand (operands[2], E_SImode))
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case E_QImode:
              if (!memory_operand (operands[0], E_QImode)
                  || GET_MODE (x2) != E_QImode
                  || !general_operand (operands[1], E_QImode)
                  || !
#line 97 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ))
                return -1;
              return 2876; /* atomic_storeqi */

            case E_HImode:
              if (!memory_operand (operands[0], E_HImode)
                  || GET_MODE (x2) != E_HImode
                  || !general_operand (operands[1], E_HImode)
                  || !
#line 97 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ))
                return -1;
              return 2877; /* atomic_storehi */

            case E_SImode:
              if (!memory_operand (operands[0], E_SImode)
                  || GET_MODE (x2) != E_SImode
                  || !general_operand (operands[1], E_SImode)
                  || !
#line 97 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ))
                return -1;
              return 2878; /* atomic_storesi */

            default:
              return -1;
            }

        case 19:
          if (pnum_clobbers == NULL)
            return -1;
          x4 = XEXP (x1, 0);
          operands[0] = x4;
          x7 = XVECEXP (x2, 0, 1);
          operands[2] = x7;
          if (!const_int_operand (operands[2], E_SImode))
            return -1;
          x3 = XVECEXP (x2, 0, 0);
          switch (GET_CODE (x3))
            {
            case PLUS:
              switch (pattern437 (x2))
                {
                case 0:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2892; /* atomic_addqi */

                case 1:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2897; /* atomic_addhi */

                case 2:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2902; /* atomic_addsi */

                case 3:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2907; /* atomic_adddi */

                default:
                  return -1;
                }

            case MINUS:
              switch (pattern437 (x2))
                {
                case 0:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2893; /* atomic_subqi */

                case 1:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2898; /* atomic_subhi */

                case 2:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2903; /* atomic_subsi */

                case 3:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2908; /* atomic_subdi */

                default:
                  return -1;
                }

            case IOR:
              switch (pattern437 (x2))
                {
                case 0:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2894; /* atomic_orqi */

                case 1:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2899; /* atomic_orhi */

                case 2:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2904; /* atomic_orsi */

                case 3:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2909; /* atomic_ordi */

                default:
                  return -1;
                }

            case XOR:
              switch (pattern437 (x2))
                {
                case 0:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2895; /* atomic_xorqi */

                case 1:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2900; /* atomic_xorhi */

                case 2:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2905; /* atomic_xorsi */

                case 3:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2910; /* atomic_xordi */

                default:
                  return -1;
                }

            case AND:
              switch (pattern437 (x2))
                {
                case 0:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2896; /* atomic_andqi */

                case 1:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2901; /* atomic_andhi */

                case 2:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2906; /* atomic_andsi */

                case 3:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2911; /* atomic_anddi */

                default:
                  return -1;
                }

            case NOT:
              x8 = XEXP (x3, 0);
              if (GET_CODE (x8) != AND)
                return -1;
              x9 = XEXP (x8, 1);
              operands[1] = x9;
              x10 = XEXP (x8, 0);
              if (!rtx_equal_p (x10, operands[0]))
                return -1;
              switch (GET_MODE (operands[0]))
                {
                case E_QImode:
                  if (pattern545 (x2, E_QImode) != 0
                      || !
#line 320 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2912; /* atomic_nandqi */

                case E_HImode:
                  if (pattern545 (x2, E_HImode) != 0
                      || !
#line 320 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2913; /* atomic_nandhi */

                case E_SImode:
                  if (pattern545 (x2, E_SImode) != 0
                      || !
#line 320 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2914; /* atomic_nandsi */

                case E_DImode:
                  if (!mem_noofs_operand (operands[0], E_DImode)
                      || GET_MODE (x2) != E_DImode
                      || GET_MODE (x3) != E_DImode
                      || GET_MODE (x8) != E_DImode
                      || !s_register_operand (operands[1], E_DImode)
                      || !
#line 320 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2915; /* atomic_nanddi */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 5:
      if (pattern10 (x1, E_SImode) != 0)
        return -1;
      x11 = XVECEXP (x2, 0, 3);
      operands[4] = x11;
      if (!immediate_operand (operands[4], E_SImode))
        return -1;
      x12 = XVECEXP (x2, 0, 4);
      operands[5] = x12;
      if (!immediate_operand (operands[5], E_SImode))
        return -1;
      switch (XINT (x2, 1))
        {
        case 43:
          if (!
#line 12920 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_MRC)))
            return -1;
          return 500; /* arm_mrc */

        case 44:
          if (!
#line 12920 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_MRC2)))
            return -1;
          return 501; /* arm_mrc2 */

        default:
          return -1;
        }

    case 3:
      if (pattern10 (x1, E_DImode) != 0)
        return -1;
      switch (XINT (x2, 1))
        {
        case 47:
          if (!
#line 12953 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_MRRC)))
            return -1;
          return 504; /* arm_mrrc */

        case 48:
          if (!
#line 12953 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_MRRC2)))
            return -1;
          return 505; /* arm_mrrc2 */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_276 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24, x25;
  rtx x26, x27;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case VEC_DUPLICATE:
      x5 = XEXP (x3, 2);
      if (!immediate_operand (x5, E_SImode))
        return -1;
      x6 = XEXP (x4, 0);
      switch (GET_CODE (x6))
        {
        case TRUNCATE:
          x7 = XEXP (x6, 0);
          operands[2] = x7;
          if (!nonimmediate_operand (operands[2], E_SImode))
            return -1;
          x8 = XEXP (x3, 1);
          operands[1] = x8;
          operands[3] = x5;
          switch (GET_MODE (operands[0]))
            {
            case E_V8QImode:
              if (pattern500 (x3, E_V8QImode, E_QImode) != 0
                  || !
#line 676 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 578; /* iwmmxt_tinsrb */

            case E_V4HImode:
              if (pattern500 (x3, E_V4HImode, E_HImode) != 0
                  || !
#line 693 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 579; /* iwmmxt_tinsrh */

            default:
              return -1;
            }

        case REG:
        case SUBREG:
        case MEM:
          switch (GET_MODE (operands[0]))
            {
            case E_V2SImode:
              if (GET_MODE (x3) != E_V2SImode
                  || GET_MODE (x4) != E_V2SImode
                  || !nonimmediate_operand (x6, E_SImode))
                return -1;
              operands[2] = x6;
              if (register_operand (operands[0], E_V2SImode))
                {
                  x8 = XEXP (x3, 1);
                  operands[1] = x8;
                  if (register_operand (operands[1], E_V2SImode))
                    {
                      operands[3] = x5;
                      if (
#line 710 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                        return 580; /* iwmmxt_tinsrw */
                    }
                }
              operands[1] = x6;
              if (!s_register_operand (operands[0], E_V2SImode))
                return -1;
              x8 = XEXP (x3, 1);
              operands[3] = x8;
              if (!s_register_operand (operands[3], E_V2SImode))
                return -1;
              operands[2] = x5;
              if (!
#line 324 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1122; /* vec_setv2si_internal */

            case E_V8QImode:
              if (pattern397 (x3, E_V8QImode, E_QImode) != 0
                  || !
#line 324 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1118; /* vec_setv8qi_internal */

            case E_V4HImode:
              if (pattern397 (x3, E_V4HImode, E_HImode) != 0
                  || !
#line 324 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1119; /* vec_setv4hi_internal */

            case E_V4HFmode:
              if (pattern397 (x3, E_V4HFmode, E_HFmode) != 0
                  || !
#line 324 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1120; /* vec_setv4hf_internal */

            case E_V4BFmode:
              if (pattern397 (x3, E_V4BFmode, E_BFmode) != 0
                  || !
#line 324 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1121; /* vec_setv4bf_internal */

            case E_V2SFmode:
              if (pattern397 (x3, E_V2SFmode, E_SFmode) != 0
                  || !
#line 324 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1123; /* vec_setv2sf_internal */

            case E_V16QImode:
              if (pattern397 (x3, E_V16QImode, E_QImode) != 0)
                return -1;
              if (
#line 345 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1124; /* vec_setv16qi_internal */
              if (!
#line 10141 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V16QImode))
   || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V16QImode))))
                return -1;
              return 4916; /* mve_vec_setv16qi_internal */

            case E_V8HImode:
              if (pattern397 (x3, E_V8HImode, E_HImode) != 0)
                return -1;
              if (
#line 345 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1125; /* vec_setv8hi_internal */
              if (!
#line 10141 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V8HImode))
   || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V8HImode))))
                return -1;
              return 4917; /* mve_vec_setv8hi_internal */

            case E_V8HFmode:
              if (pattern397 (x3, E_V8HFmode, E_HFmode) != 0)
                return -1;
              if (
#line 345 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1126; /* vec_setv8hf_internal */
              if (!
#line 10141 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V8HFmode))
   || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V8HFmode))))
                return -1;
              return 4918; /* mve_vec_setv8hf_internal */

            case E_V4SImode:
              if (pattern397 (x3, E_V4SImode, E_SImode) != 0)
                return -1;
              if (
#line 345 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1127; /* vec_setv4si_internal */
              if (!
#line 10141 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V4SImode))
   || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V4SImode))))
                return -1;
              return 4919; /* mve_vec_setv4si_internal */

            case E_V4SFmode:
              if (pattern397 (x3, E_V4SFmode, E_SFmode) != 0)
                return -1;
              if (
#line 345 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1128; /* vec_setv4sf_internal */
              if (!
#line 10141 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V4SFmode))
   || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V4SFmode))))
                return -1;
              return 4920; /* mve_vec_setv4sf_internal */

            case E_V2DImode:
              if (pattern397 (x3, E_V2DImode, E_DImode) != 0)
                return -1;
              if (
#line 374 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1129; /* vec_setv2di_internal */
              if (!
#line 10160 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4921; /* mve_vec_setv2di_internal */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case VEC_SELECT:
      x9 = XEXP (x4, 1);
      if (GET_CODE (x9) != PARALLEL)
        return -1;
      x8 = XEXP (x3, 1);
      if (GET_CODE (x8) != VEC_SELECT)
        return -1;
      x10 = XEXP (x8, 1);
      if (GET_CODE (x10) != PARALLEL)
        return -1;
      x5 = XEXP (x3, 2);
      if (GET_CODE (x5) != CONST_INT)
        return -1;
      x6 = XEXP (x4, 0);
      operands[1] = x6;
      x11 = XEXP (x8, 0);
      operands[2] = x11;
      switch (XVECLEN (x9, 0))
        {
        case 8:
          if (pattern501 (x9) != 0)
            return -1;
          x12 = XVECEXP (x9, 0, 4);
          if (GET_CODE (x12) != CONST_INT)
            return -1;
          x13 = XVECEXP (x9, 0, 5);
          if (GET_CODE (x13) != CONST_INT)
            return -1;
          x14 = XVECEXP (x9, 0, 6);
          if (GET_CODE (x14) != CONST_INT)
            return -1;
          x15 = XVECEXP (x9, 0, 7);
          if (GET_CODE (x15) != CONST_INT
              || pattern581 (x10, 8) != 0)
            return -1;
          x16 = XVECEXP (x10, 0, 4);
          if (GET_CODE (x16) != CONST_INT)
            return -1;
          x17 = XVECEXP (x10, 0, 5);
          if (GET_CODE (x17) != CONST_INT)
            return -1;
          x18 = XVECEXP (x10, 0, 6);
          if (GET_CODE (x18) != CONST_INT)
            return -1;
          x19 = XVECEXP (x10, 0, 7);
          if (GET_CODE (x19) != CONST_INT
              || XWINT (x5, 0) != 85L
              || pattern607 (x3, E_V8QImode) != 0)
            return -1;
          x20 = XVECEXP (x9, 0, 0);
          switch (XWINT (x20, 0))
            {
            case 4L:
              x21 = XVECEXP (x9, 0, 1);
              if (XWINT (x21, 0) != 0L)
                return -1;
              x22 = XVECEXP (x9, 0, 2);
              if (XWINT (x22, 0) != 5L)
                return -1;
              x23 = XVECEXP (x9, 0, 3);
              if (XWINT (x23, 0) != 1L
                  || XWINT (x12, 0) != 6L
                  || XWINT (x13, 0) != 2L
                  || XWINT (x14, 0) != 7L
                  || XWINT (x15, 0) != 3L)
                return -1;
              x24 = XVECEXP (x10, 0, 0);
              if (XWINT (x24, 0) != 0L)
                return -1;
              x25 = XVECEXP (x10, 0, 1);
              if (XWINT (x25, 0) != 4L)
                return -1;
              x26 = XVECEXP (x10, 0, 2);
              if (XWINT (x26, 0) != 1L)
                return -1;
              x27 = XVECEXP (x10, 0, 3);
              if (XWINT (x27, 0) != 5L
                  || XWINT (x16, 0) != 2L
                  || XWINT (x17, 0) != 6L
                  || XWINT (x18, 0) != 3L
                  || XWINT (x19, 0) != 7L
                  || !
#line 1029 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 614; /* iwmmxt_wunpckihb */

            case 0L:
              x21 = XVECEXP (x9, 0, 1);
              if (XWINT (x21, 0) != 4L)
                return -1;
              x22 = XVECEXP (x9, 0, 2);
              if (XWINT (x22, 0) != 1L)
                return -1;
              x23 = XVECEXP (x9, 0, 3);
              if (XWINT (x23, 0) != 5L
                  || XWINT (x12, 0) != 2L
                  || XWINT (x13, 0) != 6L
                  || XWINT (x14, 0) != 3L
                  || XWINT (x15, 0) != 7L)
                return -1;
              x24 = XVECEXP (x10, 0, 0);
              if (XWINT (x24, 0) != 4L)
                return -1;
              x25 = XVECEXP (x10, 0, 1);
              if (XWINT (x25, 0) != 0L)
                return -1;
              x26 = XVECEXP (x10, 0, 2);
              if (XWINT (x26, 0) != 5L)
                return -1;
              x27 = XVECEXP (x10, 0, 3);
              if (XWINT (x27, 0) != 1L
                  || XWINT (x16, 0) != 6L
                  || XWINT (x17, 0) != 2L
                  || XWINT (x18, 0) != 7L
                  || XWINT (x19, 0) != 3L
                  || !
#line 1093 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 617; /* iwmmxt_wunpckilb */

            default:
              return -1;
            }

        case 4:
          if (pattern501 (x9) != 0
              || pattern581 (x10, 4) != 0
              || XWINT (x5, 0) != 5L
              || pattern607 (x3, E_V4HImode) != 0)
            return -1;
          x20 = XVECEXP (x9, 0, 0);
          switch (XWINT (x20, 0))
            {
            case 2L:
              x21 = XVECEXP (x9, 0, 1);
              if (XWINT (x21, 0) != 0L)
                return -1;
              x22 = XVECEXP (x9, 0, 2);
              if (XWINT (x22, 0) != 3L)
                return -1;
              x23 = XVECEXP (x9, 0, 3);
              if (XWINT (x23, 0) != 1L)
                return -1;
              x24 = XVECEXP (x10, 0, 0);
              if (XWINT (x24, 0) != 0L)
                return -1;
              x25 = XVECEXP (x10, 0, 1);
              if (XWINT (x25, 0) != 2L)
                return -1;
              x26 = XVECEXP (x10, 0, 2);
              if (XWINT (x26, 0) != 1L)
                return -1;
              x27 = XVECEXP (x10, 0, 3);
              if (XWINT (x27, 0) != 3L
                  || !
#line 1049 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 615; /* iwmmxt_wunpckihh */

            case 0L:
              x21 = XVECEXP (x9, 0, 1);
              if (XWINT (x21, 0) != 2L)
                return -1;
              x22 = XVECEXP (x9, 0, 2);
              if (XWINT (x22, 0) != 1L)
                return -1;
              x23 = XVECEXP (x9, 0, 3);
              if (XWINT (x23, 0) != 3L)
                return -1;
              x24 = XVECEXP (x10, 0, 0);
              if (XWINT (x24, 0) != 2L)
                return -1;
              x25 = XVECEXP (x10, 0, 1);
              if (XWINT (x25, 0) != 0L)
                return -1;
              x26 = XVECEXP (x10, 0, 2);
              if (XWINT (x26, 0) != 3L)
                return -1;
              x27 = XVECEXP (x10, 0, 3);
              if (XWINT (x27, 0) != 1L
                  || !
#line 1113 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 618; /* iwmmxt_wunpckilh */

            default:
              return -1;
            }

        case 2:
          x20 = XVECEXP (x9, 0, 0);
          if (GET_CODE (x20) != CONST_INT)
            return -1;
          x21 = XVECEXP (x9, 0, 1);
          if (GET_CODE (x21) != CONST_INT
              || XVECLEN (x10, 0) != 2)
            return -1;
          x24 = XVECEXP (x10, 0, 0);
          if (GET_CODE (x24) != CONST_INT)
            return -1;
          x25 = XVECEXP (x10, 0, 1);
          if (GET_CODE (x25) != CONST_INT
              || XWINT (x5, 0) != 1L
              || pattern607 (x3, E_V2SImode) != 0)
            return -1;
          switch (XWINT (x20, 0))
            {
            case 1L:
              if (XWINT (x21, 0) != 0L
                  || XWINT (x24, 0) != 0L
                  || XWINT (x25, 0) != 1L
                  || !
#line 1065 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 616; /* iwmmxt_wunpckihw */

            case 0L:
              if (XWINT (x21, 0) != 1L
                  || XWINT (x24, 0) != 1L
                  || XWINT (x25, 0) != 0L
                  || !
#line 1129 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 619; /* iwmmxt_wunpckilw */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case SS_MINUS:
      if (pattern285 (x3, SS_PLUS) != 0
          || !
#line 81 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 686; /* iwmmxt_waddsubhx */

    case SS_PLUS:
      if (pattern285 (x3, SS_MINUS) != 0
          || !
#line 99 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 687; /* iwmmxt_wsubaddhx */

    default:
      return -1;
    }
}

static int
recog_277 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case REG:
    case SUBREG:
      operands[1] = x4;
      x5 = XEXP (x3, 1);
      operands[2] = x5;
      x6 = XEXP (x3, 2);
      switch (GET_CODE (x6))
        {
        case REG:
        case SUBREG:
          operands[3] = x6;
          switch (GET_MODE (operands[0]))
            {
            case E_HFmode:
              if (pattern439 (x3, E_HFmode) != 0
                  || !
#line 1342 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
                return -1;
              return 818; /* fmahf4 */

            case E_SFmode:
              if (pattern439 (x3, E_SFmode) != 0
                  || !
#line 1365 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA ))
                return -1;
              return 819; /* fmasf4 */

            case E_DFmode:
              if (pattern439 (x3, E_DFmode) != 0
                  || !(
#line 1365 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
                return -1;
              return 820; /* fmadf4 */

            case E_V2SFmode:
              if (pattern439 (x3, E_V2SFmode) != 0)
                return -1;
              if (
#line 580 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V2SF_ARITH && TARGET_FMA))
                return 1190; /* fmav2sf4 */
              if (!
#line 590 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_FMA))
                return -1;
              return 1192; /* fmav2sf4_intrinsic */

            case E_V4SFmode:
              if (pattern439 (x3, E_V4SFmode) != 0)
                return -1;
              if (
#line 580 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4SF_ARITH && TARGET_FMA))
                return 1191; /* fmav4sf4 */
              if (!
#line 590 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_FMA))
                return -1;
              return 1193; /* fmav4sf4_intrinsic */

            case E_V8HFmode:
              if (pattern439 (x3, E_V8HFmode) != 0
                  || !
#line 601 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V8HF_ARITH))
                return -1;
              return 1194; /* fmav8hf4 */

            case E_V4HFmode:
              if (pattern439 (x3, E_V4HFmode) != 0
                  || !
#line 601 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4HF_ARITH))
                return -1;
              return 1195; /* fmav4hf4 */

            default:
              return -1;
            }

        case NEG:
          x7 = XEXP (x6, 0);
          operands[3] = x7;
          switch (GET_MODE (operands[0]))
            {
            case E_HFmode:
              if (pattern440 (x3, E_HFmode) != 0
                  || !
#line 1412 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
                return -1;
              return 824; /* *fnmsubhf4 */

            case E_SFmode:
              if (pattern440 (x3, E_SFmode) != 0
                  || !
#line 1423 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA ))
                return -1;
              return 825; /* *fnmsubsf4 */

            case E_DFmode:
              if (pattern440 (x3, E_DFmode) != 0
                  || !(
#line 1423 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
                return -1;
              return 826; /* *fnmsubdf4 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case NEG:
      x8 = XEXP (x4, 0);
      operands[1] = x8;
      x5 = XEXP (x3, 1);
      operands[2] = x5;
      x6 = XEXP (x3, 2);
      switch (GET_CODE (x6))
        {
        case REG:
        case SUBREG:
          operands[3] = x6;
          switch (GET_MODE (operands[0]))
            {
            case E_HFmode:
              if (pattern441 (x3, E_HFmode) != 0
                  || !
#line 1377 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
                return -1;
              return 821; /* fmsubhf4_fp16 */

            case E_SFmode:
              if (pattern441 (x3, E_SFmode) != 0
                  || !
#line 1401 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA ))
                return -1;
              return 822; /* *fmsubsf4 */

            case E_DFmode:
              if (pattern441 (x3, E_DFmode) != 0
                  || !(
#line 1401 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
                return -1;
              return 823; /* *fmsubdf4 */

            case E_V2SFmode:
              if (pattern441 (x3, E_V2SFmode) != 0)
                return -1;
              if (
#line 611 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V2SF_ARITH && TARGET_FMA))
                return 1196; /* *fmsubv2sf4 */
              if (!
#line 622 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_FMA))
                return -1;
              return 1198; /* fmsubv2sf4_intrinsic */

            case E_V4SFmode:
              if (pattern441 (x3, E_V4SFmode) != 0)
                return -1;
              if (
#line 611 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4SF_ARITH && TARGET_FMA))
                return 1197; /* *fmsubv4sf4 */
              if (!
#line 622 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_FMA))
                return -1;
              return 1199; /* fmsubv4sf4_intrinsic */

            case E_V8HFmode:
              if (pattern441 (x3, E_V8HFmode) != 0
                  || !
#line 633 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
                return -1;
              return 1200; /* fmsubv8hf4_intrinsic */

            case E_V4HFmode:
              if (pattern441 (x3, E_V4HFmode) != 0
                  || !
#line 633 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
                return -1;
              return 1201; /* fmsubv4hf4_intrinsic */

            default:
              return -1;
            }

        case NEG:
          x7 = XEXP (x6, 0);
          operands[3] = x7;
          switch (GET_MODE (operands[0]))
            {
            case E_HFmode:
              if (pattern442 (x3, E_HFmode) != 0
                  || !
#line 1434 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
                return -1;
              return 827; /* *fnmaddhf4 */

            case E_SFmode:
              if (pattern442 (x3, E_SFmode) != 0
                  || !
#line 1446 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA ))
                return -1;
              return 828; /* *fnmaddsf4 */

            case E_DFmode:
              if (pattern442 (x3, E_DFmode) != 0
                  || !(
#line 1446 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
                return -1;
              return 829; /* *fnmadddf4 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case FLOAT_EXTEND:
      x5 = XEXP (x3, 1);
      if (GET_CODE (x5) != FLOAT_EXTEND)
        return -1;
      x6 = XEXP (x3, 2);
      operands[1] = x6;
      x8 = XEXP (x4, 0);
      switch (GET_CODE (x8))
        {
        case VEC_SELECT:
          x9 = XEXP (x8, 0);
          operands[2] = x9;
          x10 = XEXP (x8, 1);
          operands[4] = x10;
          x11 = XEXP (x5, 0);
          switch (pattern443 (x11))
            {
            case 0:
              if (pattern547 (x3, E_V2SFmode, E_V4HFmode, E_V2HFmode) != 0)
                return -1;
              if (vect_par_constant_low (operands[4], E_V4HFmode)
                  && vect_par_constant_low (operands[5], E_V4HFmode)
                  && 
#line 1689 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                return 1519; /* vfmal_lowv2sf_intrinsic */
              if (!vect_par_constant_high (operands[4], E_V4HFmode)
                  || !vect_par_constant_high (operands[5], E_V4HFmode)
                  || !
#line 1724 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                return -1;
              return 1523; /* vfmal_highv2sf_intrinsic */

            case 1:
              if (pattern547 (x3, E_V4SFmode, E_V8HFmode, E_V4HFmode) != 0)
                return -1;
              if (vect_par_constant_low (operands[4], E_V8HFmode)
                  && vect_par_constant_low (operands[5], E_V8HFmode)
                  && 
#line 1689 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                return 1520; /* vfmal_lowv4sf_intrinsic */
              if (!vect_par_constant_high (operands[4], E_V8HFmode)
                  || !vect_par_constant_high (operands[5], E_V8HFmode)
                  || !
#line 1724 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                return -1;
              return 1524; /* vfmal_highv4sf_intrinsic */

            case 2:
              if (pattern611 (x3, E_V2SFmode, E_V2HFmode, E_V4HFmode) != 0)
                return -1;
              if (vect_par_constant_low (operands[4], E_V4HFmode))
                {
                  switch (GET_MODE (operands[3]))
                    {
                    case E_V4HFmode:
                      if (s_register_operand (operands[3], E_V4HFmode)
                          && 
#line 1779 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                        return 1527; /* vfmal_lane_lowv2sf_intrinsic */
                      break;

                    case E_V8HFmode:
                      if (s_register_operand (operands[3], E_V8HFmode)
                          && 
#line 1835 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                        return 1529; /* vfmal_lane_lowv8hfv2sf_intrinsic */
                      break;

                    default:
                      break;
                    }
                }
              if (!vect_par_constant_high (operands[4], E_V4HFmode))
                return -1;
              switch (GET_MODE (operands[3]))
                {
                case E_V8HFmode:
                  if (!s_register_operand (operands[3], E_V8HFmode)
                      || !
#line 1872 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                    return -1;
                  return 1531; /* vfmal_lane_highv8hfv2sf_intrinsic */

                case E_V4HFmode:
                  if (!s_register_operand (operands[3], E_V4HFmode)
                      || !
#line 1901 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                    return -1;
                  return 1533; /* vfmal_lane_highv2sf_intrinsic */

                default:
                  return -1;
                }

            case 3:
              if (pattern611 (x3, E_V4SFmode, E_V4HFmode, E_V8HFmode) != 0)
                return -1;
              if (vect_par_constant_low (operands[4], E_V8HFmode))
                {
                  switch (GET_MODE (operands[3]))
                    {
                    case E_V8HFmode:
                      if (s_register_operand (operands[3], E_V8HFmode)
                          && 
#line 1779 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                        return 1528; /* vfmal_lane_lowv4sf_intrinsic */
                      break;

                    case E_V4HFmode:
                      if (s_register_operand (operands[3], E_V4HFmode)
                          && 
#line 1835 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                        return 1530; /* vfmal_lane_lowv4hfv4sf_intrinsic */
                      break;

                    default:
                      break;
                    }
                }
              if (!vect_par_constant_high (operands[4], E_V8HFmode))
                return -1;
              switch (GET_MODE (operands[3]))
                {
                case E_V4HFmode:
                  if (!s_register_operand (operands[3], E_V4HFmode)
                      || !
#line 1872 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                    return -1;
                  return 1532; /* vfmal_lane_highv4hfv4sf_intrinsic */

                case E_V8HFmode:
                  if (!s_register_operand (operands[3], E_V8HFmode)
                      || !
#line 1901 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                    return -1;
                  return 1534; /* vfmal_lane_highv4sf_intrinsic */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case NEG:
          x9 = XEXP (x8, 0);
          if (GET_CODE (x9) != VEC_SELECT)
            return -1;
          x12 = XEXP (x9, 0);
          operands[2] = x12;
          x13 = XEXP (x9, 1);
          operands[4] = x13;
          x11 = XEXP (x5, 0);
          switch (pattern443 (x11))
            {
            case 0:
              if (pattern566 (x3, E_V2SFmode, E_V4HFmode, E_V2HFmode) != 0)
                return -1;
              if (vect_par_constant_high (operands[4], E_V4HFmode)
                  && vect_par_constant_high (operands[5], E_V4HFmode)
                  && 
#line 1707 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                return 1521; /* vfmsl_highv2sf_intrinsic */
              if (!vect_par_constant_low (operands[4], E_V4HFmode)
                  || !vect_par_constant_low (operands[5], E_V4HFmode)
                  || !
#line 1742 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                return -1;
              return 1525; /* vfmsl_lowv2sf_intrinsic */

            case 1:
              if (pattern566 (x3, E_V4SFmode, E_V8HFmode, E_V4HFmode) != 0)
                return -1;
              if (vect_par_constant_high (operands[4], E_V8HFmode)
                  && vect_par_constant_high (operands[5], E_V8HFmode)
                  && 
#line 1707 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                return 1522; /* vfmsl_highv4sf_intrinsic */
              if (!vect_par_constant_low (operands[4], E_V8HFmode)
                  || !vect_par_constant_low (operands[5], E_V8HFmode)
                  || !
#line 1742 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                return -1;
              return 1526; /* vfmsl_lowv4sf_intrinsic */

            case 2:
              if (pattern614 (x3, E_V2SFmode, E_V2HFmode, E_V4HFmode) != 0)
                return -1;
              if (vect_par_constant_low (operands[4], E_V4HFmode))
                {
                  switch (GET_MODE (operands[3]))
                    {
                    case E_V4HFmode:
                      if (s_register_operand (operands[3], E_V4HFmode)
                          && 
#line 1932 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                        return 1535; /* vfmsl_lane_lowv2sf_intrinsic */
                      break;

                    case E_V8HFmode:
                      if (s_register_operand (operands[3], E_V8HFmode)
                          && 
#line 1970 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                        return 1537; /* vfmsl_lane_lowv8hfv2sf_intrinsic */
                      break;

                    default:
                      break;
                    }
                }
              if (!vect_par_constant_high (operands[4], E_V4HFmode))
                return -1;
              switch (GET_MODE (operands[3]))
                {
                case E_V8HFmode:
                  if (!s_register_operand (operands[3], E_V8HFmode)
                      || !
#line 2008 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                    return -1;
                  return 1539; /* vfmsl_lane_highv8hfv2sf_intrinsic */

                case E_V4HFmode:
                  if (!s_register_operand (operands[3], E_V4HFmode)
                      || !
#line 2038 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                    return -1;
                  return 1541; /* vfmsl_lane_highv2sf_intrinsic */

                default:
                  return -1;
                }

            case 3:
              if (pattern614 (x3, E_V4SFmode, E_V4HFmode, E_V8HFmode) != 0)
                return -1;
              if (vect_par_constant_low (operands[4], E_V8HFmode))
                {
                  switch (GET_MODE (operands[3]))
                    {
                    case E_V8HFmode:
                      if (s_register_operand (operands[3], E_V8HFmode)
                          && 
#line 1932 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                        return 1536; /* vfmsl_lane_lowv4sf_intrinsic */
                      break;

                    case E_V4HFmode:
                      if (s_register_operand (operands[3], E_V4HFmode)
                          && 
#line 1970 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                        return 1538; /* vfmsl_lane_lowv4hfv4sf_intrinsic */
                      break;

                    default:
                      break;
                    }
                }
              if (!vect_par_constant_high (operands[4], E_V8HFmode))
                return -1;
              switch (GET_MODE (operands[3]))
                {
                case E_V4HFmode:
                  if (!s_register_operand (operands[3], E_V4HFmode)
                      || !
#line 2008 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                    return -1;
                  return 1540; /* vfmsl_lane_highv4hfv4sf_intrinsic */

                case E_V8HFmode:
                  if (!s_register_operand (operands[3], E_V8HFmode)
                      || !
#line 2038 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                    return -1;
                  return 1542; /* vfmsl_lane_highv4sf_intrinsic */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_278 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  switch (GET_CODE (x3))
    {
    case NEG:
      if (GET_MODE (x3) != E_SImode
          || pattern27 (x1, E_CC_Zmode) != 0)
        return -1;
      x4 = XEXP (x2, 1);
      if (!s_register_operand (x4, E_SImode))
        return -1;
      x5 = XEXP (x3, 0);
      switch (GET_CODE (x5))
        {
        case REG:
        case SUBREG:
          operands[0] = x5;
          if (!s_register_operand (operands[0], E_SImode))
            return -1;
          operands[1] = x4;
          if (!
#line 1143 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 15; /* *compare_negsi_si */

        case MULT:
        case ASHIFT:
        case ROTATE:
        case ASHIFTRT:
        case LSHIFTRT:
        case ROTATERT:
          operands[1] = x5;
          if (!shift_operator (operands[1], E_SImode))
            return -1;
          x6 = XEXP (x5, 0);
          operands[2] = x6;
          if (!s_register_operand (operands[2], E_SImode))
            return -1;
          x7 = XEXP (x5, 1);
          operands[3] = x7;
          if (!shift_amount_operand (operands[3], E_SImode))
            return -1;
          operands[0] = x4;
          if (!
#line 7911 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 275; /* *arm_cmpsi_negshiftsi_si */

        default:
          return -1;
        }

    case SIGN_EXTEND:
      switch (pattern8 (x1, pnum_clobbers, E_CC_NVmode))
        {
        case 0:
          x4 = XEXP (x2, 1);
          x8 = XEXP (x4, 1);
          switch (GET_CODE (x8))
            {
            case SIGN_EXTEND:
              if (GET_MODE (x8) != E_DImode)
                return -1;
              x9 = XEXP (x8, 0);
              operands[2] = x9;
              if (!s_register_operand (operands[2], E_SImode)
                  || !
#line 1749 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              *pnum_clobbers = 1;
              return 33; /* cmpsi3_carryin_CC_NVout */

            case CONST_INT:
              operands[2] = x8;
              if (!arm_adcimm_operand (operands[2], E_DImode)
                  || !
#line 1766 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              *pnum_clobbers = 1;
              return 35; /* cmpsi3_imm_carryin_CC_NVout */

            default:
              return -1;
            }

        case 1:
          if (!
#line 1781 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          *pnum_clobbers = 1;
          return 37; /* cmpsi3_0_carryin_CC_NVout */

        default:
          return -1;
        }

    case ZERO_EXTEND:
      switch (pattern8 (x1, pnum_clobbers, E_CC_Bmode))
        {
        case 0:
          x4 = XEXP (x2, 1);
          x8 = XEXP (x4, 1);
          switch (GET_CODE (x8))
            {
            case ZERO_EXTEND:
              if (GET_MODE (x8) != E_DImode)
                return -1;
              x9 = XEXP (x8, 0);
              operands[2] = x9;
              if (!s_register_operand (operands[2], E_SImode)
                  || !
#line 1749 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              *pnum_clobbers = 1;
              return 34; /* cmpsi3_carryin_CC_Bout */

            case CONST_INT:
              operands[2] = x8;
              if (!arm_adcimm_operand (operands[2], E_DImode)
                  || !
#line 1766 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              *pnum_clobbers = 1;
              return 36; /* cmpsi3_imm_carryin_CC_Bout */

            default:
              return -1;
            }

        case 1:
          if (!
#line 1781 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          *pnum_clobbers = 1;
          return 38; /* cmpsi3_0_carryin_CC_Bout */

        default:
          return -1;
        }

    case NOT:
      if (pnum_clobbers == NULL
          || GET_MODE (x3) != E_SImode)
        return -1;
      x4 = XEXP (x2, 1);
      if (GET_CODE (x4) != CONST_INT)
        return -1;
      x10 = XEXP (x1, 0);
      if (GET_CODE (x10) != REG
          || REGNO (x10) != 100)
        return -1;
      x5 = XEXP (x3, 0);
      switch (GET_CODE (x5))
        {
        case REG:
        case SUBREG:
          operands[2] = x5;
          if (s_register_operand (operands[2], E_SImode)
              && GET_MODE (x10) == E_CC_RSBmode
              && GET_MODE (x2) == E_CC_RSBmode)
            {
              operands[1] = x4;
              if (arm_not_immediate_operand (operands[1], E_VOIDmode)
                  && 
#line 2099 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                {
                  *pnum_clobbers = 1;
                  return 49; /* rsb_imm_compare_scratch */
                }
            }
          operands[1] = x5;
          if (!s_register_operand (operands[1], E_SImode)
              || XWINT (x4, 0) != 0L
              || GET_MODE (x10) != E_CC_NZmode
              || GET_MODE (x2) != E_CC_NZmode
              || !
#line 5414 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          *pnum_clobbers = 1;
          return 175; /* *notsi_compare0_scratch */

        case MULT:
        case ASHIFT:
        case ROTATE:
        case ASHIFTRT:
        case LSHIFTRT:
        case ROTATERT:
          operands[3] = x5;
          if (!shift_operator (operands[3], E_SImode)
              || XWINT (x4, 0) != 0L
              || GET_MODE (x10) != E_CC_NZmode
              || GET_MODE (x2) != E_CC_NZmode)
            return -1;
          x6 = XEXP (x5, 0);
          operands[1] = x6;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x7 = XEXP (x5, 1);
          operands[2] = x7;
          if (!shift_amount_operand (operands[2], E_SImode)
              || !
#line 4814 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          *pnum_clobbers = 1;
          return 156; /* *not_shiftsi_compare0_scratch */

        default:
          return -1;
        }

    case MULT:
    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      if (pnum_clobbers != NULL)
        {
          res = recog_50 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      operands[3] = x3;
      if (shift_operator (operands[3], E_SImode))
        {
          res = recog_51 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      if (pnum_clobbers == NULL
          || GET_CODE (x3) != MULT
          || GET_MODE (x3) != E_SImode)
        return -1;
      x4 = XEXP (x2, 1);
      if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
          || pattern27 (x1, E_CC_NZmode) != 0)
        return -1;
      x5 = XEXP (x3, 0);
      operands[1] = x5;
      if (!register_operand (operands[1], E_SImode))
        return -1;
      x11 = XEXP (x3, 1);
      operands[2] = x11;
      if (!register_operand (operands[2], E_SImode)
          || !
#line 1455 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && optimize_size))
        return -1;
      *pnum_clobbers = 1;
      return 1056; /* *thumb2_mulsi_short_compare0_scratch */

    case ZERO_EXTRACT:
      if (pattern9 (x1) != 0)
        return -1;
      x11 = XEXP (x3, 1);
      operands[1] = x11;
      if (!const_int_operand (operands[1], E_VOIDmode))
        return -1;
      x12 = XEXP (x3, 2);
      operands[2] = x12;
      if (!const_int_operand (operands[2], E_VOIDmode)
          || !
#line 3078 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
  && (INTVAL (operands[2]) >= 0 && INTVAL (operands[2]) < 32
      && INTVAL (operands[1]) > 0 
      && INTVAL (operands[1]) + (INTVAL (operands[2]) & 1) <= 8
      && INTVAL (operands[1]) + INTVAL (operands[2]) <= 32)))
        return -1;
      return 93; /* *zeroextractsi_compare0_scratch */

    case REG:
    case SUBREG:
      operands[0] = x3;
      x10 = XEXP (x1, 0);
      if (GET_CODE (x10) != REG)
        return -1;
      x4 = XEXP (x2, 1);
      switch (GET_CODE (x4))
        {
        case CONST_INT:
        case CONST_DOUBLE:
        case REG:
        case SUBREG:
          switch (GET_CODE (x4))
            {
            case CONST_INT:
              res = recog_52 (x1, insn, pnum_clobbers);
              if (res >= 0)
                return res;
              break;

            case CONST_DOUBLE:
            case REG:
            case SUBREG:
              res = recog_53 (x1, insn, pnum_clobbers);
              if (res >= 0)
                return res;
              break;

            default:
              break;
            }
          operands[1] = x4;
          if (!arm_add_operand (operands[1], E_SImode)
              || REGNO (x10) != 100
              || GET_MODE (x10) != E_CCmode
              || GET_MODE (x2) != E_CCmode
              || !s_register_operand (operands[0], E_SImode)
              || !
#line 7863 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 272; /* *arm_cmpsi_insn */

        case MULT:
        case ASHIFT:
        case ROTATE:
        case ASHIFTRT:
        case LSHIFTRT:
        case ROTATERT:
          operands[3] = x4;
          if (!shift_operator (operands[3], E_SImode)
              || REGNO (x10) != 100
              || GET_MODE (x10) != E_CCmode
              || GET_MODE (x2) != E_CCmode
              || !s_register_operand (operands[0], E_SImode))
            return -1;
          x13 = XEXP (x4, 0);
          operands[1] = x13;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x8 = XEXP (x4, 1);
          operands[2] = x8;
          if (!shift_amount_operand (operands[2], E_SImode)
              || !
#line 7884 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 273; /* *cmpsi_shiftsi */

        default:
          return -1;
        }

    case UNSPEC:
      x4 = XEXP (x2, 1);
      if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      switch (XVECLEN (x3, 0))
        {
        case 1:
          if (XINT (x3, 1) != 5)
            return -1;
          x14 = XVECEXP (x3, 0, 0);
          if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x10 = XEXP (x1, 0);
          operands[0] = x10;
          if (!cc_register (operands[0], E_CC_NZmode)
              || GET_MODE (x2) != E_CC_NZmode
              || !
#line 9105 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 304; /* *check_arch2 */

        case 2:
          if (pnum_clobbers == NULL
              || XINT (x3, 1) != 41
              || GET_MODE (x3) != E_SImode
              || pattern27 (x1, E_CC_Zmode) != 0)
            return -1;
          x14 = XVECEXP (x3, 0, 0);
          operands[0] = x14;
          if (!memory_operand (operands[0], E_SImode))
            return -1;
          x15 = XVECEXP (x3, 0, 1);
          operands[1] = x15;
          if (!memory_operand (operands[1], E_SImode))
            return -1;
          *pnum_clobbers = 2;
          return 313; /* stack_protect_test_tls */

        default:
          return -1;
        }

    case PLUS:
    case MINUS:
    case AND:
    case IOR:
    case XOR:
      switch (GET_CODE (x3))
        {
        case PLUS:
          res = recog_54 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        case AND:
          res = recog_55 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        case IOR:
          res = recog_56 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        case XOR:
          if (pattern9 (x1) == 0)
            {
              x11 = XEXP (x3, 1);
              operands[1] = x11;
              if (arm_rhs_operand (operands[1], E_SImode)
                  && 
#line 3868 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return 115; /* *xorsi3_compare0_scratch */
            }
          break;

        case MINUS:
          res = recog_57 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        default:
          break;
        }
      if (pnum_clobbers == NULL)
        return -1;
      operands[1] = x3;
      if (!shiftable_operator (operands[1], E_SImode))
        return -1;
      x5 = XEXP (x3, 0);
      if (!shift_operator (x5, E_SImode))
        return -1;
      operands[3] = x5;
      x4 = XEXP (x2, 1);
      if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
          || pattern27 (x1, E_CC_NZmode) != 0)
        return -1;
      x6 = XEXP (x5, 0);
      operands[4] = x6;
      if (!s_register_operand (operands[4], E_SImode))
        return -1;
      x7 = XEXP (x5, 1);
      operands[5] = x7;
      if (!shift_amount_operand (operands[5], E_SImode))
        return -1;
      x11 = XEXP (x3, 1);
      operands[2] = x11;
      if (!s_register_operand (operands[2], E_SImode)
          || !
#line 9737 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      *pnum_clobbers = 1;
      return 330; /* *arith_shiftsi_compare0_scratch */

    case IF_THEN_ELSE:
      if (GET_MODE (x3) != E_SImode)
        return -1;
      x5 = XEXP (x3, 0);
      if (!arm_comparison_operator (x5, E_VOIDmode))
        return -1;
      operands[4] = x5;
      x11 = XEXP (x3, 1);
      if (!arm_comparison_operator (x11, E_SImode))
        return -1;
      operands[5] = x11;
      x12 = XEXP (x3, 2);
      if (GET_CODE (x12) != CONST_INT)
        return -1;
      x4 = XEXP (x2, 1);
      if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
          || pattern378 (x1) != 0)
        return -1;
      switch (XWINT (x12, 0))
        {
        case 0L:
          if (!
#line 10147 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 340; /* *cmp_ite0 */

        case 1L:
          if (!
#line 10230 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 341; /* *cmp_ite1 */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_279 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  switch (GET_CODE (x3))
    {
    case MULT:
      res = recog_58 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    case ROTATERT:
      res = recog_59 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    case ASHIFTRT:
      switch (pattern29 (x3))
        {
        case 0:
          if (register_operand (operands[1], E_V4HImode)
              && register_operand (operands[0], E_V4HImode))
            {
              x4 = XEXP (x3, 1);
              operands[2] = x4;
              if (imm_or_reg_operand (operands[2], E_SImode)
                  && 
#line 1298 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 635; /* ashrv4hi3_iwmmxt */
              if (imm_or_reg_operand (operands[2], E_DImode)
                  && 
#line 1382 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 647; /* ashrv4hi3_di */
            }
          if (s_register_operand (operands[1], E_V4HImode)
              && s_register_operand (operands[0], E_V4HImode))
            {
              x4 = XEXP (x3, 1);
              operands[2] = x4;
              if (imm_for_neon_rshift_operand (operands[2], E_V4HImode)
                  && 
#line 858 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1356; /* vashrv4hi3_imm */
            }
          break;

        case 1:
          if (register_operand (operands[1], E_V2SImode)
              && register_operand (operands[0], E_V2SImode))
            {
              x4 = XEXP (x3, 1);
              operands[2] = x4;
              if (imm_or_reg_operand (operands[2], E_SImode)
                  && 
#line 1298 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 636; /* ashrv2si3_iwmmxt */
              if (imm_or_reg_operand (operands[2], E_DImode)
                  && 
#line 1382 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 648; /* ashrv2si3_di */
            }
          if (s_register_operand (operands[1], E_V2SImode)
              && s_register_operand (operands[0], E_V2SImode))
            {
              x4 = XEXP (x3, 1);
              operands[2] = x4;
              if (imm_for_neon_rshift_operand (operands[2], E_V2SImode)
                  && 
#line 858 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1358; /* vashrv2si3_imm */
            }
          break;

        case 2:
          if (register_operand (operands[0], E_DImode))
            {
              x5 = XEXP (x3, 0);
              operands[1] = x5;
              if (register_operand (operands[1], E_DImode))
                {
                  x4 = XEXP (x3, 1);
                  operands[2] = x4;
                  if (imm_or_reg_operand (operands[2], E_SImode)
                      && 
#line 1298 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                    return 637; /* ashrdi3_iwmmxt */
                  if (imm_or_reg_operand (operands[2], E_DImode)
                      && 
#line 1382 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                    return 649; /* ashrdi3_di */
                }
            }
          if (arm_general_register_operand (operands[0], E_DImode))
            {
              x4 = XEXP (x3, 1);
              operands[1] = x4;
              if (arm_reg_or_long_shift_imm (operands[1], E_SImode))
                {
                  x5 = XEXP (x3, 0);
                  if (rtx_equal_p (x5, operands[0])
                      && 
#line 1707 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_HAVE_MVE))
                    return 1065; /* thumb2_asrl */
                }
            }
          break;

        case 3:
          if (
#line 858 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1354; /* vashrv8qi3_imm */
          break;

        case 4:
          if (
#line 858 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1355; /* vashrv16qi3_imm */
          if (
#line 769 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3195; /* mve_vshrq_n_sv16qi_imm */
          break;

        case 5:
          if (
#line 858 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1357; /* vashrv8hi3_imm */
          if (
#line 769 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3196; /* mve_vshrq_n_sv8hi_imm */
          break;

        case 6:
          if (
#line 858 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1359; /* vashrv4si3_imm */
          if (
#line 769 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3197; /* mve_vshrq_n_sv4si_imm */
          break;

        default:
          break;
        }
      break;

    case LSHIFTRT:
      switch (pattern29 (x3))
        {
        case 0:
          if (register_operand (operands[1], E_V4HImode)
              && register_operand (operands[0], E_V4HImode))
            {
              x4 = XEXP (x3, 1);
              operands[2] = x4;
              if (imm_or_reg_operand (operands[2], E_SImode)
                  && 
#line 1319 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 638; /* lshrv4hi3_iwmmxt */
              if (register_operand (operands[2], E_DImode)
                  && 
#line 1403 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 650; /* lshrv4hi3_di */
            }
          if (s_register_operand (operands[1], E_V4HImode)
              && s_register_operand (operands[0], E_V4HImode))
            {
              x4 = XEXP (x3, 1);
              operands[2] = x4;
              if (imm_for_neon_rshift_operand (operands[2], E_V4HImode)
                  && 
#line 871 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1362; /* vlshrv4hi3_imm */
            }
          break;

        case 1:
          if (register_operand (operands[1], E_V2SImode)
              && register_operand (operands[0], E_V2SImode))
            {
              x4 = XEXP (x3, 1);
              operands[2] = x4;
              if (imm_or_reg_operand (operands[2], E_SImode)
                  && 
#line 1319 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 639; /* lshrv2si3_iwmmxt */
              if (register_operand (operands[2], E_DImode)
                  && 
#line 1403 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 651; /* lshrv2si3_di */
            }
          if (s_register_operand (operands[1], E_V2SImode)
              && s_register_operand (operands[0], E_V2SImode))
            {
              x4 = XEXP (x3, 1);
              operands[2] = x4;
              if (imm_for_neon_rshift_operand (operands[2], E_V2SImode)
                  && 
#line 871 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1364; /* vlshrv2si3_imm */
            }
          break;

        case 2:
          if (register_operand (operands[0], E_DImode))
            {
              x5 = XEXP (x3, 0);
              operands[1] = x5;
              if (register_operand (operands[1], E_DImode))
                {
                  x4 = XEXP (x3, 1);
                  operands[2] = x4;
                  if (imm_or_reg_operand (operands[2], E_SImode)
                      && 
#line 1319 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                    return 640; /* lshrdi3_iwmmxt */
                  if (register_operand (operands[2], E_DImode)
                      && 
#line 1403 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                    return 652; /* lshrdi3_di */
                }
            }
          if (arm_general_register_operand (operands[0], E_DImode))
            {
              x4 = XEXP (x3, 1);
              operands[1] = x4;
              if (long_shift_imm (operands[1], E_SImode))
                {
                  x5 = XEXP (x3, 0);
                  if (rtx_equal_p (x5, operands[0])
                      && 
#line 1723 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_HAVE_MVE))
                    return 1067; /* thumb2_lsrl */
                }
            }
          break;

        case 3:
          if (
#line 871 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1360; /* vlshrv8qi3_imm */
          break;

        case 4:
          if (
#line 871 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1361; /* vlshrv16qi3_imm */
          if (
#line 784 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3198; /* mve_vshrq_n_uv16qi_imm */
          break;

        case 5:
          if (
#line 871 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1363; /* vlshrv8hi3_imm */
          if (
#line 784 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3199; /* mve_vshrq_n_uv8hi_imm */
          break;

        case 6:
          if (
#line 871 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1365; /* vlshrv4si3_imm */
          if (
#line 784 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3200; /* mve_vshrq_n_uv4si_imm */
          break;

        default:
          break;
        }
      break;

    case ASHIFT:
      res = recog_60 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    default:
      break;
    }
  x5 = XEXP (x3, 0);
  operands[1] = x5;
  if (s_register_operand (operands[1], E_SImode)
      && s_register_operand (operands[0], E_SImode))
    {
      operands[3] = x3;
      if (shift_operator (operands[3], E_SImode))
        {
          x4 = XEXP (x3, 1);
          operands[2] = x4;
          if (reg_or_int_operand (operands[2], E_SImode)
              && 
#line 4739 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return 151; /* *arm_shiftsi3 */
        }
    }
  if (register_operand (operands[1], E_SImode)
      && register_operand (operands[0], E_SImode))
    {
      res = recog_61 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  if (pnum_clobbers == NULL
      || !low_register_operand (operands[1], E_SImode)
      || !low_register_operand (operands[0], E_SImode))
    return -1;
  x4 = XEXP (x3, 1);
  operands[2] = x4;
  if (low_reg_or_int_operand (operands[2], E_SImode))
    {
      operands[3] = x3;
      if (shift_operator (operands[3], E_SImode)
          && 
#line 1271 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed
   && ((GET_CODE(operands[3]) != ROTATE && GET_CODE(operands[3]) != ROTATERT)
       || REG_P (operands[2]))))
        {
          *pnum_clobbers = 1;
          return 1046; /* *thumb2_shiftsi3_short */
        }
    }
  if (!low_register_operand (operands[2], E_SImode)
      || GET_CODE (x3) != MULT
      || GET_MODE (x3) != E_SImode
      || !
#line 1429 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && optimize_size && reload_completed))
    return -1;
  *pnum_clobbers = 1;
  return 1054; /* *thumb2_mulsi_short */
}

static int
recog_280 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  switch (GET_CODE (x3))
    {
    case NE:
      res = recog_238 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    case EQ:
      switch (pattern271 (x3))
        {
        case 0:
          if (
#line 833 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3207; /* mve_vcmpeqq_v16qi */
          break;

        case 1:
          if (
#line 833 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3215; /* mve_vcmpeqq_v8hi */
          break;

        case 2:
          if (
#line 1924 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3564; /* mve_vcmpeqq_fv8hf */
          break;

        case 3:
          if (
#line 833 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3223; /* mve_vcmpeqq_v4si */
          break;

        case 4:
          if (
#line 1924 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3570; /* mve_vcmpeqq_fv4sf */
          break;

        case 5:
          if (
#line 848 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3231; /* mve_vcmpeqq_n_v16qi */
          break;

        case 6:
          if (
#line 848 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3239; /* mve_vcmpeqq_n_v8hi */
          break;

        case 7:
          if (
#line 1939 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3576; /* mve_vcmpeqq_n_fv8hf */
          break;

        case 8:
          if (
#line 848 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3247; /* mve_vcmpeqq_n_v4si */
          break;

        case 9:
          if (
#line 1939 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3582; /* mve_vcmpeqq_n_fv4sf */
          break;

        default:
          break;
        }
      break;

    case GE:
      switch (pattern271 (x3))
        {
        case 0:
          if (
#line 833 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3208; /* mve_vcmpgeq_v16qi */
          break;

        case 1:
          if (
#line 833 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3216; /* mve_vcmpgeq_v8hi */
          break;

        case 2:
          if (
#line 1924 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3565; /* mve_vcmpgeq_fv8hf */
          break;

        case 3:
          if (
#line 833 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3224; /* mve_vcmpgeq_v4si */
          break;

        case 4:
          if (
#line 1924 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3571; /* mve_vcmpgeq_fv4sf */
          break;

        case 5:
          if (
#line 848 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3232; /* mve_vcmpgeq_n_v16qi */
          break;

        case 6:
          if (
#line 848 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3240; /* mve_vcmpgeq_n_v8hi */
          break;

        case 7:
          if (
#line 1939 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3577; /* mve_vcmpgeq_n_fv8hf */
          break;

        case 8:
          if (
#line 848 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3248; /* mve_vcmpgeq_n_v4si */
          break;

        case 9:
          if (
#line 1939 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3583; /* mve_vcmpgeq_n_fv4sf */
          break;

        default:
          break;
        }
      break;

    case GEU:
      switch (pattern272 (x3))
        {
        case 0:
          if (
#line 833 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3209; /* mve_vcmpcsq_v16qi */
          break;

        case 1:
          if (
#line 833 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3217; /* mve_vcmpcsq_v8hi */
          break;

        case 2:
          if (
#line 833 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3225; /* mve_vcmpcsq_v4si */
          break;

        case 3:
          if (
#line 848 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3233; /* mve_vcmpcsq_n_v16qi */
          break;

        case 4:
          if (
#line 848 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3241; /* mve_vcmpcsq_n_v8hi */
          break;

        case 5:
          if (
#line 848 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3249; /* mve_vcmpcsq_n_v4si */
          break;

        default:
          break;
        }
      break;

    case GT:
      switch (pattern271 (x3))
        {
        case 0:
          if (
#line 833 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3210; /* mve_vcmpgtq_v16qi */
          break;

        case 1:
          if (
#line 833 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3218; /* mve_vcmpgtq_v8hi */
          break;

        case 2:
          if (
#line 1924 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3566; /* mve_vcmpgtq_fv8hf */
          break;

        case 3:
          if (
#line 833 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3226; /* mve_vcmpgtq_v4si */
          break;

        case 4:
          if (
#line 1924 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3572; /* mve_vcmpgtq_fv4sf */
          break;

        case 5:
          if (
#line 848 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3234; /* mve_vcmpgtq_n_v16qi */
          break;

        case 6:
          if (
#line 848 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3242; /* mve_vcmpgtq_n_v8hi */
          break;

        case 7:
          if (
#line 1939 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3578; /* mve_vcmpgtq_n_fv8hf */
          break;

        case 8:
          if (
#line 848 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3250; /* mve_vcmpgtq_n_v4si */
          break;

        case 9:
          if (
#line 1939 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3584; /* mve_vcmpgtq_n_fv4sf */
          break;

        default:
          break;
        }
      break;

    case GTU:
      switch (pattern272 (x3))
        {
        case 0:
          if (
#line 833 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3211; /* mve_vcmphiq_v16qi */
          break;

        case 1:
          if (
#line 833 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3219; /* mve_vcmphiq_v8hi */
          break;

        case 2:
          if (
#line 833 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3227; /* mve_vcmphiq_v4si */
          break;

        case 3:
          if (
#line 848 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3235; /* mve_vcmphiq_n_v16qi */
          break;

        case 4:
          if (
#line 848 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3243; /* mve_vcmphiq_n_v8hi */
          break;

        case 5:
          if (
#line 848 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3251; /* mve_vcmphiq_n_v4si */
          break;

        default:
          break;
        }
      break;

    case LE:
      switch (pattern271 (x3))
        {
        case 0:
          if (
#line 833 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3212; /* mve_vcmpleq_v16qi */
          break;

        case 1:
          if (
#line 833 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3220; /* mve_vcmpleq_v8hi */
          break;

        case 2:
          if (
#line 1924 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3567; /* mve_vcmpleq_fv8hf */
          break;

        case 3:
          if (
#line 833 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3228; /* mve_vcmpleq_v4si */
          break;

        case 4:
          if (
#line 1924 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3573; /* mve_vcmpleq_fv4sf */
          break;

        case 5:
          if (
#line 848 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3236; /* mve_vcmpleq_n_v16qi */
          break;

        case 6:
          if (
#line 848 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3244; /* mve_vcmpleq_n_v8hi */
          break;

        case 7:
          if (
#line 1939 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3579; /* mve_vcmpleq_n_fv8hf */
          break;

        case 8:
          if (
#line 848 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3252; /* mve_vcmpleq_n_v4si */
          break;

        case 9:
          if (
#line 1939 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3585; /* mve_vcmpleq_n_fv4sf */
          break;

        default:
          break;
        }
      break;

    case LT:
      switch (pattern271 (x3))
        {
        case 0:
          if (
#line 833 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3213; /* mve_vcmpltq_v16qi */
          break;

        case 1:
          if (
#line 833 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3221; /* mve_vcmpltq_v8hi */
          break;

        case 2:
          if (
#line 1924 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3568; /* mve_vcmpltq_fv8hf */
          break;

        case 3:
          if (
#line 833 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3229; /* mve_vcmpltq_v4si */
          break;

        case 4:
          if (
#line 1924 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3574; /* mve_vcmpltq_fv4sf */
          break;

        case 5:
          if (
#line 848 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3237; /* mve_vcmpltq_n_v16qi */
          break;

        case 6:
          if (
#line 848 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3245; /* mve_vcmpltq_n_v8hi */
          break;

        case 7:
          if (
#line 1939 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3580; /* mve_vcmpltq_n_fv8hf */
          break;

        case 8:
          if (
#line 848 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3253; /* mve_vcmpltq_n_v4si */
          break;

        case 9:
          if (
#line 1939 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3586; /* mve_vcmpltq_n_fv4sf */
          break;

        default:
          break;
        }
      break;

    default:
      break;
    }
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  operands[1] = x3;
  if (arm_comparison_operator_mode (operands[1], E_SImode))
    {
      x4 = XEXP (x3, 1);
      if (x4 == const_int_rtx[MAX_SAVED_CONST_INT + 0])
        {
          x5 = XEXP (x3, 0);
          operands[2] = x5;
          if (cc_register (operands[2], E_VOIDmode)
              && 
#line 8078 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return 279; /* *mov_scc */
        }
    }
  if (pnum_clobbers != NULL
      && arm_comparison_operator (operands[1], E_SImode))
    {
      x5 = XEXP (x3, 0);
      operands[2] = x5;
      if (s_register_operand (operands[2], E_SImode))
        {
          x4 = XEXP (x3, 1);
          operands[3] = x4;
          if (arm_add_operand (operands[3], E_SImode)
              && 
#line 9935 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            {
              *pnum_clobbers = 1;
              return 336; /* *compare_scc */
            }
        }
    }
  if (GET_CODE (x3) == LTU
      && GET_MODE (x3) == E_SImode)
    {
      x5 = XEXP (x3, 0);
      operands[1] = x5;
      if (s_register_operand (operands[1], E_SImode))
        {
          x4 = XEXP (x3, 1);
          operands[2] = x4;
          if (thumb1_cmp_operand (operands[2], E_SImode)
              && 
#line 1753 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return 981; /* cstoresi_ltu_thumb1 */
        }
    }
  x4 = XEXP (x3, 1);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  operands[1] = x3;
  if (!arm_comparison_operator_mode (operands[1], E_SImode))
    return -1;
  x5 = XEXP (x3, 0);
  operands[2] = x5;
  if (!cc_register (operands[2], E_VOIDmode)
      || !
#line 326 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
    return -1;
  return 1011; /* *thumb2_mov_scc */
}

static int
recog_281 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case REG:
    case SUBREG:
      operands[1] = x4;
      switch (GET_MODE (operands[0]))
        {
        case E_SImode:
          if (GET_MODE (x3) != E_SImode)
            return -1;
          if (s_register_operand (operands[0], E_SImode)
              && s_register_operand (operands[1], E_SImode)
              && 
#line 5165 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return 168; /* *arm_negsi2 */
          if (register_operand (operands[0], E_SImode)
              && register_operand (operands[1], E_SImode)
              && 
#line 324 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return 949; /* *thumb1_negsi2 */
          if (pnum_clobbers == NULL
              || !low_register_operand (operands[0], E_SImode)
              || !low_register_operand (operands[1], E_SImode)
              || !
#line 1523 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
            return -1;
          *pnum_clobbers = 1;
          return 1060; /* *thumb2_negsi2_short */

        case E_SFmode:
          if (!s_register_operand (operands[0], E_SFmode)
              || GET_MODE (x3) != E_SFmode
              || !s_register_operand (operands[1], E_SFmode)
              || !
#line 890 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
            return -1;
          return 777; /* *negsf2_vfp */

        case E_DFmode:
          if (!s_register_operand (operands[0], E_DFmode)
              || GET_MODE (x3) != E_DFmode
              || !s_register_operand (operands[1], E_DFmode)
              || !
#line 901 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
            return -1;
          return 778; /* *negdf2_vfp */

        case E_HFmode:
          if (!s_register_operand (operands[0], E_HFmode)
              || GET_MODE (x3) != E_HFmode
              || !s_register_operand (operands[1], E_HFmode)
              || !
#line 949 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 780; /* neghf2 */

        case E_DImode:
          if (pnum_clobbers == NULL
              || !register_operand (operands[0], E_DImode)
              || GET_MODE (x3) != E_DImode
              || !register_operand (operands[1], E_DImode)
              || !
#line 315 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return -1;
          *pnum_clobbers = 1;
          return 948; /* *thumb1_negdi2 */

        case E_V8QImode:
          if (!s_register_operand (operands[0], E_V8QImode)
              || GET_MODE (x3) != E_V8QImode
              || !s_register_operand (operands[1], E_V8QImode)
              || !
#line 762 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1300; /* neon_negv8qi2 */

        case E_V16QImode:
          if (!s_register_operand (operands[0], E_V16QImode)
              || GET_MODE (x3) != E_V16QImode
              || !s_register_operand (operands[1], E_V16QImode))
            return -1;
          if (
#line 762 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1301; /* neon_negv16qi2 */
          if (!
#line 403 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3103; /* mve_vnegq_sv16qi */

        case E_V4HImode:
          if (!s_register_operand (operands[0], E_V4HImode)
              || GET_MODE (x3) != E_V4HImode
              || !s_register_operand (operands[1], E_V4HImode)
              || !
#line 762 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1302; /* neon_negv4hi2 */

        case E_V8HImode:
          if (!s_register_operand (operands[0], E_V8HImode)
              || GET_MODE (x3) != E_V8HImode
              || !s_register_operand (operands[1], E_V8HImode))
            return -1;
          if (
#line 762 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1303; /* neon_negv8hi2 */
          if (!
#line 403 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3104; /* mve_vnegq_sv8hi */

        case E_V2SImode:
          if (!s_register_operand (operands[0], E_V2SImode)
              || GET_MODE (x3) != E_V2SImode
              || !s_register_operand (operands[1], E_V2SImode)
              || !
#line 762 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1304; /* neon_negv2si2 */

        case E_V4SImode:
          if (!s_register_operand (operands[0], E_V4SImode)
              || GET_MODE (x3) != E_V4SImode
              || !s_register_operand (operands[1], E_V4SImode))
            return -1;
          if (
#line 762 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1305; /* neon_negv4si2 */
          if (!
#line 403 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3105; /* mve_vnegq_sv4si */

        case E_V2SFmode:
          if (!s_register_operand (operands[0], E_V2SFmode)
              || GET_MODE (x3) != E_V2SFmode
              || !s_register_operand (operands[1], E_V2SFmode)
              || !
#line 762 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1306; /* neon_negv2sf2 */

        case E_V4SFmode:
          if (!s_register_operand (operands[0], E_V4SFmode)
              || GET_MODE (x3) != E_V4SFmode
              || !s_register_operand (operands[1], E_V4SFmode))
            return -1;
          if (
#line 762 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1307; /* neon_negv4sf2 */
          if (!
#line 254 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3075; /* mve_vnegq_fv4sf */

        case E_V8HFmode:
          if (!s_register_operand (operands[0], E_V8HFmode)
              || GET_MODE (x3) != E_V8HFmode
              || !s_register_operand (operands[1], E_V8HFmode))
            return -1;
          if (
#line 773 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return 1309; /* neon_negv8hf2 */
          if (!
#line 254 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3074; /* mve_vnegq_fv8hf */

        case E_V4HFmode:
          if (!s_register_operand (operands[0], E_V4HFmode)
              || GET_MODE (x3) != E_V4HFmode
              || !s_register_operand (operands[1], E_V4HFmode)
              || !
#line 773 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1311; /* neon_negv4hf2 */

        default:
          return -1;
        }

    case ABS:
      if (pnum_clobbers == NULL
          || pattern280 (x3, E_SImode) != 0)
        return -1;
      if (
#line 5305 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
        {
          *pnum_clobbers = 1;
          return 172; /* *arm_neg_abssi2 */
        }
      if (
#line 349 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        {
          *pnum_clobbers = 1;
          return 951; /* *thumb1_neg_abssi2 */
        }
      if (!
#line 170 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return -1;
      *pnum_clobbers = 1;
      return 1005; /* *thumb2_neg_abssi2 */

    case NE:
    case EQ:
    case GE:
    case GT:
    case LE:
    case LT:
    case GEU:
    case GTU:
    case LEU:
    case LTU:
    case UNORDERED:
    case ORDERED:
    case UNGE:
    case UNGT:
    case UNLE:
    case UNLT:
      return recog_268 (x1, insn, pnum_clobbers);

    case MULT:
      x5 = XEXP (x4, 0);
      operands[1] = x5;
      x6 = XEXP (x4, 1);
      operands[2] = x6;
      switch (GET_MODE (operands[0]))
        {
        case E_HFmode:
          if (pattern318 (x3, E_HFmode) != 0
              || !
#line 1143 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 801; /* *negmulhf3_vfp */

        case E_SFmode:
          if (pattern318 (x3, E_SFmode) != 0
              || !
#line 1163 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
            return -1;
          return 803; /* *negmulsf3_vfp */

        case E_DFmode:
          if (pattern318 (x3, E_DFmode) != 0
              || !
#line 1184 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
            return -1;
          return 805; /* *negmuldf3_vfp */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_282 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case REG:
    case SUBREG:
      operands[1] = x4;
      switch (GET_MODE (operands[0]))
        {
        case E_SImode:
          if (pnum_clobbers == NULL
              || !s_register_operand (operands[0], E_SImode)
              || GET_MODE (x3) != E_SImode
              || !s_register_operand (operands[1], E_SImode))
            return -1;
          if (
#line 5241 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            {
              *pnum_clobbers = 1;
              return 171; /* *arm_abssi2 */
            }
          if (
#line 334 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            {
              *pnum_clobbers = 1;
              return 950; /* *thumb1_abssi2 */
            }
          if (!
#line 117 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
            return -1;
          *pnum_clobbers = 1;
          return 1004; /* *thumb2_abssi2 */

        case E_SFmode:
          if (!s_register_operand (operands[0], E_SFmode)
              || GET_MODE (x3) != E_SFmode
              || !s_register_operand (operands[1], E_SFmode)
              || !
#line 872 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
            return -1;
          return 775; /* *abssf2_vfp */

        case E_DFmode:
          if (!s_register_operand (operands[0], E_DFmode)
              || GET_MODE (x3) != E_DFmode
              || !s_register_operand (operands[1], E_DFmode)
              || !
#line 881 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
            return -1;
          return 776; /* *absdf2_vfp */

        case E_HFmode:
          if (!s_register_operand (operands[0], E_HFmode)
              || GET_MODE (x3) != E_HFmode
              || !s_register_operand (operands[1], E_HFmode)
              || !
#line 949 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 779; /* abshf2 */

        case E_V8QImode:
          if (!s_register_operand (operands[0], E_V8QImode)
              || GET_MODE (x3) != E_V8QImode
              || !s_register_operand (operands[1], E_V8QImode)
              || !
#line 751 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1292; /* neon_absv8qi2 */

        case E_V16QImode:
          if (!s_register_operand (operands[0], E_V16QImode)
              || GET_MODE (x3) != E_V16QImode
              || !s_register_operand (operands[1], E_V16QImode))
            return -1;
          if (
#line 751 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1293; /* neon_absv16qi2 */
          if (!
#line 498 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3127; /* mve_vabsq_sv16qi */

        case E_V4HImode:
          if (!s_register_operand (operands[0], E_V4HImode)
              || GET_MODE (x3) != E_V4HImode
              || !s_register_operand (operands[1], E_V4HImode)
              || !
#line 751 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1294; /* neon_absv4hi2 */

        case E_V8HImode:
          if (!s_register_operand (operands[0], E_V8HImode)
              || GET_MODE (x3) != E_V8HImode
              || !s_register_operand (operands[1], E_V8HImode))
            return -1;
          if (
#line 751 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1295; /* neon_absv8hi2 */
          if (!
#line 498 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3128; /* mve_vabsq_sv8hi */

        case E_V2SImode:
          if (!s_register_operand (operands[0], E_V2SImode)
              || GET_MODE (x3) != E_V2SImode
              || !s_register_operand (operands[1], E_V2SImode)
              || !
#line 751 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1296; /* neon_absv2si2 */

        case E_V4SImode:
          if (!s_register_operand (operands[0], E_V4SImode)
              || GET_MODE (x3) != E_V4SImode
              || !s_register_operand (operands[1], E_V4SImode))
            return -1;
          if (
#line 751 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1297; /* neon_absv4si2 */
          if (!
#line 498 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3129; /* mve_vabsq_sv4si */

        case E_V2SFmode:
          if (!s_register_operand (operands[0], E_V2SFmode)
              || GET_MODE (x3) != E_V2SFmode
              || !s_register_operand (operands[1], E_V2SFmode)
              || !
#line 751 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1298; /* neon_absv2sf2 */

        case E_V4SFmode:
          if (!s_register_operand (operands[0], E_V4SFmode)
              || GET_MODE (x3) != E_V4SFmode
              || !s_register_operand (operands[1], E_V4SFmode))
            return -1;
          if (
#line 751 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1299; /* neon_absv4sf2 */
          if (!
#line 281 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3079; /* mve_vabsq_fv4sf */

        case E_V8HFmode:
          if (!s_register_operand (operands[0], E_V8HFmode)
              || GET_MODE (x3) != E_V8HFmode
              || !s_register_operand (operands[1], E_V8HFmode))
            return -1;
          if (
#line 773 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return 1308; /* neon_absv8hf2 */
          if (!
#line 281 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3078; /* mve_vabsq_fv8hf */

        case E_V4HFmode:
          if (!s_register_operand (operands[0], E_V4HFmode)
              || GET_MODE (x3) != E_V4HFmode
              || !s_register_operand (operands[1], E_V4HFmode)
              || !
#line 773 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1310; /* neon_absv4hf2 */

        default:
          return -1;
        }

    case MINUS:
      x5 = XEXP (x4, 0);
      operands[1] = x5;
      x6 = XEXP (x4, 1);
      operands[2] = x6;
      switch (GET_MODE (operands[0]))
        {
        case E_V4HFmode:
          if (pattern318 (x3, E_V4HFmode) != 0
              || !(
#line 6315 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4HF_ARITH) && 
#line 153 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
            return -1;
          return 2817; /* neon_vabdv4hf_2 */

        case E_V8HFmode:
          if (pattern318 (x3, E_V8HFmode) != 0
              || !(
#line 6315 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V8HF_ARITH) && 
#line 154 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
            return -1;
          return 2818; /* neon_vabdv8hf_2 */

        case E_V2SFmode:
          if (pattern318 (x3, E_V2SFmode) != 0
              || !
#line 6315 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V2SF_ARITH))
            return -1;
          return 2819; /* neon_vabdv2sf_2 */

        case E_V4SFmode:
          if (pattern318 (x3, E_V4SFmode) != 0
              || !
#line 6315 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4SF_ARITH))
            return -1;
          return 2820; /* neon_vabdv4sf_2 */

        default:
          return -1;
        }

    case UNSPEC:
      if (XVECLEN (x4, 0) != 2
          || XINT (x4, 1) != 328)
        return -1;
      x7 = XVECEXP (x4, 0, 0);
      operands[1] = x7;
      x8 = XVECEXP (x4, 0, 1);
      operands[2] = x8;
      switch (GET_MODE (operands[0]))
        {
        case E_V4HFmode:
          if (pattern438 (x3, E_V4HFmode) != 0
              || !(
#line 6325 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4HF_ARITH) && 
#line 153 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
            return -1;
          return 2821; /* neon_vabdv4hf_3 */

        case E_V8HFmode:
          if (pattern438 (x3, E_V8HFmode) != 0
              || !(
#line 6325 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V8HF_ARITH) && 
#line 154 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
            return -1;
          return 2822; /* neon_vabdv8hf_3 */

        case E_V2SFmode:
          if (pattern438 (x3, E_V2SFmode) != 0
              || !
#line 6325 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V2SF_ARITH))
            return -1;
          return 2823; /* neon_vabdv2sf_3 */

        case E_V4SFmode:
          if (pattern438 (x3, E_V4SFmode) != 0
              || !
#line 6325 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4SF_ARITH))
            return -1;
          return 2824; /* neon_vabdv4sf_3 */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_283 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  switch (GET_CODE (x3))
    {
    case SMAX:
      res = recog_251 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    case SMIN:
      res = recog_252 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    case UMAX:
      switch (pattern276 (x3, pnum_clobbers))
        {
        case 0:
          if (
#line 4156 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            {
              *pnum_clobbers = 1;
              return 122; /* *arm_umaxsi3 */
            }
          break;

        case 1:
          if (register_operand (operands[0], E_V2SImode)
              && register_operand (operands[1], E_V2SImode)
              && register_operand (operands[2], E_V2SImode)
              && 
#line 913 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 599; /* *umaxv2si3_iwmmxt */
          if (s_register_operand (operands[0], E_V2SImode)
              && s_register_operand (operands[1], E_V2SImode)
              && s_register_operand (operands[2], E_V2SImode)
              && 
#line 821 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1336; /* *umaxv2si3_neon */
          break;

        case 2:
          if (register_operand (operands[0], E_V4HImode)
              && register_operand (operands[1], E_V4HImode)
              && register_operand (operands[2], E_V4HImode)
              && 
#line 913 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 600; /* *umaxv4hi3_iwmmxt */
          if (s_register_operand (operands[0], E_V4HImode)
              && s_register_operand (operands[1], E_V4HImode)
              && s_register_operand (operands[2], E_V4HImode)
              && 
#line 821 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1334; /* *umaxv4hi3_neon */
          break;

        case 3:
          if (register_operand (operands[0], E_V8QImode)
              && register_operand (operands[1], E_V8QImode)
              && register_operand (operands[2], E_V8QImode)
              && 
#line 913 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 601; /* *umaxv8qi3_iwmmxt */
          if (s_register_operand (operands[0], E_V8QImode)
              && s_register_operand (operands[1], E_V8QImode)
              && s_register_operand (operands[2], E_V8QImode)
              && 
#line 821 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1332; /* *umaxv8qi3_neon */
          break;

        case 4:
          if (
#line 821 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1333; /* *umaxv16qi3_neon */
          if (
#line 1169 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3339; /* mve_vmaxq_uv16qi */
          break;

        case 5:
          if (
#line 821 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1335; /* *umaxv8hi3_neon */
          if (
#line 1169 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3340; /* mve_vmaxq_uv8hi */
          break;

        case 6:
          if (
#line 821 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1337; /* *umaxv4si3_neon */
          if (
#line 1169 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3341; /* mve_vmaxq_uv4si */
          break;

        case 7:
          if (
#line 1080 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1403; /* quad_halves_umaxv4si */
          break;

        case 8:
          if (
#line 1108 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1411; /* quad_halves_umaxv8hi */
          break;

        case 9:
          if (
#line 1127 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1416; /* quad_halves_umaxv16qi */
          break;

        default:
          break;
        }
      break;

    case UMIN:
      switch (pattern276 (x3, pnum_clobbers))
        {
        case 0:
          if (
#line 4189 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            {
              *pnum_clobbers = 1;
              return 123; /* *arm_uminsi3 */
            }
          break;

        case 1:
          if (register_operand (operands[0], E_V2SImode)
              && register_operand (operands[1], E_V2SImode)
              && register_operand (operands[2], E_V2SImode)
              && 
#line 933 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 605; /* *uminv2si3_iwmmxt */
          if (s_register_operand (operands[0], E_V2SImode)
              && s_register_operand (operands[1], E_V2SImode)
              && s_register_operand (operands[2], E_V2SImode)
              && 
#line 812 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1330; /* *uminv2si3_neon */
          break;

        case 2:
          if (register_operand (operands[0], E_V4HImode)
              && register_operand (operands[1], E_V4HImode)
              && register_operand (operands[2], E_V4HImode)
              && 
#line 933 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 606; /* *uminv4hi3_iwmmxt */
          if (s_register_operand (operands[0], E_V4HImode)
              && s_register_operand (operands[1], E_V4HImode)
              && s_register_operand (operands[2], E_V4HImode)
              && 
#line 812 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1328; /* *uminv4hi3_neon */
          break;

        case 3:
          if (register_operand (operands[0], E_V8QImode)
              && register_operand (operands[1], E_V8QImode)
              && register_operand (operands[2], E_V8QImode)
              && 
#line 933 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 607; /* *uminv8qi3_iwmmxt */
          if (s_register_operand (operands[0], E_V8QImode)
              && s_register_operand (operands[1], E_V8QImode)
              && s_register_operand (operands[2], E_V8QImode)
              && 
#line 812 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1326; /* *uminv8qi3_neon */
          break;

        case 4:
          if (
#line 812 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1327; /* *uminv16qi3_neon */
          if (
#line 1239 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3357; /* mve_vminq_uv16qi */
          break;

        case 5:
          if (
#line 812 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1329; /* *uminv8hi3_neon */
          if (
#line 1239 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3358; /* mve_vminq_uv8hi */
          break;

        case 6:
          if (
#line 812 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1331; /* *uminv4si3_neon */
          if (
#line 1239 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3359; /* mve_vminq_uv4si */
          break;

        case 7:
          if (
#line 1080 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1402; /* quad_halves_uminv4si */
          break;

        case 8:
          if (
#line 1108 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1410; /* quad_halves_uminv8hi */
          break;

        case 9:
          if (
#line 1127 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1415; /* quad_halves_uminv16qi */
          break;

        default:
          break;
        }
      break;

    default:
      break;
    }
  if (pnum_clobbers == NULL)
    return -1;
  x4 = XEXP (x3, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x5 = XEXP (x3, 1);
  operands[2] = x5;
  if (s_register_operand (operands[2], E_SImode)
      && memory_operand (operands[0], E_SImode))
    {
      operands[3] = x3;
      if (minmax_operator (operands[3], E_SImode)
          && 
#line 4213 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && optimize_function_for_size_p (cfun) && !arm_restrict_it))
        {
          *pnum_clobbers = 1;
          return 124; /* *store_minmaxsi */
        }
    }
  if (!arm_rhs_operand (operands[2], E_SImode)
      || !s_register_operand (operands[0], E_SImode)
      || GET_MODE (x3) != E_SImode)
    return -1;
  switch (GET_CODE (x3))
    {
    case SMAX:
      if (!
#line 34 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return -1;
      *pnum_clobbers = 1;
      return 1000; /* *thumb2_smaxsi3 */

    case SMIN:
      if (!
#line 55 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return -1;
      *pnum_clobbers = 1;
      return 1001; /* *thumb2_sminsi3 */

    case UMAX:
      if (!
#line 76 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return -1;
      *pnum_clobbers = 1;
      return 1002; /* *thumb32_umaxsi3 */

    case UMIN:
      if (!
#line 97 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return -1;
      *pnum_clobbers = 1;
      return 1003; /* *thumb2_uminsi3 */

    default:
      return -1;
    }
}

static int
recog_284 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case MULT:
    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      operands[3] = x4;
      if (!shift_operator (operands[3], E_SImode)
          || !s_register_operand (operands[0], E_SImode)
          || GET_MODE (x3) != E_SImode)
        return -1;
      x5 = XEXP (x4, 0);
      operands[1] = x5;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      x6 = XEXP (x4, 1);
      operands[2] = x6;
      if (!shift_amount_operand (operands[2], E_SImode)
          || !
#line 4783 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 154; /* *not_shiftsi */

    case REG:
    case SUBREG:
      operands[1] = x4;
      switch (GET_MODE (operands[0]))
        {
        case E_SImode:
          if (GET_MODE (x3) != E_SImode)
            return -1;
          if (s_register_operand (operands[0], E_SImode)
              && s_register_operand (operands[1], E_SImode)
              && 
#line 5388 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return 173; /* *arm_one_cmplsi2 */
          if (register_operand (operands[0], E_SImode)
              && register_operand (operands[1], E_SImode)
              && 
#line 363 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return 952; /* *thumb1_one_cmplsi2 */
          if (pnum_clobbers == NULL
              || !low_register_operand (operands[0], E_SImode)
              || !low_register_operand (operands[1], E_SImode)
              || !
#line 1512 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
            return -1;
          *pnum_clobbers = 1;
          return 1059; /* *thumb2_one_cmplsi2_short */

        case E_V8QImode:
          if (!s_register_operand (operands[0], E_V8QImode)
              || GET_MODE (x3) != E_V8QImode
              || !s_register_operand (operands[1], E_V8QImode)
              || !
#line 743 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1281; /* one_cmplv8qi2_neon */

        case E_V16QImode:
          if (!s_register_operand (operands[0], E_V16QImode)
              || GET_MODE (x3) != E_V16QImode
              || !s_register_operand (operands[1], E_V16QImode))
            return -1;
          if (
#line 743 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1282; /* one_cmplv16qi2_neon */
          if (!
#line 416 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3106; /* mve_vmvnq_uv16qi */

        case E_V4HImode:
          if (!s_register_operand (operands[0], E_V4HImode)
              || GET_MODE (x3) != E_V4HImode
              || !s_register_operand (operands[1], E_V4HImode)
              || !
#line 743 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1283; /* one_cmplv4hi2_neon */

        case E_V8HImode:
          if (!s_register_operand (operands[0], E_V8HImode)
              || GET_MODE (x3) != E_V8HImode
              || !s_register_operand (operands[1], E_V8HImode))
            return -1;
          if (
#line 743 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1284; /* one_cmplv8hi2_neon */
          if (!
#line 416 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3107; /* mve_vmvnq_uv8hi */

        case E_V2SImode:
          if (!s_register_operand (operands[0], E_V2SImode)
              || GET_MODE (x3) != E_V2SImode
              || !s_register_operand (operands[1], E_V2SImode)
              || !
#line 743 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1285; /* one_cmplv2si2_neon */

        case E_V4SImode:
          if (!s_register_operand (operands[0], E_V4SImode)
              || GET_MODE (x3) != E_V4SImode
              || !s_register_operand (operands[1], E_V4SImode))
            return -1;
          if (
#line 743 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1286; /* one_cmplv4si2_neon */
          if (!
#line 416 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3108; /* mve_vmvnq_uv4si */

        case E_V4HFmode:
          if (!s_register_operand (operands[0], E_V4HFmode)
              || GET_MODE (x3) != E_V4HFmode
              || !s_register_operand (operands[1], E_V4HFmode)
              || !
#line 743 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1287; /* one_cmplv4hf2_neon */

        case E_V8HFmode:
          if (!s_register_operand (operands[0], E_V8HFmode)
              || GET_MODE (x3) != E_V8HFmode
              || !s_register_operand (operands[1], E_V8HFmode)
              || !
#line 743 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1288; /* one_cmplv8hf2_neon */

        case E_V2SFmode:
          if (!s_register_operand (operands[0], E_V2SFmode)
              || GET_MODE (x3) != E_V2SFmode
              || !s_register_operand (operands[1], E_V2SFmode)
              || !
#line 743 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1289; /* one_cmplv2sf2_neon */

        case E_V4SFmode:
          if (!s_register_operand (operands[0], E_V4SFmode)
              || GET_MODE (x3) != E_V4SFmode
              || !s_register_operand (operands[1], E_V4SFmode)
              || !
#line 743 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1290; /* one_cmplv4sf2_neon */

        case E_V2DImode:
          if (!s_register_operand (operands[0], E_V2DImode)
              || GET_MODE (x3) != E_V2DImode
              || !s_register_operand (operands[1], E_V2DImode)
              || !
#line 743 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1291; /* one_cmplv2di2_neon */

        default:
          return -1;
        }

    case NE:
    case EQ:
    case GE:
    case GT:
    case LE:
    case LT:
    case GEU:
    case GTU:
    case LEU:
    case LTU:
    case UNORDERED:
    case ORDERED:
    case UNGE:
    case UNGT:
    case UNLE:
    case UNLT:
      operands[1] = x4;
      x6 = XEXP (x4, 1);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
          || GET_MODE (x3) != E_SImode)
        return -1;
      x5 = XEXP (x4, 0);
      operands[2] = x5;
      if (!cc_register (operands[2], E_VOIDmode))
        return -1;
      if (s_register_operand (operands[0], E_SImode))
        {
          if (arm_comparison_operator (operands[1], E_SImode)
              && 
#line 8124 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return 282; /* *mov_notscc */
          if (arm_comparison_operator_mode (operands[1], E_SImode)
              && 
#line 396 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !arm_restrict_it))
            return 1014; /* *thumb2_mov_notscc */
        }
      if (!low_register_operand (operands[0], E_SImode)
          || !arm_comparison_operator_mode (operands[1], E_SImode)
          || !
#line 416 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_restrict_it))
        return -1;
      return 1015; /* *thumb2_mov_notscc_strict_it */

    case SIGN_EXTRACT:
      if (pnum_clobbers == NULL
          || pattern305 (x3, 1) != 0)
        return -1;
      x7 = XEXP (x4, 2);
      operands[2] = x7;
      if (!const_int_operand (operands[2], E_SImode)
          || !
#line 11840 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      *pnum_clobbers = 1;
      return 383; /* *not_signextract_onebit */

    default:
      return -1;
    }
}

static int
recog_285 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case UNSPEC:
      if (pattern279 (x3) != 0
          || !
#line 5032 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(unaligned_access))
        return -1;
      return 160; /* unaligned_loadhiu */

    case REG:
    case SUBREG:
    case MEM:
      operands[1] = x4;
      switch (GET_MODE (operands[0]))
        {
        case E_SImode:
          if (GET_MODE (x3) != E_SImode)
            return -1;
          if (s_register_operand (operands[0], E_SImode))
            {
              switch (GET_MODE (operands[1]))
                {
                case E_HImode:
                  if (nonimmediate_operand (operands[1], E_HImode))
                    {
                      if (
#line 5674 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch4 && !arm_arch6))
                        return 176; /* *arm_zero_extendhisi2 */
                      if (
#line 5685 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch6))
                        return 177; /* *arm_zero_extendhisi2_v6 */
                    }
                  break;

                case E_QImode:
                  if (nonimmediate_operand (operands[1], E_QImode))
                    {
                      if (
#line 5743 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && !arm_arch6))
                        return 179; /* *arm_zero_extendqisi2 */
                      if (
#line 5755 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch6))
                        return 180; /* *arm_zero_extendqisi2_v6 */
                    }
                  break;

                default:
                  break;
                }
            }
          if (register_operand (operands[0], E_SImode))
            {
              switch (GET_MODE (operands[1]))
                {
                case E_HImode:
                  if (nonimmediate_operand (operands[1], E_HImode)
                      && 
#line 372 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                    return 953; /* *thumb1_zero_extendhisi2 */
                  break;

                case E_QImode:
                  if (nonimmediate_operand (operands[1], E_QImode))
                    {
                      if (
#line 415 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && !arm_arch6))
                        return 954; /* *thumb1_zero_extendqisi2 */
                      if (
#line 427 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && arm_arch6))
                        return 955; /* *thumb1_zero_extendqisi2_v6 */
                    }
                  break;

                default:
                  break;
                }
            }
          if (!s_register_operand (operands[0], E_SImode))
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case E_HImode:
              if (!nonimmediate_operand (operands[1], E_HImode)
                  || !
#line 1107 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_arch6))
                return -1;
              return 1038; /* *thumb2_zero_extendhisi2_v6 */

            case E_QImode:
              if (!nonimmediate_operand (operands[1], E_QImode)
                  || !
#line 1120 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_arch6))
                return -1;
              return 1039; /* thumb2_zero_extendqisi2_v6 */

            default:
              return -1;
            }

        case E_V8HImode:
          if (!register_operand (operands[0], E_V8HImode)
              || GET_MODE (x3) != E_V8HImode
              || !register_operand (operands[1], E_V8QImode)
              || !
#line 6171 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2800; /* neon_unpacku_v8qi */

        case E_V4SImode:
          if (!register_operand (operands[0], E_V4SImode)
              || GET_MODE (x3) != E_V4SImode
              || !register_operand (operands[1], E_V4HImode)
              || !
#line 6171 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2802; /* neon_unpacku_v4hi */

        case E_V2DImode:
          if (!register_operand (operands[0], E_V2DImode)
              || GET_MODE (x3) != E_V2DImode
              || !register_operand (operands[1], E_V2SImode)
              || !
#line 6171 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2804; /* neon_unpacku_v2si */

        default:
          return -1;
        }

    case VEC_SELECT:
      x5 = XEXP (x4, 1);
      if (GET_CODE (x5) != PARALLEL)
        return -1;
      x6 = XEXP (x4, 0);
      operands[1] = x6;
      if (XVECLEN (x5, 0) == 1)
        {
          res = recog_267 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      operands[2] = x5;
      switch (GET_MODE (operands[0]))
        {
        case E_V8HImode:
          if (pattern412 (x3, E_V16QImode, E_V8QImode, E_V8HImode) != 0)
            return -1;
          if (vect_par_constant_low (operands[2], E_V16QImode)
              && 
#line 6008 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return 2770; /* neon_vec_unpacku_lo_v16qi */
          if (!vect_par_constant_high (operands[2], E_V16QImode)
              || !
#line 6018 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return -1;
          return 2776; /* neon_vec_unpacku_hi_v16qi */

        case E_V4SImode:
          if (pattern412 (x3, E_V8HImode, E_V4HImode, E_V4SImode) != 0)
            return -1;
          if (vect_par_constant_low (operands[2], E_V8HImode)
              && 
#line 6008 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return 2772; /* neon_vec_unpacku_lo_v8hi */
          if (!vect_par_constant_high (operands[2], E_V8HImode)
              || !
#line 6018 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return -1;
          return 2778; /* neon_vec_unpacku_hi_v8hi */

        case E_V2DImode:
          if (pattern412 (x3, E_V4SImode, E_V2SImode, E_V2DImode) != 0)
            return -1;
          if (vect_par_constant_low (operands[2], E_V4SImode)
              && 
#line 6008 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return 2774; /* neon_vec_unpacku_lo_v4si */
          if (!vect_par_constant_high (operands[2], E_V4SImode)
              || !
#line 6018 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return -1;
          return 2780; /* neon_vec_unpacku_hi_v4si */

        default:
          return -1;
        }

    case ASHIFT:
      switch (pattern282 (x3))
        {
        case 0:
          if (!
#line 6133 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2794; /* neon_vec_ushiftl_v8qi */

        case 1:
          if (!
#line 6133 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2796; /* neon_vec_ushiftl_v4hi */

        case 2:
          if (!
#line 6133 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2798; /* neon_vec_ushiftl_v2si */

        default:
          return -1;
        }

    case UNSPEC_VOLATILE:
      if (XVECLEN (x4, 0) != 1
          || !s_register_operand (operands[0], E_SImode)
          || GET_MODE (x3) != E_SImode)
        return -1;
      x7 = XVECEXP (x4, 0, 0);
      operands[1] = x7;
      switch (XINT (x4, 1))
        {
        case 20:
          switch (GET_MODE (x4))
            {
            case E_QImode:
              if (!mem_noofs_operand (operands[1], E_QImode)
                  || !
#line 454 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH))
                return -1;
              return 2964; /* arm_load_exclusiveqi */

            case E_HImode:
              if (!mem_noofs_operand (operands[1], E_HImode)
                  || !
#line 454 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH))
                return -1;
              return 2965; /* arm_load_exclusivehi */

            default:
              return -1;
            }

        case 23:
          switch (GET_MODE (x4))
            {
            case E_QImode:
              if (!mem_noofs_operand (operands[1], E_QImode)
                  || !
#line 467 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ))
                return -1;
              return 2966; /* arm_load_acquire_exclusiveqi */

            case E_HImode:
              if (!mem_noofs_operand (operands[1], E_HImode)
                  || !
#line 467 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ))
                return -1;
              return 2967; /* arm_load_acquire_exclusivehi */

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_286 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != PARALLEL)
    return -1;
  x4 = XEXP (x1, 0);
  operands[0] = x4;
  x5 = XEXP (x2, 0);
  switch (GET_CODE (x5))
    {
    case REG:
    case SUBREG:
      operands[1] = x5;
      if (XVECLEN (x3, 0) != 1)
        return -1;
      x6 = XVECEXP (x3, 0, 0);
      operands[2] = x6;
      if (!immediate_operand (operands[2], E_SImode))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case E_SImode:
          if (GET_MODE (x2) != E_SImode)
            return -1;
          if (register_operand (operands[0], E_SImode)
              && register_operand (operands[1], E_V2SImode)
              && 
#line 770 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 585; /* iwmmxt_textrmw */
          if (!nonimmediate_operand (operands[0], E_SImode))
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case E_V2SImode:
              if (!s_register_operand (operands[1], E_V2SImode)
                  || !
#line 394 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1134; /* vec_extractv2sisi */

            case E_V4SImode:
              if (!s_register_operand (operands[1], E_V4SImode))
                return -1;
              if (
#line 419 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1139; /* neon_vec_extractv4sisi */
              if (!
#line 10062 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V4SImode))
   || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V4SImode))))
                return -1;
              return 4906; /* mve_vec_extractv4sisi */

            default:
              return -1;
            }

        case E_QImode:
          if (!nonimmediate_operand (operands[0], E_QImode)
              || GET_MODE (x2) != E_QImode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case E_V8QImode:
              if (!s_register_operand (operands[1], E_V8QImode)
                  || !
#line 394 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1130; /* vec_extractv8qiqi */

            case E_V16QImode:
              if (!s_register_operand (operands[1], E_V16QImode))
                return -1;
              if (
#line 419 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1136; /* neon_vec_extractv16qiqi */
              if (!
#line 10062 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V16QImode))
   || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V16QImode))))
                return -1;
              return 4904; /* mve_vec_extractv16qiqi */

            default:
              return -1;
            }

        case E_HImode:
          if (!nonimmediate_operand (operands[0], E_HImode)
              || GET_MODE (x2) != E_HImode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case E_V4HImode:
              if (!s_register_operand (operands[1], E_V4HImode)
                  || !
#line 394 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1131; /* vec_extractv4hihi */

            case E_V8HImode:
              if (!s_register_operand (operands[1], E_V8HImode))
                return -1;
              if (
#line 419 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1137; /* neon_vec_extractv8hihi */
              if (!
#line 10062 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V8HImode))
   || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V8HImode))))
                return -1;
              return 4905; /* mve_vec_extractv8hihi */

            default:
              return -1;
            }

        case E_HFmode:
          if (!nonimmediate_operand (operands[0], E_HFmode)
              || GET_MODE (x2) != E_HFmode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case E_V4HFmode:
              if (!s_register_operand (operands[1], E_V4HFmode)
                  || !
#line 394 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1132; /* vec_extractv4hfhf */

            case E_V8HFmode:
              if (!s_register_operand (operands[1], E_V8HFmode))
                return -1;
              if (
#line 419 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1138; /* neon_vec_extractv8hfhf */
              if (!
#line 10062 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V8HFmode))
   || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V8HFmode))))
                return -1;
              return 4907; /* mve_vec_extractv8hfhf */

            default:
              return -1;
            }

        case E_BFmode:
          if (!nonimmediate_operand (operands[0], E_BFmode)
              || GET_MODE (x2) != E_BFmode
              || !s_register_operand (operands[1], E_V4BFmode)
              || !
#line 394 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1133; /* vec_extractv4bfbf */

        case E_SFmode:
          if (!nonimmediate_operand (operands[0], E_SFmode)
              || GET_MODE (x2) != E_SFmode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case E_V2SFmode:
              if (!s_register_operand (operands[1], E_V2SFmode)
                  || !
#line 394 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1135; /* vec_extractv2sfsf */

            case E_V4SFmode:
              if (!s_register_operand (operands[1], E_V4SFmode))
                return -1;
              if (
#line 419 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1140; /* neon_vec_extractv4sfsf */
              if (!
#line 10062 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (V4SFmode))
   || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (V4SFmode))))
                return -1;
              return 4908; /* mve_vec_extractv4sfsf */

            default:
              return -1;
            }

        case E_DImode:
          if (!nonimmediate_operand (operands[0], E_DImode)
              || GET_MODE (x2) != E_DImode
              || !s_register_operand (operands[1], E_V2DImode))
            return -1;
          if (
#line 447 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1141; /* neon_vec_extractv2didi */
          if (!
#line 10080 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4909; /* mve_vec_extractv2didi */

        default:
          return -1;
        }

    case ZERO_EXTEND:
      switch (pattern321 (x2))
        {
        case 0:
          if (!
#line 1141 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 620; /* iwmmxt_wunpckehub */

        case 1:
          if (!
#line 1209 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 626; /* iwmmxt_wunpckelub */

        case 2:
          if (!
#line 1152 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 621; /* iwmmxt_wunpckehuh */

        case 3:
          if (!
#line 1220 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 627; /* iwmmxt_wunpckeluh */

        case 4:
          if (!
#line 1163 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 622; /* iwmmxt_wunpckehuw */

        case 5:
          if (!
#line 1231 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 628; /* iwmmxt_wunpckeluw */

        default:
          return -1;
        }

    case SIGN_EXTEND:
      switch (pattern321 (x2))
        {
        case 0:
          if (!
#line 1175 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 623; /* iwmmxt_wunpckehsb */

        case 1:
          if (!
#line 1243 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 629; /* iwmmxt_wunpckelsb */

        case 2:
          if (!
#line 1186 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 624; /* iwmmxt_wunpckehsh */

        case 3:
          if (!
#line 1254 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 630; /* iwmmxt_wunpckelsh */

        case 4:
          if (!
#line 1197 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 625; /* iwmmxt_wunpckehsw */

        case 5:
          if (!
#line 1265 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 631; /* iwmmxt_wunpckelsw */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_287 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24, x25;
  rtx x26, x27, x28, x29;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case SS_TRUNCATE:
      x5 = XEXP (x3, 1);
      if (GET_CODE (x5) != SS_TRUNCATE)
        return -1;
      x6 = XEXP (x4, 0);
      operands[1] = x6;
      switch (pattern343 (x3))
        {
        case 0:
          if (!
#line 946 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 608; /* iwmmxt_wpackhss */

        case 1:
          if (!
#line 957 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 609; /* iwmmxt_wpackwss */

        case 2:
          if (!
#line 968 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 610; /* iwmmxt_wpackdss */

        default:
          return -1;
        }

    case US_TRUNCATE:
      x6 = XEXP (x4, 0);
      switch (GET_CODE (x6))
        {
        case REG:
        case SUBREG:
          operands[1] = x6;
          x5 = XEXP (x3, 1);
          if (GET_CODE (x5) != US_TRUNCATE)
            return -1;
          switch (pattern343 (x3))
            {
            case 0:
              if (!
#line 979 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 611; /* iwmmxt_wpackhus */

            case 1:
              if (!
#line 990 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 612; /* iwmmxt_wpackwus */

            case 2:
              if (!
#line 1001 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 613; /* iwmmxt_wpackdus */

            default:
              return -1;
            }

        case SS_PLUS:
          if (GET_MODE (x6) != E_V4HImode)
            return -1;
          x7 = XEXP (x6, 1);
          if (GET_CODE (x7) != ZERO_EXTEND
              || GET_MODE (x7) != E_V4HImode)
            return -1;
          x8 = XEXP (x7, 0);
          if (GET_CODE (x8) != VEC_SELECT
              || GET_MODE (x8) != E_V4QImode)
            return -1;
          x9 = XEXP (x8, 1);
          if (GET_CODE (x9) != PARALLEL
              || XVECLEN (x9, 0) != 4)
            return -1;
          x10 = XVECEXP (x9, 0, 0);
          if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x11 = XVECEXP (x9, 0, 1);
          if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
            return -1;
          x12 = XVECEXP (x9, 0, 2);
          if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
            return -1;
          x13 = XVECEXP (x9, 0, 3);
          if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
            return -1;
          x5 = XEXP (x3, 1);
          if (GET_CODE (x5) != CONST_VECTOR
              || XVECLEN (x5, 0) != 4
              || pattern502 (x5, E_V4QImode) != 0
              || !register_operand (operands[0], E_V8QImode)
              || GET_MODE (x3) != E_V8QImode
              || GET_MODE (x4) != E_V4QImode)
            return -1;
          x14 = XEXP (x6, 0);
          operands[1] = x14;
          if (!register_operand (operands[1], E_V4HImode))
            return -1;
          x15 = XEXP (x8, 0);
          operands[2] = x15;
          if (!register_operand (operands[2], E_V8QImode)
              || !
#line 433 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 708; /* iwmmxt_waddbhusl */

        default:
          return -1;
        }

    case CONST_VECTOR:
      if (XVECLEN (x4, 0) != 4
          || GET_MODE (x4) != E_V4QImode)
        return -1;
      x16 = XVECEXP (x4, 0, 0);
      if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x17 = XVECEXP (x4, 0, 1);
      if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x18 = XVECEXP (x4, 0, 2);
      if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x19 = XVECEXP (x4, 0, 3);
      if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x5 = XEXP (x3, 1);
      if (pattern356 (x5, E_V4HImode, SS_PLUS, E_V4QImode, US_TRUNCATE) != 0)
        return -1;
      x20 = XEXP (x5, 0);
      x21 = XEXP (x20, 1);
      if (pattern565 (x21, E_V4QImode, E_V4HImode, ZERO_EXTEND) != 0)
        return -1;
      x22 = XEXP (x21, 0);
      x23 = XEXP (x22, 1);
      if (GET_CODE (x23) != PARALLEL
          || XVECLEN (x23, 0) != 4)
        return -1;
      x24 = XVECEXP (x23, 0, 0);
      if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
        return -1;
      x25 = XVECEXP (x23, 0, 1);
      if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
        return -1;
      x26 = XVECEXP (x23, 0, 2);
      if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
        return -1;
      x27 = XVECEXP (x23, 0, 3);
      if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
          || !register_operand (operands[0], E_V8QImode)
          || GET_MODE (x3) != E_V8QImode)
        return -1;
      x28 = XEXP (x20, 0);
      operands[1] = x28;
      if (!register_operand (operands[1], E_V4HImode))
        return -1;
      x29 = XEXP (x22, 0);
      operands[2] = x29;
      if (!register_operand (operands[2], E_V8QImode)
          || !
#line 417 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 707; /* iwmmxt_waddbhusm */

    case REG:
    case SUBREG:
      switch (pattern12 (x3))
        {
        case 0:
          if (!
#line 3611 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2080; /* neon_vcombinev8qi */

        case 1:
          if (!
#line 3611 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2081; /* neon_vcombinev4hi */

        case 2:
          if (!
#line 3611 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2082; /* neon_vcombinev4hf */

        case 3:
          if (!
#line 3611 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2083; /* neon_vcombinev4bf */

        case 4:
          if (!
#line 3611 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2084; /* neon_vcombinev2si */

        case 5:
          if (!
#line 3611 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2085; /* neon_vcombinev2sf */

        case 6:
          if (!
#line 3611 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2086; /* neon_vcombinedi */

        default:
          return -1;
        }

    case TRUNCATE:
      x5 = XEXP (x3, 1);
      if (GET_CODE (x5) != TRUNCATE)
        return -1;
      x6 = XEXP (x4, 0);
      operands[1] = x6;
      x20 = XEXP (x5, 0);
      operands[2] = x20;
      switch (GET_MODE (operands[0]))
        {
        case E_V16QImode:
          if (pattern342 (x3, E_V8HImode, E_V8QImode, E_V16QImode) != 0
              || !
#line 6282 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return -1;
          return 2811; /* vec_pack_trunc_v8hi */

        case E_V8HImode:
          if (pattern342 (x3, E_V4SImode, E_V4HImode, E_V8HImode) != 0
              || !
#line 6282 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return -1;
          return 2812; /* vec_pack_trunc_v4si */

        case E_V4SImode:
          if (pattern342 (x3, E_V2DImode, E_V2SImode, E_V4SImode) != 0
              || !
#line 6282 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return -1;
          return 2813; /* vec_pack_trunc_v2di */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_288 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case UNSPEC:
      if (pattern279 (x3) != 0
          || !
#line 5022 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(unaligned_access && TARGET_32BIT))
        return -1;
      return 159; /* unaligned_loadhis */

    case REG:
    case SUBREG:
    case MEM:
      operands[1] = x4;
      switch (GET_MODE (operands[0]))
        {
        case E_SImode:
          if (GET_MODE (x3) != E_SImode)
            return -1;
          if (s_register_operand (operands[0], E_SImode))
            {
              if (nonimmediate_operand (operands[1], E_HImode))
                {
                  if (
#line 5913 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch4 && !arm_arch6))
                    return 183; /* *arm_extendhisi2 */
                  if (
#line 5926 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6))
                    return 184; /* *arm_extendhisi2_v6 */
                }
              if (arm_reg_or_extendqisi_mem_op (operands[1], E_QImode))
                {
                  if (
#line 6007 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch4 && !arm_arch6))
                    return 187; /* *arm_extendqisi */
                  if (
#line 6020 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch6))
                    return 188; /* *arm_extendqisi_v6 */
                }
            }
          if (register_operand (operands[0], E_SImode))
            {
              switch (GET_MODE (operands[1]))
                {
                case E_HImode:
                  if (pnum_clobbers != NULL
                      && nonimmediate_operand (operands[1], E_HImode)
                      && 
#line 446 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                    {
                      *pnum_clobbers = 1;
                      return 956; /* thumb1_extendhisi2 */
                    }
                  break;

                case E_QImode:
                  if (nonimmediate_operand (operands[1], E_QImode)
                      && 
#line 583 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                    return 957; /* thumb1_extendqisi2 */
                  break;

                default:
                  break;
                }
            }
          if (!s_register_operand (operands[0], E_SImode)
              || !nonimmediate_operand (operands[1], E_QImode)
              || !
#line 1094 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_arch6))
            return -1;
          return 1037; /* *thumb2_extendqisi_v6 */

        case E_HImode:
          if (!s_register_operand (operands[0], E_HImode)
              || GET_MODE (x3) != E_HImode
              || !arm_extendqisi_mem_op (operands[1], E_QImode)
              || !
#line 5970 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch4))
            return -1;
          return 186; /* *arm_extendqihi_insn */

        case E_V8HImode:
          if (!register_operand (operands[0], E_V8HImode)
              || GET_MODE (x3) != E_V8HImode
              || !register_operand (operands[1], E_V8QImode)
              || !
#line 6171 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2799; /* neon_unpacks_v8qi */

        case E_V4SImode:
          if (!register_operand (operands[0], E_V4SImode)
              || GET_MODE (x3) != E_V4SImode
              || !register_operand (operands[1], E_V4HImode)
              || !
#line 6171 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2801; /* neon_unpacks_v4hi */

        case E_V2DImode:
          if (!register_operand (operands[0], E_V2DImode)
              || GET_MODE (x3) != E_V2DImode
              || !register_operand (operands[1], E_V2SImode)
              || !
#line 6171 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2803; /* neon_unpacks_v2si */

        default:
          return -1;
        }

    case BSWAP:
      if (pattern280 (x3, E_HImode) != 0
          || !
#line 12540 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_arch6))
        return -1;
      return 412; /* *arm_revsh */

    case VEC_SELECT:
      x5 = XEXP (x4, 1);
      if (GET_CODE (x5) != PARALLEL)
        return -1;
      x6 = XEXP (x4, 0);
      operands[1] = x6;
      if (XVECLEN (x5, 0) == 1)
        {
          res = recog_266 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      operands[2] = x5;
      switch (GET_MODE (operands[0]))
        {
        case E_V8HImode:
          if (pattern412 (x3, E_V16QImode, E_V8QImode, E_V8HImode) != 0)
            return -1;
          if (vect_par_constant_low (operands[2], E_V16QImode)
              && 
#line 6008 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return 2769; /* neon_vec_unpacks_lo_v16qi */
          if (!vect_par_constant_high (operands[2], E_V16QImode)
              || !
#line 6018 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return -1;
          return 2775; /* neon_vec_unpacks_hi_v16qi */

        case E_V4SImode:
          if (pattern412 (x3, E_V8HImode, E_V4HImode, E_V4SImode) != 0)
            return -1;
          if (vect_par_constant_low (operands[2], E_V8HImode)
              && 
#line 6008 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return 2771; /* neon_vec_unpacks_lo_v8hi */
          if (!vect_par_constant_high (operands[2], E_V8HImode)
              || !
#line 6018 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return -1;
          return 2777; /* neon_vec_unpacks_hi_v8hi */

        case E_V2DImode:
          if (pattern412 (x3, E_V4SImode, E_V2SImode, E_V2DImode) != 0)
            return -1;
          if (vect_par_constant_low (operands[2], E_V4SImode)
              && 
#line 6008 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return 2773; /* neon_vec_unpacks_lo_v4si */
          if (!vect_par_constant_high (operands[2], E_V4SImode)
              || !
#line 6018 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return -1;
          return 2779; /* neon_vec_unpacks_hi_v4si */

        default:
          return -1;
        }

    case ASHIFT:
      switch (pattern282 (x3))
        {
        case 0:
          if (!
#line 6133 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2793; /* neon_vec_sshiftl_v8qi */

        case 1:
          if (!
#line 6133 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2795; /* neon_vec_sshiftl_v4hi */

        case 2:
          if (!
#line 6133 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2797; /* neon_vec_sshiftl_v2si */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_289 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (XVECLEN (x2, 0))
    {
    case 3:
      return recog_234 (x1, insn, pnum_clobbers);

    case 1:
      return recog_237 (x1, insn, pnum_clobbers);

    case 2:
      return recog_235 (x1, insn, pnum_clobbers);

    case 4:
      return recog_236 (x1, insn, pnum_clobbers);

    case 5:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      switch (XINT (x2, 1))
        {
        case 103:
          if (!const_int_coproc_operand (operands[1], E_SImode))
            return -1;
          x5 = XVECEXP (x2, 0, 1);
          operands[2] = x5;
          x6 = XVECEXP (x2, 0, 2);
          operands[3] = x6;
          if (!s_register_operand (operands[3], E_SImode))
            return -1;
          x7 = XVECEXP (x2, 0, 3);
          operands[4] = x7;
          if (!s_register_operand (operands[4], E_SImode))
            return -1;
          x8 = XVECEXP (x2, 0, 4);
          operands[5] = x8;
          if (!const_int_ccde3_operand (operands[5], E_SImode))
            return -1;
          switch (pattern462 (x2))
            {
            case 0:
              if (!
#line 4573 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_CDE))
                return -1;
              return 149; /* arm_cx3asi */

            case 1:
              if (!
#line 4573 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_CDE))
                return -1;
              return 150; /* arm_cx3adi */

            default:
              return -1;
            }

        case 115:
          switch (pattern336 (x2))
            {
            case 0:
              if (!
#line 446 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 709; /* iwmmxt_wqmiabb */

            case 1:
              if (!
#line 459 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 710; /* iwmmxt_wqmiabt */

            case 2:
              if (!
#line 472 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 711; /* iwmmxt_wqmiatb */

            case 3:
              if (!
#line 485 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 712; /* iwmmxt_wqmiatt */

            default:
              return -1;
            }

        case 114:
          switch (pattern336 (x2))
            {
            case 0:
              if (!
#line 498 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 713; /* iwmmxt_wqmiabbn */

            case 1:
              if (!
#line 511 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 714; /* iwmmxt_wqmiabtn */

            case 2:
              if (!
#line 524 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 715; /* iwmmxt_wqmiatbn */

            case 3:
              if (!
#line 537 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 716; /* iwmmxt_wqmiattn */

            default:
              return -1;
            }

        case 105:
          if (!const_int_coproc_operand (operands[1], E_SImode))
            return -1;
          x5 = XVECEXP (x2, 0, 1);
          operands[2] = x5;
          x6 = XVECEXP (x2, 0, 2);
          operands[3] = x6;
          x7 = XVECEXP (x2, 0, 3);
          operands[4] = x7;
          x8 = XVECEXP (x2, 0, 4);
          operands[5] = x8;
          switch (GET_CODE (operands[4]))
            {
            case REG:
            case SUBREG:
              switch (GET_MODE (operands[0]))
                {
                case E_SImode:
                  if (pattern543 (x2, E_SImode) != 0
                      || !
#line 2251 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_CDE && (TARGET_ARM_FP || TARGET_HAVE_MVE)))
                    return -1;
                  return 932; /* arm_vcx3asi */

                case E_DImode:
                  if (pattern543 (x2, E_DImode) != 0
                      || !
#line 2251 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_CDE && (TARGET_ARM_FP || TARGET_HAVE_MVE)))
                    return -1;
                  return 933; /* arm_vcx3adi */

                case E_V16QImode:
                  if (pattern517 (x2) != 0
                      || !register_operand (operands[4], E_V16QImode)
                      || !const_int_mve_cde3_operand (operands[5], E_SImode)
                      || !
#line 10433 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_CDE && TARGET_HAVE_MVE))
                    return -1;
                  return 4947; /* arm_vcx3qav16qi */

                default:
                  return -1;
                }

            case CONST_INT:
              if (!const_int_mve_cde2_operand (operands[4], E_SImode)
                  || pattern517 (x2) != 0
                  || !vpr_register_operand (operands[5], E_V16BImode)
                  || !
#line 10459 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_CDE && TARGET_HAVE_MVE))
                return -1;
              return 4951; /* arm_vcx2qa_p_v16qi */

            default:
              return -1;
            }

        case 104:
          if (GET_MODE (x2) != E_V16QImode
              || !register_operand (operands[0], E_V16QImode)
              || !const_int_coproc_operand (operands[1], E_SImode))
            return -1;
          x5 = XVECEXP (x2, 0, 1);
          operands[2] = x5;
          if (!register_operand (operands[2], E_V16QImode))
            return -1;
          x6 = XVECEXP (x2, 0, 2);
          operands[3] = x6;
          if (!register_operand (operands[3], E_V16QImode))
            return -1;
          x7 = XVECEXP (x2, 0, 3);
          operands[4] = x7;
          if (!const_int_mve_cde2_operand (operands[4], E_SImode))
            return -1;
          x8 = XVECEXP (x2, 0, 4);
          operands[5] = x8;
          if (!vpr_register_operand (operands[5], E_V16BImode)
              || !
#line 10459 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_CDE && TARGET_HAVE_MVE))
            return -1;
          return 4950; /* arm_vcx2q_p_v16qi */

        default:
          return -1;
        }

    case 6:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!register_operand (operands[0], E_V16QImode)
          || GET_MODE (x2) != E_V16QImode)
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!const_int_coproc_operand (operands[1], E_SImode))
        return -1;
      x5 = XVECEXP (x2, 0, 1);
      operands[2] = x5;
      if (!register_operand (operands[2], E_V16QImode))
        return -1;
      x6 = XVECEXP (x2, 0, 2);
      operands[3] = x6;
      if (!register_operand (operands[3], E_V16QImode))
        return -1;
      x7 = XVECEXP (x2, 0, 3);
      operands[4] = x7;
      if (!register_operand (operands[4], E_V16QImode))
        return -1;
      x8 = XVECEXP (x2, 0, 4);
      operands[5] = x8;
      if (!const_int_mve_cde3_operand (operands[5], E_SImode))
        return -1;
      x9 = XVECEXP (x2, 0, 5);
      operands[6] = x9;
      if (!vpr_register_operand (operands[6], E_V16BImode))
        return -1;
      switch (XINT (x2, 1))
        {
        case 104:
          if (!
#line 10474 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_CDE && TARGET_HAVE_MVE))
            return -1;
          return 4952; /* arm_vcx3q_p_v16qi */

        case 105:
          if (!
#line 10474 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_CDE && TARGET_HAVE_MVE))
            return -1;
          return 4953; /* arm_vcx3qa_p_v16qi */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_290 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern2 (x1))
    {
    case 0:
      if (!
#line 4346 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY && !ARM_Q_BIT_READ))
        return -1;
      return 127; /* arm_qadd_insn */

    case 1:
      if (register_operand (operands[0], E_V8QImode)
          && register_operand (operands[1], E_V8QImode)
          && register_operand (operands[2], E_V8QImode)
          && 
#line 351 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 548; /* ssaddv8qi3 */
      if (!s_register_operand (operands[0], E_V8QImode)
          || !s_register_operand (operands[1], E_V8QImode)
          || !s_register_operand (operands[2], E_V8QImode)
          || !
#line 1380 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1437; /* *ss_addv8qi_neon */

    case 2:
      if (register_operand (operands[0], E_V4HImode)
          && register_operand (operands[1], E_V4HImode)
          && register_operand (operands[2], E_V4HImode)
          && 
#line 361 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 549; /* ssaddv4hi3 */
      if (!s_register_operand (operands[0], E_V4HImode)
          || !s_register_operand (operands[1], E_V4HImode)
          || !s_register_operand (operands[2], E_V4HImode)
          || !
#line 1380 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1438; /* *ss_addv4hi_neon */

    case 3:
      if (register_operand (operands[0], E_V2SImode)
          && register_operand (operands[1], E_V2SImode)
          && register_operand (operands[2], E_V2SImode)
          && 
#line 371 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 550; /* ssaddv2si3 */
      if (!s_register_operand (operands[0], E_V2SImode)
          || !s_register_operand (operands[1], E_V2SImode)
          || !s_register_operand (operands[2], E_V2SImode)
          || !
#line 1380 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1439; /* *ss_addv2si_neon */

    case 4:
      if (!
#line 1380 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1440; /* *ss_addv2sf_neon */

    case 5:
      if (!
#line 75 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0))
        return -1;
      return 2999; /* *arm_ssaddv4qq3 */

    case 6:
      if (!
#line 75 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0))
        return -1;
      return 3000; /* *arm_ssaddv2hq3 */

    case 7:
      if (!
#line 75 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0))
        return -1;
      return 3001; /* *arm_ssaddqq3 */

    case 8:
      if (!
#line 75 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0))
        return -1;
      return 3002; /* *arm_ssaddhq3 */

    case 9:
      if (!
#line 75 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0))
        return -1;
      return 3003; /* *arm_ssaddv2ha3 */

    case 10:
      if (!
#line 75 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0))
        return -1;
      return 3004; /* *arm_ssaddha3 */

    case 11:
      if (!
#line 75 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ))
        return -1;
      return 3005; /* *arm_ssaddsq3 */

    case 12:
      if (!
#line 75 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ))
        return -1;
      return 3006; /* *arm_ssaddsa3 */

    default:
      return -1;
    }
}

static int
recog_291 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern2 (x1))
    {
    case 0:
      if (!
#line 4346 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY && !ARM_Q_BIT_READ))
        return -1;
      return 129; /* arm_qsub_insn */

    case 1:
      if (register_operand (operands[0], E_V8QImode)
          && register_operand (operands[1], E_V8QImode)
          && register_operand (operands[2], E_V8QImode)
          && 
#line 421 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 557; /* sssubv8qi3 */
      if (!s_register_operand (operands[0], E_V8QImode)
          || !s_register_operand (operands[1], E_V8QImode)
          || !s_register_operand (operands[2], E_V8QImode)
          || !
#line 1398 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1445; /* *ss_subv8qi_neon */

    case 2:
      if (register_operand (operands[0], E_V4HImode)
          && register_operand (operands[1], E_V4HImode)
          && register_operand (operands[2], E_V4HImode)
          && 
#line 431 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 558; /* sssubv4hi3 */
      if (!s_register_operand (operands[0], E_V4HImode)
          || !s_register_operand (operands[1], E_V4HImode)
          || !s_register_operand (operands[2], E_V4HImode)
          || !
#line 1398 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1446; /* *ss_subv4hi_neon */

    case 3:
      if (register_operand (operands[0], E_V2SImode)
          && register_operand (operands[1], E_V2SImode)
          && register_operand (operands[2], E_V2SImode)
          && 
#line 441 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 559; /* sssubv2si3 */
      if (!s_register_operand (operands[0], E_V2SImode)
          || !s_register_operand (operands[1], E_V2SImode)
          || !s_register_operand (operands[2], E_V2SImode)
          || !
#line 1398 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1447; /* *ss_subv2si_neon */

    case 4:
      if (!
#line 1398 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1448; /* *ss_subv2sf_neon */

    case 5:
      if (!
#line 135 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0))
        return -1;
      return 3026; /* *arm_sssubv4qq3 */

    case 6:
      if (!
#line 135 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0))
        return -1;
      return 3027; /* *arm_sssubv2hq3 */

    case 7:
      if (!
#line 135 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0))
        return -1;
      return 3028; /* *arm_sssubqq3 */

    case 8:
      if (!
#line 135 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0))
        return -1;
      return 3029; /* *arm_sssubhq3 */

    case 9:
      if (!
#line 135 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0))
        return -1;
      return 3030; /* *arm_sssubv2ha3 */

    case 10:
      if (!
#line 135 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0))
        return -1;
      return 3031; /* *arm_sssubha3 */

    case 11:
      if (!
#line 135 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ))
        return -1;
      return 3032; /* *arm_sssubsq3 */

    case 12:
      if (!
#line 135 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ))
        return -1;
      return 3033; /* *arm_sssubsa3 */

    default:
      return -1;
    }
}

static int
recog_292 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern5 (x1))
    {
    case 0:
      if (register_operand (operands[0], E_V8QImode)
          && register_operand (operands[1], E_V8QImode)
          && register_operand (operands[2], E_V8QImode)
          && 
#line 381 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 551; /* usaddv8qi3 */
      if (!s_register_operand (operands[0], E_V8QImode)
          || !s_register_operand (operands[1], E_V8QImode)
          || !s_register_operand (operands[2], E_V8QImode)
          || !
#line 1389 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1441; /* *us_addv8qi_neon */

    case 1:
      if (register_operand (operands[0], E_V4HImode)
          && register_operand (operands[1], E_V4HImode)
          && register_operand (operands[2], E_V4HImode)
          && 
#line 391 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 552; /* usaddv4hi3 */
      if (!s_register_operand (operands[0], E_V4HImode)
          || !s_register_operand (operands[1], E_V4HImode)
          || !s_register_operand (operands[2], E_V4HImode)
          || !
#line 1389 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1442; /* *us_addv4hi_neon */

    case 2:
      if (register_operand (operands[0], E_V2SImode)
          && register_operand (operands[1], E_V2SImode)
          && register_operand (operands[2], E_V2SImode)
          && 
#line 401 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 553; /* usaddv2si3 */
      if (!s_register_operand (operands[0], E_V2SImode)
          || !s_register_operand (operands[1], E_V2SImode)
          || !s_register_operand (operands[2], E_V2SImode)
          || !
#line 1389 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1443; /* *us_addv2si_neon */

    case 3:
      if (!
#line 1389 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1444; /* *us_addv2sf_neon */

    case 4:
      if (!
#line 55 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2993; /* usaddv4uqq3 */

    case 5:
      if (!
#line 55 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2994; /* usaddv2uhq3 */

    case 6:
      if (!
#line 55 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2995; /* usadduqq3 */

    case 7:
      if (!
#line 55 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2996; /* usadduhq3 */

    case 8:
      if (!
#line 55 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2997; /* usaddv2uha3 */

    case 9:
      if (!
#line 55 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2998; /* usadduha3 */

    default:
      return -1;
    }
}

static int
recog_293 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern5 (x1))
    {
    case 0:
      if (register_operand (operands[0], E_V8QImode)
          && register_operand (operands[1], E_V8QImode)
          && register_operand (operands[2], E_V8QImode)
          && 
#line 451 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 560; /* ussubv8qi3 */
      if (!s_register_operand (operands[0], E_V8QImode)
          || !s_register_operand (operands[1], E_V8QImode)
          || !s_register_operand (operands[2], E_V8QImode)
          || !
#line 1407 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1449; /* *us_subv8qi_neon */

    case 1:
      if (register_operand (operands[0], E_V4HImode)
          && register_operand (operands[1], E_V4HImode)
          && register_operand (operands[2], E_V4HImode)
          && 
#line 461 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 561; /* ussubv4hi3 */
      if (!s_register_operand (operands[0], E_V4HImode)
          || !s_register_operand (operands[1], E_V4HImode)
          || !s_register_operand (operands[2], E_V4HImode)
          || !
#line 1407 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1450; /* *us_subv4hi_neon */

    case 2:
      if (register_operand (operands[0], E_V2SImode)
          && register_operand (operands[1], E_V2SImode)
          && register_operand (operands[2], E_V2SImode)
          && 
#line 471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 562; /* ussubv2si3 */
      if (!s_register_operand (operands[0], E_V2SImode)
          || !s_register_operand (operands[1], E_V2SImode)
          || !s_register_operand (operands[2], E_V2SImode)
          || !
#line 1407 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1451; /* *us_subv2si_neon */

    case 3:
      if (!
#line 1407 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1452; /* *us_subv2sf_neon */

    case 4:
      if (!
#line 115 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 3020; /* ussubv4uqq3 */

    case 5:
      if (!
#line 115 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 3021; /* ussubv2uhq3 */

    case 6:
      if (!
#line 115 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 3022; /* ussubuqq3 */

    case 7:
      if (!
#line 115 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 3023; /* ussubuhq3 */

    case 8:
      if (!
#line 115 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 3024; /* ussubv2uha3 */

    case 9:
      if (!
#line 115 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 3025; /* ussubuha3 */

    default:
      return -1;
    }
}

static int
recog_294 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XEXP (x3, 0);
  operands[1] = x4;
  switch (GET_MODE (operands[0]))
    {
    case E_SImode:
      if (!s_register_operand (operands[0], E_SImode)
          || GET_MODE (x3) != E_SImode
          || !s_register_operand (operands[1], E_SImode)
          || !
#line 12178 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch5t))
        return -1;
      return 399; /* clzsi2 */

    case E_V8QImode:
      if (!s_register_operand (operands[0], E_V8QImode)
          || GET_MODE (x3) != E_V8QImode
          || !s_register_operand (operands[1], E_V8QImode)
          || !
#line 3120 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2005; /* neon_vclzv8qi */

    case E_V16QImode:
      if (!s_register_operand (operands[0], E_V16QImode)
          || GET_MODE (x3) != E_V16QImode
          || !s_register_operand (operands[1], E_V16QImode))
        return -1;
      if (
#line 3120 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return 2006; /* neon_vclzv16qi */
      if (!
#line 450 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3115; /* mve_vclzq_sv16qi */

    case E_V4HImode:
      if (!s_register_operand (operands[0], E_V4HImode)
          || GET_MODE (x3) != E_V4HImode
          || !s_register_operand (operands[1], E_V4HImode)
          || !
#line 3120 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2007; /* neon_vclzv4hi */

    case E_V8HImode:
      if (!s_register_operand (operands[0], E_V8HImode)
          || GET_MODE (x3) != E_V8HImode
          || !s_register_operand (operands[1], E_V8HImode))
        return -1;
      if (
#line 3120 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return 2008; /* neon_vclzv8hi */
      if (!
#line 450 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3116; /* mve_vclzq_sv8hi */

    case E_V2SImode:
      if (!s_register_operand (operands[0], E_V2SImode)
          || GET_MODE (x3) != E_V2SImode
          || !s_register_operand (operands[1], E_V2SImode)
          || !
#line 3120 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2009; /* neon_vclzv2si */

    case E_V4SImode:
      if (!s_register_operand (operands[0], E_V4SImode)
          || GET_MODE (x3) != E_V4SImode
          || !s_register_operand (operands[1], E_V4SImode))
        return -1;
      if (
#line 3120 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return 2010; /* neon_vclzv4si */
      if (!
#line 450 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3117; /* mve_vclzq_sv4si */

    default:
      return -1;
    }
}

static int
recog_295 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case FIX:
      if (!s_register_operand (operands[0], E_SImode)
          || GET_MODE (x3) != E_SImode)
        return -1;
      x5 = XEXP (x4, 0);
      switch (GET_CODE (x5))
        {
        case REG:
        case SUBREG:
          operands[1] = x5;
          switch (GET_MODE (x4))
            {
            case E_SFmode:
              if (!s_register_operand (operands[1], E_SFmode)
                  || !
#line 1512 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
                return -1;
              return 836; /* *truncsisf2_vfp */

            case E_DFmode:
              if (!s_register_operand (operands[1], E_DFmode)
                  || !
#line 1521 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
                return -1;
              return 837; /* *truncsidf2_vfp */

            default:
              return -1;
            }

        case MULT:
          if (GET_MODE (x5) != E_SFmode
              || GET_MODE (x4) != E_SFmode)
            return -1;
          x6 = XEXP (x5, 0);
          operands[1] = x6;
          if (!s_register_operand (operands[1], E_SFmode))
            return -1;
          x7 = XEXP (x5, 1);
          operands[2] = x7;
          if (!const_double_vcvt_power_of_two (operands[2], E_VOIDmode)
              || !
#line 1895 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP3 && !flag_rounding_math))
            return -1;
          return 866; /* *combine_vcvtf2i */

        default:
          return -1;
        }

    case UNSPEC:
      switch (pattern288 (x3))
        {
        case 0:
          if (!
#line 2053 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
            return -1;
          return 896; /* lceilsfsi2 */

        case 1:
          if (!(
#line 2053 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
            return -1;
          return 902; /* lceildfsi2 */

        case 2:
          if (!
#line 2053 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
            return -1;
          return 897; /* lfloorsfsi2 */

        case 3:
          if (!(
#line 2053 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
            return -1;
          return 903; /* lfloordfsi2 */

        case 4:
          if (!
#line 2053 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
            return -1;
          return 898; /* lroundsfsi2 */

        case 5:
          if (!(
#line 2053 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
            return -1;
          return 904; /* lrounddfsi2 */

        case 6:
          if (!
#line 668 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1214; /* neon_vcvtpv2sfv2si */

        case 7:
          if (!
#line 668 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1220; /* neon_vcvtpv4sfv4si */

        case 8:
          if (!
#line 668 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1215; /* neon_vcvtmv2sfv2si */

        case 9:
          if (!
#line 668 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1221; /* neon_vcvtmv4sfv4si */

        case 10:
          if (!
#line 668 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1216; /* neon_vcvtav2sfv2si */

        case 11:
          if (!
#line 668 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1222; /* neon_vcvtav4sfv4si */

        default:
          return -1;
        }

    case REG:
    case SUBREG:
      switch (pattern289 (x3))
        {
        case 0:
          if (!
#line 3663 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2091; /* fix_truncv2sfv2si2 */

        case 1:
          if (!
#line 3663 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2092; /* fix_truncv4sfv4si2 */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_296 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XEXP (x3, 0);
  operands[1] = x4;
  switch (GET_MODE (operands[0]))
    {
    case E_SImode:
      if (!s_register_operand (operands[0], E_SImode)
          || GET_MODE (x3) != E_SImode
          || !s_register_operand (operands[1], E_SImode)
          || !
#line 12369 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_arch6))
        return -1;
      return 411; /* *arm_rev */

    case E_HImode:
      if (!s_register_operand (operands[0], E_HImode)
          || GET_MODE (x3) != E_HImode
          || !s_register_operand (operands[1], E_HImode)
          || !
#line 12553 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_arch6))
        return -1;
      return 413; /* *arm_rev16 */

    case E_V4HImode:
      if (!register_operand (operands[0], E_V4HImode)
          || GET_MODE (x3) != E_V4HImode
          || !register_operand (operands[1], E_V4HImode)
          || !
#line 2816 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1910; /* neon_bswapv4hi */

    case E_V8HImode:
      if (!register_operand (operands[0], E_V8HImode)
          || GET_MODE (x3) != E_V8HImode
          || !register_operand (operands[1], E_V8HImode)
          || !
#line 2816 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1911; /* neon_bswapv8hi */

    case E_V2SImode:
      if (!register_operand (operands[0], E_V2SImode)
          || GET_MODE (x3) != E_V2SImode
          || !register_operand (operands[1], E_V2SImode)
          || !
#line 2816 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1912; /* neon_bswapv2si */

    case E_V4SImode:
      if (!register_operand (operands[0], E_V4SImode)
          || GET_MODE (x3) != E_V4SImode
          || !register_operand (operands[1], E_V4SImode)
          || !
#line 2816 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1913; /* neon_bswapv4si */

    case E_V2DImode:
      if (!register_operand (operands[0], E_V2DImode)
          || GET_MODE (x3) != E_V2DImode
          || !register_operand (operands[1], E_V2DImode)
          || !
#line 2816 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1914; /* neon_bswapv2di */

    default:
      return -1;
    }
}

static int
recog_297 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  operands[0] = x3;
  x4 = XEXP (x1, 0);
  operands[2] = x4;
  x5 = XEXP (x4, 0);
  operands[3] = x5;
  x6 = XEXP (x2, 1);
  operands[1] = x6;
  switch (GET_MODE (operands[0]))
    {
    case E_SImode:
      if (!nonimmediate_operand (operands[0], E_SImode)
          || !general_operand (operands[1], E_SImode))
        return -1;
      if (
#line 208 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT
   && (   register_operand (operands[0], SImode)
       || register_operand (operands[1], SImode))))
        return 532; /* *cond_iwmmxt_movsi_insn */
      if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6543 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && !TARGET_IWMMXT && !TARGET_HARD_FLOAT
   && (   register_operand (operands[0], SImode)
       || register_operand (operands[1], SImode)))))
        return -1;
      return 6521; /* *p *arm_movsi_insn */

    case E_HImode:
      if (nonimmediate_operand (operands[0], E_HImode)
          && general_operand (operands[1], E_HImode)
          && (
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 7198 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM
   && arm_arch4 && !TARGET_HARD_FLOAT
   && (register_operand (operands[0], HImode)
       || register_operand (operands[1], HImode)))))
        return 6524; /* *p *movhi_insn_arch4 */
      if (s_register_operand (operands[0], E_HImode)
          && arm_rhs_operand (operands[1], E_HImode)
          && (
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 7225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && !TARGET_HARD_FLOAT)))
        return 6525; /* *p *movhi_bytes */
      if (!nonimmediate_operand (operands[0], E_HImode)
          || !general_operand (operands[1], E_HImode))
        return -1;
      if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 29 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_ARM && TARGET_HARD_FLOAT
  && !TARGET_VFP_FP16INST
  && (register_operand (operands[0], HImode)
       || register_operand (operands[1], HImode)))))
        return 6836; /* *p *arm_movhi_vfp */
      if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 80 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && TARGET_VFP_BASE
  && !TARGET_VFP_FP16INST
  && (register_operand (operands[0], HImode)
       || register_operand (operands[1], HImode)))))
        return 6837; /* *p *thumb2_movhi_vfp */
      if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 135 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_ARM && TARGET_VFP_FP16INST
  && (register_operand (operands[0], HImode)
       || register_operand (operands[1], HImode)))))
        return 6842; /* *p *arm_movhi_fp16 */
      if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 185 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && (TARGET_VFP_FP16INST || TARGET_HAVE_MVE)
  && (register_operand (operands[0], HImode)
       || register_operand (operands[1], HImode)))))
        return 6843; /* *p *thumb2_movhi_fp16 */
      if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 289 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2
  && (register_operand (operands[0], HImode)
     || register_operand (operands[1], HImode)))))
        return -1;
      return 6927; /* *p *thumb2_movhi_insn */

    case E_QImode:
      if (!nonimmediate_operand (operands[0], E_QImode)
          || !general_operand (operands[1], E_QImode)
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 7342 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (   register_operand (operands[0], QImode)
       || register_operand (operands[1], QImode)))))
        return -1;
      return 6526; /* *p *arm_movqi_insn */

    case E_HFmode:
      if (!nonimmediate_operand (operands[0], E_HFmode)
          || !general_operand (operands[1], E_HFmode))
        return -1;
      if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 7389 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && !TARGET_HARD_FLOAT
   && !TARGET_HAVE_MVE
   && (	  s_register_operand (operands[0], HFmode)
       || s_register_operand (operands[1], HFmode)))))
        return 6527; /* *p *arm32_movhf */
      if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 407 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT
   && (TARGET_VFP_FP16INST || TARGET_HAVE_MVE)
   && (s_register_operand (operands[0], HFmode)
       || s_register_operand (operands[1], HFmode)))))
        return -1;
      return 6851; /* *p *movhf_vfp_hf16 */

    case E_BFmode:
      if (!nonimmediate_operand (operands[0], E_BFmode)
          || !general_operand (operands[1], E_BFmode))
        return -1;
      if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 7389 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && !TARGET_HARD_FLOAT
   && !TARGET_HAVE_MVE
   && (	  s_register_operand (operands[0], BFmode)
       || s_register_operand (operands[1], BFmode)))))
        return 6528; /* *p *arm32_movbf */
      if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 407 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT
   && (TARGET_VFP_FP16INST || TARGET_HAVE_MVE)
   && (s_register_operand (operands[0], BFmode)
       || s_register_operand (operands[1], BFmode)))))
        return -1;
      return 6852; /* *p *movbf_vfp_bf16 */

    case E_SFmode:
      if (!nonimmediate_operand (operands[0], E_SFmode))
        return -1;
      if (general_operand (operands[1], E_SFmode))
        {
          if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 7488 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && TARGET_SOFT_FLOAT && !TARGET_HAVE_MVE
   && (!MEM_P (operands[0])
       || register_operand (operands[1], SFmode)))))
            return 6529; /* *p *arm_movsf_soft_insn */
          if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 600 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_ARM && TARGET_HARD_FLOAT
   && (   s_register_operand (operands[0], SFmode)
       || s_register_operand (operands[1], SFmode)))))
            return 6853; /* *p *movsf_vfp */
        }
      if (!hard_sf_operand (operands[1], E_SFmode)
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 636 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && TARGET_VFP_BASE
   && (   s_register_operand (operands[0], SFmode)
       || s_register_operand (operands[1], SFmode)))))
        return -1;
      return 6854; /* *p *thumb2_movsf_vfp */

    case E_V2SImode:
      if (!nonimmediate_operand (operands[0], E_V2SImode)
          || !general_operand (operands[1], E_V2SImode)
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 229 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6623; /* *p movv2si_internal */

    case E_V4HImode:
      if (!nonimmediate_operand (operands[0], E_V4HImode)
          || !general_operand (operands[1], E_V4HImode)
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 229 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6624; /* *p movv4hi_internal */

    case E_V8QImode:
      if (!nonimmediate_operand (operands[0], E_V8QImode)
          || !general_operand (operands[1], E_V8QImode)
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 229 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6625; /* *p movv8qi_internal */

    case E_V16BImode:
      if (!nonimmediate_operand (operands[0], E_V16BImode)
          || !general_operand (operands[1], E_V16BImode))
        return -1;
      if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 80 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && TARGET_VFP_BASE
  && !TARGET_VFP_FP16INST
  && (register_operand (operands[0], V16BImode)
       || register_operand (operands[1], V16BImode)))))
        return 6838; /* *p *thumb2_movhi_vfp */
      if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 185 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && (TARGET_VFP_FP16INST || TARGET_HAVE_MVE)
  && (register_operand (operands[0], V16BImode)
       || register_operand (operands[1], V16BImode)))))
        return -1;
      return 6844; /* *p *thumb2_movhi_fp16 */

    case E_V8BImode:
      if (!nonimmediate_operand (operands[0], E_V8BImode)
          || !general_operand (operands[1], E_V8BImode))
        return -1;
      if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 80 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && TARGET_VFP_BASE
  && !TARGET_VFP_FP16INST
  && (register_operand (operands[0], V8BImode)
       || register_operand (operands[1], V8BImode)))))
        return 6839; /* *p *thumb2_movhi_vfp */
      if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 185 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && (TARGET_VFP_FP16INST || TARGET_HAVE_MVE)
  && (register_operand (operands[0], V8BImode)
       || register_operand (operands[1], V8BImode)))))
        return -1;
      return 6845; /* *p *thumb2_movhi_fp16 */

    case E_V4BImode:
      if (!nonimmediate_operand (operands[0], E_V4BImode)
          || !general_operand (operands[1], E_V4BImode))
        return -1;
      if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 80 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && TARGET_VFP_BASE
  && !TARGET_VFP_FP16INST
  && (register_operand (operands[0], V4BImode)
       || register_operand (operands[1], V4BImode)))))
        return 6840; /* *p *thumb2_movhi_vfp */
      if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 185 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && (TARGET_VFP_FP16INST || TARGET_HAVE_MVE)
  && (register_operand (operands[0], V4BImode)
       || register_operand (operands[1], V4BImode)))))
        return -1;
      return 6846; /* *p *thumb2_movhi_fp16 */

    case E_V2QImode:
      if (!nonimmediate_operand (operands[0], E_V2QImode)
          || !general_operand (operands[1], E_V2QImode))
        return -1;
      if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 80 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && TARGET_VFP_BASE
  && !TARGET_VFP_FP16INST
  && (register_operand (operands[0], V2QImode)
       || register_operand (operands[1], V2QImode)))))
        return 6841; /* *p *thumb2_movhi_vfp */
      if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 185 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && (TARGET_VFP_FP16INST || TARGET_HAVE_MVE)
  && (register_operand (operands[0], V2QImode)
       || register_operand (operands[1], V2QImode)))))
        return -1;
      return 6847; /* *p *thumb2_movhi_fp16 */

    case E_DImode:
      if (!nonimmediate_di_operand (operands[0], E_DImode)
          || !di_operand (operands[1], E_DImode)
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 344 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_VFP_BASE
   && (   register_operand (operands[0], DImode)
       || register_operand (operands[1], DImode))
   && !((TARGET_NEON || TARGET_HAVE_MVE) && CONST_INT_P (operands[1])
       && simd_immediate_valid_for_move (operands[1], DImode, NULL, NULL)))))
        return -1;
      return 6850; /* *p *movdi_vfp */

    case E_DFmode:
      if (!nonimmediate_soft_df_operand (operands[0], E_DFmode)
          || !soft_df_operand (operands[1], E_DFmode)
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 674 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_ARM && TARGET_HARD_FLOAT
   && (   register_operand (operands[0], DFmode)
       || register_operand (operands[1], DFmode)))))
        return -1;
      return 6855; /* *p *movdf_vfp */

    default:
      return -1;
    }
}

static int
recog_298 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x1, 0);
  operands[4] = x4;
  x5 = XEXP (x4, 0);
  operands[5] = x5;
  x6 = XEXP (x3, 0);
  operands[0] = x6;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x7 = XEXP (x3, 1);
  operands[1] = x7;
  if (!const_int_M_operand (operands[1], E_SImode))
    return -1;
  x8 = XEXP (x3, 2);
  operands[2] = x8;
  if (!const_int_M_operand (operands[2], E_SImode))
    return -1;
  x9 = XEXP (x2, 1);
  operands[3] = x9;
  if (!s_register_operand (operands[3], E_SImode)
      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3510 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_arch_thumb2)))
    return -1;
  return 6400; /* *p insv_t2 */
}

static int
recog_299 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != ZERO_EXTRACT
      || GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x3, 0);
  operands[0] = x4;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x5 = XEXP (x2, 1);
  if (XWINT (x5, 0) == 0L)
    {
      x6 = XEXP (x1, 0);
      operands[3] = x6;
      x7 = XEXP (x6, 0);
      operands[4] = x7;
      x8 = XEXP (x3, 1);
      operands[1] = x8;
      if (const_int_M_operand (operands[1], E_SImode))
        {
          x9 = XEXP (x3, 2);
          operands[2] = x9;
          if (const_int_M_operand (operands[2], E_SImode)
              && (
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3486 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_arch_thumb2)))
            return 6399; /* *p insv_zero */
        }
    }
  x8 = XEXP (x3, 1);
  if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
    return -1;
  x9 = XEXP (x3, 2);
  if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
    return -1;
  x6 = XEXP (x1, 0);
  operands[2] = x6;
  x7 = XEXP (x6, 0);
  operands[3] = x7;
  operands[1] = x5;
  if (!const_int_operand (operands[1], E_SImode)
      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 12356 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_HAVE_MOVT)))
    return -1;
  return 6557; /* *p *arm_movtas_ze */
}

static int
recog_300 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != UNSPEC
      || XVECLEN (x4, 0) != 3
      || XINT (x4, 1) != 2
      || GET_MODE (x4) != E_SImode)
    return -1;
  x5 = XVECEXP (x4, 0, 1);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x6 = XEXP (x1, 0);
  operands[3] = x6;
  x7 = XEXP (x6, 0);
  operands[4] = x7;
  x8 = XEXP (x2, 0);
  operands[0] = x8;
  if (!register_operand (operands[0], E_SImode))
    return -1;
  x9 = XVECEXP (x4, 0, 0);
  operands[1] = x9;
  if (!register_operand (operands[1], E_SImode))
    return -1;
  x10 = XVECEXP (x4, 0, 2);
  operands[2] = x10;
  if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6757 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM)))
    return -1;
  return 6523; /* *p tls_load_dot_plus_eight */
}

static int
recog_301 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[1] = x2;
  x3 = XEXP (x2, 0);
  operands[2] = x3;
  x4 = XEXP (x1, 1);
  x5 = XEXP (x4, 0);
  operands[0] = x5;
  x6 = XEXP (x4, 1);
  switch (XVECLEN (x6, 0))
    {
    case 8:
      if (pattern502 (x6, E_V8QImode) != 0)
        return -1;
      x7 = XVECEXP (x6, 0, 4);
      if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x8 = XVECEXP (x6, 0, 5);
      if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x9 = XVECEXP (x6, 0, 6);
      if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x10 = XVECEXP (x6, 0, 7);
      if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
          || !s_register_operand (operands[0], E_V8QImode)
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 574 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6661; /* *p iwmmxt_clrv8qi */

    case 4:
      if (pattern502 (x6, E_V4HImode) != 0
          || !s_register_operand (operands[0], E_V4HImode)
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 584 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6662; /* *p iwmmxt_clrv4hi */

    case 2:
      if (GET_MODE (x6) != E_V2SImode)
        return -1;
      x11 = XVECEXP (x6, 0, 0);
      if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x12 = XVECEXP (x6, 0, 1);
      if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
          || !register_operand (operands[0], E_V2SImode)
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 593 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6663; /* *p iwmmxt_clrv2si */

    default:
      return -1;
    }
}

static int
recog_302 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  if (maybe_ne (SUBREG_BYTE (x3), 0)
      || GET_MODE (x3) != E_V8QImode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != ASHIFTRT
      || GET_MODE (x4) != E_TImode)
    return -1;
  x5 = XEXP (x4, 0);
  if (GET_CODE (x5) != SUBREG
      || maybe_ne (SUBREG_BYTE (x5), 0)
      || GET_MODE (x5) != E_TImode)
    return -1;
  x6 = XEXP (x5, 0);
  if (GET_CODE (x6) != VEC_CONCAT
      || GET_MODE (x6) != E_V16QImode)
    return -1;
  x7 = XEXP (x4, 1);
  if (GET_CODE (x7) != MULT
      || GET_MODE (x7) != E_SImode)
    return -1;
  x8 = XEXP (x7, 0);
  if (GET_CODE (x8) != ZERO_EXTRACT
      || GET_MODE (x8) != E_SImode)
    return -1;
  x9 = XEXP (x8, 1);
  if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
    return -1;
  x10 = XEXP (x8, 2);
  if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x11 = XEXP (x7, 1);
  if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x12 = XEXP (x2, 0);
  operands[0] = x12;
  if (!register_operand (operands[0], E_V8QImode))
    return -1;
  x13 = XEXP (x6, 0);
  operands[1] = x13;
  if (!register_operand (operands[1], E_V8QImode))
    return -1;
  x14 = XEXP (x6, 1);
  operands[2] = x14;
  if (!register_operand (operands[2], E_V8QImode))
    return -1;
  x15 = XEXP (x1, 0);
  operands[4] = x15;
  x16 = XEXP (x15, 0);
  operands[5] = x16;
  x17 = XEXP (x8, 0);
  operands[3] = x17;
  if (register_operand (operands[3], E_SImode)
      && (
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1656 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
    return 6761; /* *p iwmmxt_walignr */
  if (GET_CODE (x17) != REG)
    return -1;
  operands[3] = x15;
  operands[4] = x16;
  if (GET_MODE (x17) != E_SImode)
    return -1;
  switch (REGNO (x17))
    {
    case 96:
      if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1671 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6762; /* *p iwmmxt_walignr0 */

    case 97:
      if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1686 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6763; /* *p iwmmxt_walignr1 */

    case 98:
      if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1701 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6764; /* *p iwmmxt_walignr2 */

    case 99:
      if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1716 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6765; /* *p iwmmxt_walignr3 */

    default:
      return -1;
    }
}

static int
recog_303 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24, x25;
  rtx x26, x27, x28, x29, x30, x31, x32, x33;
  rtx x34, x35;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  operands[1] = x4;
  x5 = XEXP (x3, 1);
  switch (GET_CODE (x5))
    {
    case CONST_INT:
    case REG:
    case SUBREG:
      operands[2] = x5;
      x6 = XEXP (x1, 0);
      operands[3] = x6;
      x7 = XEXP (x6, 0);
      operands[4] = x7;
      switch (GET_MODE (operands[0]))
        {
        case E_SImode:
          if (pattern415 (x3) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 930 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 6353; /* *p *arm_addsi3 */

        case E_V2SImode:
          if (pattern345 (x3, E_V2SImode) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 341 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6635; /* *p *addv2si3_iwmmxt */

        case E_V4HImode:
          if (pattern345 (x3, E_V4HImode) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 341 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6636; /* *p *addv4hi3_iwmmxt */

        case E_V8QImode:
          if (pattern345 (x3, E_V8QImode) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 341 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6637; /* *p *addv8qi3_iwmmxt */

        case E_SFmode:
          if (pattern344 (x3, E_SFmode) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1006 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 6860; /* *p *addsf3_vfp */

        case E_DFmode:
          if (pattern344 (x3, E_DFmode) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1016 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 6861; /* *p *adddf3_vfp */

        case E_QQmode:
          if (pattern344 (x3, E_QQmode) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 25 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
            return -1;
          return 6971; /* *p addqq3 */

        case E_HQmode:
          if (pattern344 (x3, E_HQmode) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 25 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
            return -1;
          return 6972; /* *p addhq3 */

        case E_SQmode:
          if (pattern344 (x3, E_SQmode) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 25 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
            return -1;
          return 6973; /* *p addsq3 */

        case E_UQQmode:
          if (pattern344 (x3, E_UQQmode) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 25 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
            return -1;
          return 6974; /* *p adduqq3 */

        case E_UHQmode:
          if (pattern344 (x3, E_UHQmode) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 25 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
            return -1;
          return 6975; /* *p adduhq3 */

        case E_USQmode:
          if (pattern344 (x3, E_USQmode) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 25 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
            return -1;
          return 6976; /* *p addusq3 */

        case E_HAmode:
          if (pattern344 (x3, E_HAmode) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 25 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
            return -1;
          return 6977; /* *p addha3 */

        case E_SAmode:
          if (pattern344 (x3, E_SAmode) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 25 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
            return -1;
          return 6978; /* *p addsa3 */

        case E_UHAmode:
          if (pattern344 (x3, E_UHAmode) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 25 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
            return -1;
          return 6979; /* *p adduha3 */

        case E_USAmode:
          if (pattern344 (x3, E_USAmode) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 25 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
            return -1;
          return 6980; /* *p addusa3 */

        case E_V4QQmode:
          if (pattern344 (x3, E_V4QQmode) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 46 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_GE_BITS_READ)))
            return -1;
          return 6981; /* *p *arm_addv4qq3 */

        case E_V2HQmode:
          if (pattern344 (x3, E_V2HQmode) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 46 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_GE_BITS_READ)))
            return -1;
          return 6982; /* *p *arm_addv2hq3 */

        case E_V2HAmode:
          if (pattern344 (x3, E_V2HAmode) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 46 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_GE_BITS_READ)))
            return -1;
          return 6983; /* *p *arm_addv2ha3 */

        default:
          return -1;
        }

    case MULT:
      if (pattern472 (x5) != 0)
        return -1;
      x6 = XEXP (x1, 0);
      operands[4] = x6;
      x7 = XEXP (x6, 0);
      operands[5] = x7;
      if (!register_operand (operands[0], E_DImode)
          || GET_MODE (x3) != E_DImode
          || !register_operand (operands[1], E_DImode))
        return -1;
      x8 = XEXP (x5, 0);
      x9 = XEXP (x8, 0);
      switch (GET_CODE (x9))
        {
        case REG:
        case SUBREG:
          operands[2] = x9;
          if (!register_operand (operands[2], E_SImode))
            return -1;
          x10 = XEXP (x5, 1);
          x11 = XEXP (x10, 0);
          operands[3] = x11;
          if (!register_operand (operands[3], E_SImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1486 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6748; /* *p iwmmxt_tmia */

        case TRUNCATE:
          if (GET_MODE (x9) != E_HImode)
            return -1;
          x10 = XEXP (x5, 1);
          x11 = XEXP (x10, 0);
          if (GET_CODE (x11) != TRUNCATE
              || GET_MODE (x11) != E_HImode)
            return -1;
          x12 = XEXP (x9, 0);
          switch (GET_CODE (x12))
            {
            case REG:
            case SUBREG:
              operands[2] = x12;
              if (!register_operand (operands[2], E_SImode))
                return -1;
              x13 = XEXP (x11, 0);
              switch (pattern645 (x13))
                {
                case 0:
                  if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1517 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 6750; /* *p iwmmxt_tmiabb */

                case 1:
                  if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1551 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 6752; /* *p iwmmxt_tmiabt */

                default:
                  return -1;
                }

            case ASHIFTRT:
              if (GET_MODE (x12) != E_SImode)
                return -1;
              x14 = XEXP (x12, 1);
              if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
                return -1;
              x15 = XEXP (x12, 0);
              operands[2] = x15;
              if (!register_operand (operands[2], E_SImode))
                return -1;
              x13 = XEXP (x11, 0);
              switch (pattern645 (x13))
                {
                case 0:
                  if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1534 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 6751; /* *p iwmmxt_tmiatb */

                case 1:
                  if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1570 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 6753; /* *p iwmmxt_tmiatt */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case VEC_SELECT:
          if (GET_MODE (x9) != E_SImode)
            return -1;
          x16 = XEXP (x9, 1);
          if (GET_CODE (x16) != PARALLEL
              || XVECLEN (x16, 0) != 1)
            return -1;
          x17 = XVECEXP (x16, 0, 0);
          if (GET_CODE (x17) != CONST_INT)
            return -1;
          x10 = XEXP (x5, 1);
          x11 = XEXP (x10, 0);
          if (pattern568 (x11, E_SImode) != 0)
            return -1;
          switch (pattern646 (x5))
            {
            case 0:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 742 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6815; /* *p iwmmxt_wmiawbb */

            case 1:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 755 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6816; /* *p iwmmxt_wmiawbt */

            case 2:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 768 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6817; /* *p iwmmxt_wmiawtb */

            case 3:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 781 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6818; /* *p iwmmxt_wmiawtt */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case PLUS:
      if (pattern473 (x5) != 0)
        return -1;
      x8 = XEXP (x5, 0);
      x18 = XEXP (x8, 1);
      if (GET_CODE (x18) != SIGN_EXTEND
          || GET_MODE (x18) != E_DImode)
        return -1;
      x10 = XEXP (x5, 1);
      if (pattern608 (x10) != 0)
        return -1;
      x19 = XEXP (x10, 1);
      if (GET_CODE (x19) != SIGN_EXTEND
          || GET_MODE (x19) != E_DImode)
        return -1;
      x6 = XEXP (x1, 0);
      operands[4] = x6;
      x7 = XEXP (x6, 0);
      operands[5] = x7;
      if (!register_operand (operands[0], E_DImode)
          || GET_MODE (x3) != E_DImode
          || !register_operand (operands[1], E_DImode))
        return -1;
      x9 = XEXP (x8, 0);
      x12 = XEXP (x9, 0);
      if (GET_MODE (x12) != E_HImode)
        return -1;
      x20 = XEXP (x18, 0);
      if (GET_MODE (x20) != E_HImode)
        return -1;
      x11 = XEXP (x10, 0);
      x13 = XEXP (x11, 0);
      if (GET_MODE (x13) != E_HImode)
        return -1;
      x21 = XEXP (x19, 0);
      if (GET_MODE (x21) != E_HImode)
        return -1;
      switch (GET_CODE (x12))
        {
        case TRUNCATE:
          if (GET_CODE (x20) != TRUNCATE
              || GET_CODE (x13) != TRUNCATE)
            return -1;
          x22 = XEXP (x13, 0);
          if (GET_CODE (x22) != ASHIFTRT
              || GET_MODE (x22) != E_SImode)
            return -1;
          x23 = XEXP (x22, 1);
          if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 16]
              || GET_CODE (x21) != TRUNCATE)
            return -1;
          x24 = XEXP (x21, 0);
          if (GET_CODE (x24) != ASHIFTRT
              || GET_MODE (x24) != E_SImode)
            return -1;
          x25 = XEXP (x24, 1);
          if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
            return -1;
          x15 = XEXP (x12, 0);
          operands[2] = x15;
          if (!register_operand (operands[2], E_SImode))
            return -1;
          x26 = XEXP (x20, 0);
          operands[3] = x26;
          if (!register_operand (operands[3], E_SImode))
            return -1;
          x27 = XEXP (x22, 0);
          if (!rtx_equal_p (x27, operands[2]))
            return -1;
          x28 = XEXP (x24, 0);
          if (!rtx_equal_p (x28, operands[3])
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1504 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6749; /* *p iwmmxt_tmiaph */

        case VEC_SELECT:
          x14 = XEXP (x12, 1);
          if (GET_CODE (x14) != PARALLEL
              || XVECLEN (x14, 0) != 1)
            return -1;
          x29 = XVECEXP (x14, 0, 0);
          if (GET_CODE (x29) != CONST_INT
              || GET_CODE (x20) != VEC_SELECT)
            return -1;
          x30 = XEXP (x20, 1);
          if (GET_CODE (x30) != PARALLEL
              || XVECLEN (x30, 0) != 1)
            return -1;
          x31 = XVECEXP (x30, 0, 0);
          if (GET_CODE (x31) != CONST_INT
              || GET_CODE (x13) != VEC_SELECT)
            return -1;
          x32 = XEXP (x13, 1);
          if (GET_CODE (x32) != PARALLEL
              || XVECLEN (x32, 0) != 1)
            return -1;
          x33 = XVECEXP (x32, 0, 0);
          if (GET_CODE (x33) != CONST_INT
              || GET_CODE (x21) != VEC_SELECT)
            return -1;
          x34 = XEXP (x21, 1);
          if (GET_CODE (x34) != PARALLEL
              || XVECLEN (x34, 0) != 1)
            return -1;
          x35 = XVECEXP (x34, 0, 0);
          if (GET_CODE (x35) != CONST_INT)
            return -1;
          switch (pattern671 (x5))
            {
            case 0:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 561 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6807; /* *p iwmmxt_wmiabb */

            case 1:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 585 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6808; /* *p iwmmxt_wmiabt */

            case 2:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 609 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6809; /* *p iwmmxt_wmiatb */

            case 3:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 633 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6810; /* *p iwmmxt_wmiatt */

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_304 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 1);
  operands[1] = x4;
  x5 = XEXP (x2, 0);
  if (REGNO (x5) != 101)
    return -1;
  x6 = XEXP (x1, 0);
  operands[2] = x6;
  x7 = XEXP (x6, 0);
  operands[3] = x7;
  switch (GET_MODE (x5))
    {
    case E_CCFPmode:
      switch (pattern582 (x3, E_CCFPmode))
        {
        case 0:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1815 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 6908; /* *p *cmpsf_vfp */

        case 1:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1839 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 6910; /* *p *cmpdf_vfp */

        default:
          return -1;
        }

    case E_CCFPEmode:
      switch (pattern582 (x3, E_CCFPEmode))
        {
        case 0:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1827 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 6909; /* *p *cmpsf_trap_vfp */

        case 1:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1851 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 6911; /* *p *cmpdf_trap_vfp */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_305 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[4] = x2;
  x3 = XEXP (x2, 0);
  operands[5] = x3;
  x4 = XEXP (x1, 1);
  x5 = XEXP (x4, 1);
  x6 = XEXP (x5, 1);
  x7 = XEXP (x6, 0);
  switch (GET_CODE (x7))
    {
    case REG:
    case SUBREG:
      switch (GET_MODE (operands[0]))
        {
        case E_SImode:
          if (!s_register_operand (operands[0], E_SImode)
              || GET_MODE (x5) != E_SImode
              || !s_register_operand (operands[1], E_SImode)
              || GET_MODE (x6) != E_SImode)
            return -1;
          operands[3] = x7;
          if (!s_register_operand (operands[3], E_SImode))
            return -1;
          x8 = XEXP (x6, 1);
          operands[2] = x8;
          if (!s_register_operand (operands[2], E_SImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2278 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch_thumb2)))
            return -1;
          return 6373; /* *p *mls */

        case E_SFmode:
          if (pattern583 (x5, E_SFmode) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1279 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 6876; /* *p *mulsf3negsfaddsf_vfp */

        case E_DFmode:
          if (pattern583 (x5, E_DFmode) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1290 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 6877; /* *p *fmuldf3negdfadddf_vfp */

        default:
          return -1;
        }

    case SIGN_EXTEND:
      if (pattern569 (x6, E_SImode) != 0
          || !register_operand (operands[0], E_DImode)
          || GET_MODE (x5) != E_DImode
          || !register_operand (operands[1], E_DImode)
          || GET_MODE (x6) != E_DImode)
        return -1;
      switch (pattern646 (x6))
        {
        case 0:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 794 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6819; /* *p iwmmxt_wmiawbbn */

        case 1:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 807 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6820; /* *p iwmmxt_wmiawbtn */

        case 2:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 820 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6821; /* *p iwmmxt_wmiawtbn */

        case 3:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 833 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6822; /* *p iwmmxt_wmiawttn */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_306 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[3] = x2;
  x3 = XEXP (x2, 0);
  operands[4] = x3;
  x4 = XEXP (x1, 1);
  x5 = XEXP (x4, 1);
  x6 = XEXP (x5, 0);
  switch (GET_CODE (x6))
    {
    case REG:
    case SUBREG:
      switch (GET_MODE (operands[0]))
        {
        case E_SImode:
          if (!s_register_operand (operands[0], E_SImode)
              || GET_MODE (x5) != E_SImode)
            return -1;
          operands[2] = x6;
          if (!s_register_operand (operands[2], E_SImode))
            return -1;
          x7 = XEXP (x5, 1);
          operands[1] = x7;
          if (!s_register_operand (operands[1], E_SImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2247 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 6371; /* *p *mul */

        case E_V4HImode:
          if (pattern523 (x5, E_V4HImode) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 481 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6653; /* *p *mulv4hi3_iwmmxt */

        case E_V2SImode:
          if (pattern523 (x5, E_V2SImode) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 361 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6792; /* *p iwmmxt_wmulwl */

        case E_SFmode:
          if (pattern524 (x5, E_SFmode) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1113 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 6866; /* *p *mulsf3_vfp */

        case E_DFmode:
          if (pattern524 (x5, E_DFmode) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1123 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 6867; /* *p *muldf3_vfp */

        default:
          return -1;
        }

    case SIGN_EXTEND:
      if (GET_MODE (x6) != E_SImode)
        return -1;
      switch (pattern525 (x5, E_HImode))
        {
        case 0:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2514 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY)))
            return -1;
          return 6380; /* *p mulhisi3 */

        case 1:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2540 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY)))
            return -1;
          return 6382; /* *p *mulhisi3bt */

        default:
          return -1;
        }

    case ASHIFTRT:
      if (GET_MODE (x6) != E_SImode)
        return -1;
      x8 = XEXP (x6, 1);
      if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
        return -1;
      switch (pattern525 (x5, E_SImode))
        {
        case 0:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2527 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY)))
            return -1;
          return 6381; /* *p *mulhisi3tb */

        case 1:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2554 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY)))
            return -1;
          return 6383; /* *p *mulhisi3tt */

        default:
          return -1;
        }

    case NEG:
      x9 = XEXP (x6, 0);
      operands[1] = x9;
      x7 = XEXP (x5, 1);
      operands[2] = x7;
      switch (GET_MODE (operands[0]))
        {
        case E_SFmode:
          if (pattern570 (x5, E_SFmode) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1153 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && !flag_rounding_math)))
            return -1;
          return 6868; /* *p *mulsf3negsf_vfp */

        case E_DFmode:
          if (pattern570 (x5, E_DFmode) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1173 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE
  && !flag_rounding_math)))
            return -1;
          return 6870; /* *p *muldf3negdf_vfp */

        default:
          return -1;
        }

    case UNSIGNED_FLOAT:
      switch (pattern503 (x5))
        {
        case 0:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1865 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP3 && !flag_rounding_math)))
            return -1;
          return 6912; /* *p *combine_vcvt_f32_u32 */

        case 1:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1878 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP3 && !flag_rounding_math
  && !TARGET_VFP_SINGLE)))
            return -1;
          return 6914; /* *p *combine_vcvt_f64_u32 */

        default:
          return -1;
        }

    case FLOAT:
      switch (pattern503 (x5))
        {
        case 0:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1865 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP3 && !flag_rounding_math)))
            return -1;
          return 6913; /* *p *combine_vcvt_f32_s32 */

        case 1:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1878 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP3 && !flag_rounding_math
  && !TARGET_VFP_SINGLE)))
            return -1;
          return 6915; /* *p *combine_vcvt_f64_s32 */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_307 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[3] = x2;
  x3 = XEXP (x2, 0);
  operands[4] = x3;
  x4 = XEXP (x1, 1);
  x5 = XEXP (x4, 1);
  x6 = XVECEXP (x5, 0, 0);
  operands[1] = x6;
  x7 = XVECEXP (x5, 0, 1);
  operands[2] = x7;
  switch (XINT (x5, 1))
    {
    case 47:
      if (pattern548 (x5) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6457; /* *p arm_qadd8 */

    case 48:
      if (pattern548 (x5) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6458; /* *p arm_qsub8 */

    case 49:
      if (pattern548 (x5) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6459; /* *p arm_shadd8 */

    case 50:
      if (pattern548 (x5) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6460; /* *p arm_shsub8 */

    case 51:
      if (pattern548 (x5) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6461; /* *p arm_uhadd8 */

    case 52:
      if (pattern548 (x5) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6462; /* *p arm_uhsub8 */

    case 53:
      if (pattern548 (x5) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6463; /* *p arm_uqadd8 */

    case 54:
      if (pattern548 (x5) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6464; /* *p arm_uqsub8 */

    case 55:
      if (pattern548 (x5) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6465; /* *p arm_qadd16 */

    case 56:
      if (pattern548 (x5) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6466; /* *p arm_qasx */

    case 57:
      if (pattern548 (x5) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6467; /* *p arm_qsax */

    case 58:
      if (pattern548 (x5) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6468; /* *p arm_qsub16 */

    case 59:
      if (pattern548 (x5) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6469; /* *p arm_shadd16 */

    case 60:
      if (pattern548 (x5) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6470; /* *p arm_shasx */

    case 61:
      if (pattern548 (x5) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6471; /* *p arm_shsax */

    case 62:
      if (pattern548 (x5) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6472; /* *p arm_shsub16 */

    case 63:
      if (pattern548 (x5) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6473; /* *p arm_uhadd16 */

    case 64:
      if (pattern548 (x5) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6474; /* *p arm_uhasx */

    case 65:
      if (pattern548 (x5) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6475; /* *p arm_uhsax */

    case 66:
      if (pattern548 (x5) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6476; /* *p arm_uhsub16 */

    case 67:
      if (pattern548 (x5) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6477; /* *p arm_uqadd16 */

    case 68:
      if (pattern548 (x5) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6478; /* *p arm_uqasx */

    case 69:
      if (pattern548 (x5) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6479; /* *p arm_uqsax */

    case 70:
      if (pattern548 (x5) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6480; /* *p arm_uqsub16 */

    case 71:
      if (pattern548 (x5) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6481; /* *p arm_smusd */

    case 72:
      if (pattern548 (x5) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6482; /* *p arm_smusdx */

    case 43:
      if (pattern548 (x5) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6483; /* *p arm_sxtab16 */

    case 44:
      if (pattern548 (x5) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6484; /* *p arm_uxtab16 */

    case 73:
      if (pattern548 (x5) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6052 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6485; /* *p arm_usad8 */

    case 98:
      if (pattern548 (x5) != 0)
        return -1;
      if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6125 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ)))
        return 6511; /* *p arm_smuad_insn */
      if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6125 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && ARM_Q_BIT_READ)))
        return -1;
      return 6512; /* *p arm_smuad_setq_insn */

    case 99:
      if (pattern548 (x5) != 0)
        return -1;
      if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6125 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ)))
        return 6513; /* *p arm_smuadx_insn */
      if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6125 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && ARM_Q_BIT_READ)))
        return -1;
      return 6514; /* *p arm_smuadx_setq_insn */

    case 100:
      if (GET_MODE (x5) != E_SImode
          || !s_register_operand (operands[0], E_SImode)
          || !s_register_operand (operands[1], E_SImode)
          || !ssat16_imm (operands[2], E_SImode))
        return -1;
      if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6152 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ)))
        return 6515; /* *p arm_ssat16_insn */
      if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6152 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && ARM_Q_BIT_READ)))
        return -1;
      return 6516; /* *p arm_ssat16_setq_insn */

    case 101:
      if (GET_MODE (x5) != E_SImode
          || !s_register_operand (operands[0], E_SImode)
          || !s_register_operand (operands[1], E_SImode)
          || !usat16_imm (operands[2], E_SImode))
        return -1;
      if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6152 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ)))
        return 6517; /* *p arm_usat16_insn */
      if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6152 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && ARM_Q_BIT_READ)))
        return -1;
      return 6518; /* *p arm_usat16_setq_insn */

    case 13:
      if (pattern549 (x5) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 528 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6657; /* *p iwmmxt_wmacsz */

    case 14:
      if (pattern549 (x5) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 549 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6659; /* *p iwmmxt_wmacuz */

    case 6:
      if (GET_MODE (x5) != E_V4HImode
          || !register_operand (operands[0], E_V4HImode)
          || !register_operand (operands[1], E_V4HImode)
          || !immediate_operand (operands[2], E_SImode)
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 780 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6676; /* *p iwmmxt_wshufh */

    case 10:
      if (GET_MODE (x5) != E_V2SImode
          || !register_operand (operands[0], E_V2SImode))
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case E_V8QImode:
          if (!register_operand (operands[1], E_V8QImode)
              || !register_operand (operands[2], E_V8QImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1750 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6768; /* *p iwmmxt_wsadbz */

        case E_V4HImode:
          if (!register_operand (operands[1], E_V4HImode)
              || !register_operand (operands[2], E_V4HImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1760 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6769; /* *p iwmmxt_wsadhz */

        default:
          return -1;
        }

    case 113:
      if (pattern550 (x5, E_V4HImode) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 371 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6793; /* *p iwmmxt_wqmulm */

    case 112:
      if (pattern550 (x5, E_V2SImode) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 381 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6794; /* *p iwmmxt_wqmulwm */

    case 111:
      if (pattern550 (x5, E_V4HImode) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 391 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6795; /* *p iwmmxt_wqmulmr */

    case 110:
      if (pattern550 (x5, E_V2SImode) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 401 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6796; /* *p iwmmxt_wqmulwmr */

    case 1105:
      if (pattern551 (x5) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 10181 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE)))
        return -1;
      return 7027; /* *p mve_uqrshll_sat64_di */

    case 1106:
      if (pattern551 (x5) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 10181 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE)))
        return -1;
      return 7028; /* *p mve_uqrshll_sat48_di */

    case 1107:
      if (pattern551 (x5) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 10193 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE)))
        return -1;
      return 7029; /* *p mve_sqrshrl_sat64_di */

    case 1108:
      if (pattern551 (x5) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 10193 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE)))
        return -1;
      return 7030; /* *p mve_sqrshrl_sat48_di */

    case 1104:
      if (pattern552 (x5) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 10205 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE)))
        return -1;
      return 7031; /* *p mve_uqrshl_si */

    case 1103:
      if (pattern552 (x5) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 10217 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE)))
        return -1;
      return 7032; /* *p mve_sqrshr_si */

    case 1102:
      if (pattern553 (x5) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 10240 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE)))
        return -1;
      return 7034; /* *p mve_urshrl_di */

    case 1101:
      if (pattern554 (x5, E_SImode) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 10263 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE)))
        return -1;
      return 7036; /* *p mve_urshr_si */

    case 1100:
      if (pattern554 (x5, E_DImode) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 10286 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE)))
        return -1;
      return 7038; /* *p mve_srshr_si */

    case 1099:
      if (pattern553 (x5) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 10298 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE)))
        return -1;
      return 7039; /* *p mve_srshrl_di */

    default:
      return -1;
    }
}

static int
recog_308 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24, x25;
  rtx x26, x27, x28, x29, x30, x31, x32;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  operands[0] = x3;
  x4 = XEXP (x2, 1);
  switch (XVECLEN (x4, 0))
    {
    case 3:
      x5 = XVECEXP (x4, 0, 0);
      operands[1] = x5;
      switch (XINT (x4, 1))
        {
        case 79:
          if (pattern474 (x1, E_SImode) != 0)
            return -1;
          if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2778 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY && !ARM_Q_BIT_READ)))
            return 6393; /* *p arm_smlawb_insn */
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2778 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY && ARM_Q_BIT_READ)))
            return -1;
          return 6394; /* *p arm_smlawb_setq_insn */

        case 80:
          if (pattern474 (x1, E_SImode) != 0)
            return -1;
          if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2778 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY && !ARM_Q_BIT_READ)))
            return 6395; /* *p arm_smlawt_insn */
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2778 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY && ARM_Q_BIT_READ)))
            return -1;
          return 6396; /* *p arm_smlawt_setq_insn */

        case 74:
          if (pattern474 (x1, E_SImode) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6063 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
            return -1;
          return 6486; /* *p arm_usada8 */

        case 75:
          if (pattern474 (x1, E_DImode) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6074 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
            return -1;
          return 6487; /* *p arm_smlald */

        case 76:
          if (pattern474 (x1, E_DImode) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6074 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
            return -1;
          return 6488; /* *p arm_smlaldx */

        case 77:
          if (pattern474 (x1, E_DImode) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6074 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
            return -1;
          return 6489; /* *p arm_smlsld */

        case 78:
          if (pattern474 (x1, E_DImode) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6074 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
            return -1;
          return 6490; /* *p arm_smlsldx */

        case 94:
          if (pattern474 (x1, E_SImode) != 0)
            return -1;
          if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6097 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ)))
            return 6503; /* *p arm_smlad_insn */
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6097 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && ARM_Q_BIT_READ)))
            return -1;
          return 6504; /* *p arm_smlad_setq_insn */

        case 95:
          if (pattern474 (x1, E_SImode) != 0)
            return -1;
          if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6097 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ)))
            return 6505; /* *p arm_smladx_insn */
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6097 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && ARM_Q_BIT_READ)))
            return -1;
          return 6506; /* *p arm_smladx_setq_insn */

        case 96:
          if (pattern474 (x1, E_SImode) != 0)
            return -1;
          if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6097 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ)))
            return 6507; /* *p arm_smlsd_insn */
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6097 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && ARM_Q_BIT_READ)))
            return -1;
          return 6508; /* *p arm_smlsd_setq_insn */

        case 97:
          if (pattern474 (x1, E_SImode) != 0)
            return -1;
          if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6097 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ)))
            return 6509; /* *p arm_smlsdx_insn */
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6097 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && ARM_Q_BIT_READ)))
            return -1;
          return 6510; /* *p arm_smlsdx_setq_insn */

        case 81:
          if (GET_MODE (x4) != E_SImode)
            return -1;
          x6 = XVECEXP (x4, 0, 2);
          if (GET_CODE (x6) != REG
              || REGNO (x6) != 105
              || GET_MODE (x6) != E_CCmode)
            return -1;
          x7 = XEXP (x1, 0);
          operands[3] = x7;
          x8 = XEXP (x7, 0);
          operands[4] = x8;
          if (!s_register_operand (operands[0], E_SImode)
              || !s_register_operand (operands[1], E_SImode))
            return -1;
          x9 = XVECEXP (x4, 0, 1);
          operands[2] = x9;
          if (!s_register_operand (operands[2], E_SImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6180 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
            return -1;
          return 6519; /* *p arm_sel */

        case 2:
          if (GET_MODE (x4) != E_SImode)
            return -1;
          x9 = XVECEXP (x4, 0, 1);
          if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
            return -1;
          x7 = XEXP (x1, 0);
          operands[3] = x7;
          x8 = XEXP (x7, 0);
          operands[4] = x8;
          if (!register_operand (operands[0], E_SImode)
              || !register_operand (operands[1], E_SImode))
            return -1;
          x6 = XVECEXP (x4, 0, 2);
          operands[2] = x6;
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6741 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM)))
            return -1;
          return 6522; /* *p pic_add_dot_plus_eight */

        case 11:
          if (pattern475 (x1) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 518 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6656; /* *p iwmmxt_wmacs */

        case 12:
          if (pattern475 (x1) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 539 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6658; /* *p iwmmxt_wmacu */

        case 9:
          if (GET_MODE (x4) != E_V2SImode)
            return -1;
          x7 = XEXP (x1, 0);
          operands[4] = x7;
          x8 = XEXP (x7, 0);
          operands[5] = x8;
          if (!register_operand (operands[0], E_V2SImode)
              || !register_operand (operands[1], E_V2SImode))
            return -1;
          x9 = XVECEXP (x4, 0, 1);
          operands[2] = x9;
          x6 = XVECEXP (x4, 0, 2);
          operands[3] = x6;
          switch (GET_MODE (operands[2]))
            {
            case E_V8QImode:
              if (!register_operand (operands[2], E_V8QImode)
                  || !register_operand (operands[3], E_V8QImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1728 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6766; /* *p iwmmxt_wsadb */

            case E_V4HImode:
              if (!register_operand (operands[2], E_V4HImode)
                  || !register_operand (operands[3], E_V4HImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1740 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6767; /* *p iwmmxt_wsadh */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 1:
      switch (XINT (x4, 1))
        {
        case 30:
          if (GET_MODE (x4) != E_SImode)
            return -1;
          x5 = XVECEXP (x4, 0, 0);
          if (GET_CODE (x5) != REG
              || REGNO (x5) != 104
              || GET_MODE (x5) != E_CCmode)
            return -1;
          x7 = XEXP (x1, 0);
          operands[1] = x7;
          x8 = XEXP (x7, 0);
          operands[2] = x8;
          if (!s_register_operand (operands[0], E_SImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4405 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM_QBIT)))
            return -1;
          return 6419; /* *p arm_get_apsr */

        case 25:
          if (GET_MODE (x4) != E_SImode)
            return -1;
          x7 = XEXP (x1, 0);
          operands[2] = x7;
          x8 = XEXP (x7, 0);
          operands[3] = x8;
          if (!s_register_operand (operands[0], E_SImode))
            return -1;
          x5 = XVECEXP (x4, 0, 0);
          operands[1] = x5;
          if (!memory_operand (operands[1], E_SImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5002 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(unaligned_access)))
            return -1;
          return 6429; /* *p unaligned_loadsi */

        case 26:
          x7 = XEXP (x1, 0);
          operands[2] = x7;
          x8 = XEXP (x7, 0);
          operands[3] = x8;
          x5 = XVECEXP (x4, 0, 0);
          operands[1] = x5;
          switch (GET_MODE (operands[0]))
            {
            case E_SImode:
              if (!memory_operand (operands[0], E_SImode)
                  || GET_MODE (x4) != E_SImode
                  || !s_register_operand (operands[1], E_SImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5058 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(unaligned_access)))
                return -1;
              return 6432; /* *p unaligned_storesi */

            case E_HImode:
              if (!memory_operand (operands[0], E_HImode)
                  || GET_MODE (x4) != E_HImode
                  || !s_register_operand (operands[1], E_HImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5073 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(unaligned_access)))
                return -1;
              return 6433; /* *p unaligned_storehi */

            default:
              return -1;
            }

        case 45:
          if (GET_MODE (x4) != E_SImode)
            return -1;
          x7 = XEXP (x1, 0);
          operands[2] = x7;
          x8 = XEXP (x7, 0);
          operands[3] = x8;
          if (!s_register_operand (operands[0], E_SImode))
            return -1;
          x5 = XVECEXP (x4, 0, 0);
          operands[1] = x5;
          if (!s_register_operand (operands[1], E_SImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6042 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
            return -1;
          return 6455; /* *p arm_sxtb16 */

        case 46:
          if (GET_MODE (x4) != E_SImode)
            return -1;
          x7 = XEXP (x1, 0);
          operands[2] = x7;
          x8 = XEXP (x7, 0);
          operands[3] = x8;
          if (!s_register_operand (operands[0], E_SImode))
            return -1;
          x5 = XVECEXP (x4, 0, 0);
          operands[1] = x5;
          if (!s_register_operand (operands[1], E_SImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6042 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
            return -1;
          return 6456; /* *p arm_uxtb16 */

        case 38:
          if (GET_MODE (x4) != E_SImode)
            return -1;
          x5 = XVECEXP (x4, 0, 0);
          if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x7 = XEXP (x1, 0);
          operands[1] = x7;
          x8 = XEXP (x7, 0);
          operands[2] = x8;
          if (!memory_operand (operands[0], E_SImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9248 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 6535; /* *p probe_stack */

        case 22:
          if (GET_MODE (x4) != E_SImode)
            return -1;
          x7 = XEXP (x1, 0);
          operands[2] = x7;
          x8 = XEXP (x7, 0);
          operands[3] = x8;
          if (!s_register_operand (operands[0], E_SImode))
            return -1;
          x5 = XVECEXP (x4, 0, 0);
          operands[1] = x5;
          if (!s_register_operand (operands[1], E_SImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 12186 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch_thumb2)))
            return -1;
          return 6555; /* *p rbitsi2 */

        case 17:
          if (GET_MODE (x4) != E_SImode)
            return -1;
          x5 = XVECEXP (x4, 0, 0);
          if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x7 = XEXP (x1, 0);
          operands[1] = x7;
          x8 = XEXP (x7, 0);
          operands[2] = x8;
          if (!register_operand (operands[0], E_SImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 12277 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_HARD_TP)))
            return -1;
          return 6556; /* *p load_tp_hard */

        case 15:
          if (GET_MODE (x4) != E_DImode)
            return -1;
          x5 = XVECEXP (x4, 0, 0);
          if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x7 = XEXP (x1, 0);
          operands[1] = x7;
          x8 = XEXP (x7, 0);
          operands[2] = x8;
          if (!register_operand (operands[0], E_DImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 560 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6660; /* *p iwmmxt_clrdi */

        case 8:
          switch (pattern447 (x1, E_SImode))
            {
            case 0:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1579 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6754; /* *p iwmmxt_tmovmskb */

            case 1:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1588 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6755; /* *p iwmmxt_tmovmskh */

            case 2:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1597 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6756; /* *p iwmmxt_tmovmskw */

            default:
              return -1;
            }

        case 7:
          switch (pattern447 (x1, E_DImode))
            {
            case 0:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1606 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6757; /* *p iwmmxt_waccb */

            case 1:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1615 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6758; /* *p iwmmxt_wacch */

            case 2:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1624 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6759; /* *p iwmmxt_waccw */

            default:
              return -1;
            }

        case 16:
          if (GET_MODE (x4) != E_V8QImode)
            return -1;
          x5 = XVECEXP (x4, 0, 0);
          if (GET_CODE (x5) != SUBREG
              || maybe_ne (SUBREG_BYTE (x5), 0)
              || GET_MODE (x5) != E_V8QImode)
            return -1;
          x10 = XEXP (x5, 0);
          if (GET_CODE (x10) != ASHIFTRT
              || GET_MODE (x10) != E_TImode)
            return -1;
          x11 = XEXP (x10, 0);
          if (GET_CODE (x11) != SUBREG
              || maybe_ne (SUBREG_BYTE (x11), 0)
              || GET_MODE (x11) != E_TImode)
            return -1;
          x12 = XEXP (x11, 0);
          if (GET_CODE (x12) != VEC_CONCAT
              || GET_MODE (x12) != E_V16QImode)
            return -1;
          x13 = XEXP (x10, 1);
          if (GET_CODE (x13) != MULT
              || GET_MODE (x13) != E_SImode)
            return -1;
          x14 = XEXP (x13, 1);
          if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
            return -1;
          x7 = XEXP (x1, 0);
          operands[4] = x7;
          x8 = XEXP (x7, 0);
          operands[5] = x8;
          if (!register_operand (operands[0], E_V8QImode))
            return -1;
          x15 = XEXP (x12, 0);
          operands[1] = x15;
          if (!register_operand (operands[1], E_V8QImode))
            return -1;
          x16 = XEXP (x12, 1);
          operands[2] = x16;
          if (!register_operand (operands[2], E_V8QImode))
            return -1;
          x17 = XEXP (x13, 0);
          operands[3] = x17;
          if (!immediate_operand (operands[3], E_SImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1641 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6760; /* *p iwmmxt_waligni */

        case 109:
          x7 = XEXP (x1, 0);
          operands[2] = x7;
          x8 = XEXP (x7, 0);
          operands[3] = x8;
          x5 = XVECEXP (x4, 0, 0);
          operands[1] = x5;
          switch (GET_MODE (operands[0]))
            {
            case E_V2SImode:
              if (!register_operand (operands[0], E_V2SImode)
                  || GET_MODE (x4) != E_V2SImode
                  || !register_operand (operands[1], E_V2SImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 24 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6770; /* *p iwmmxt_wabsv2si3 */

            case E_V4HImode:
              if (!register_operand (operands[0], E_V4HImode)
                  || GET_MODE (x4) != E_V4HImode
                  || !register_operand (operands[1], E_V4HImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 24 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6771; /* *p iwmmxt_wabsv4hi3 */

            case E_V8QImode:
              if (!register_operand (operands[0], E_V8QImode)
                  || GET_MODE (x4) != E_V8QImode
                  || !register_operand (operands[1], E_V8QImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 24 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6772; /* *p iwmmxt_wabsv8qi3 */

            default:
              return -1;
            }

        case 108:
          x5 = XVECEXP (x4, 0, 0);
          if (GET_CODE (x5) != PLUS)
            return -1;
          x7 = XEXP (x1, 0);
          operands[3] = x7;
          x8 = XEXP (x7, 0);
          operands[4] = x8;
          x10 = XEXP (x5, 0);
          operands[1] = x10;
          x18 = XEXP (x5, 1);
          operands[2] = x18;
          switch (GET_MODE (operands[0]))
            {
            case E_V4HImode:
              if (pattern585 (x4, E_V4HImode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 111 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6778; /* *p addcv4hi3 */

            case E_V2SImode:
              if (pattern585 (x4, E_V2SImode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 111 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6779; /* *p addcv2si3 */

            default:
              return -1;
            }

        case 32:
          switch (pattern448 (x1))
            {
            case 0:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2040 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 )))
                return -1;
              return 6917; /* *p btruncsf2 */

            case 1:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && (
#line 2040 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE))))
                return -1;
              return 6920; /* *p btruncdf2 */

            default:
              return -1;
            }

        case 35:
          switch (pattern448 (x1))
            {
            case 0:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2040 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 )))
                return -1;
              return 6918; /* *p nearbyintsf2 */

            case 1:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && (
#line 2040 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE))))
                return -1;
              return 6921; /* *p nearbyintdf2 */

            default:
              return -1;
            }

        case 36:
          switch (pattern448 (x1))
            {
            case 0:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2040 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 )))
                return -1;
              return 6919; /* *p rintsf2 */

            case 1:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && (
#line 2040 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE))))
                return -1;
              return 6922; /* *p rintdf2 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 2:
      return recog_307 (x1, insn, pnum_clobbers);

    case 5:
      x9 = XVECEXP (x4, 0, 1);
      if (GET_CODE (x9) != ZERO_EXTRACT
          || GET_MODE (x9) != E_V4HImode)
        return -1;
      x19 = XEXP (x9, 1);
      if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
        return -1;
      x20 = XEXP (x9, 2);
      if (GET_CODE (x20) != CONST_INT)
        return -1;
      x6 = XVECEXP (x4, 0, 2);
      if (GET_CODE (x6) != ZERO_EXTRACT
          || GET_MODE (x6) != E_V4HImode)
        return -1;
      x21 = XEXP (x6, 1);
      if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
        return -1;
      x22 = XEXP (x6, 2);
      if (GET_CODE (x22) != CONST_INT)
        return -1;
      x23 = XVECEXP (x4, 0, 3);
      if (GET_CODE (x23) != ZERO_EXTRACT
          || GET_MODE (x23) != E_V4HImode)
        return -1;
      x24 = XEXP (x23, 1);
      if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
        return -1;
      x25 = XEXP (x23, 2);
      if (GET_CODE (x25) != CONST_INT)
        return -1;
      x26 = XVECEXP (x4, 0, 4);
      if (GET_CODE (x26) != ZERO_EXTRACT
          || GET_MODE (x26) != E_V4HImode)
        return -1;
      x27 = XEXP (x26, 1);
      if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
        return -1;
      x28 = XEXP (x26, 2);
      if (GET_CODE (x28) != CONST_INT)
        return -1;
      x7 = XEXP (x1, 0);
      operands[4] = x7;
      x8 = XEXP (x7, 0);
      operands[5] = x8;
      if (!register_operand (operands[0], E_V2SImode)
          || GET_MODE (x4) != E_V2SImode)
        return -1;
      x5 = XVECEXP (x4, 0, 0);
      operands[1] = x5;
      if (!register_operand (operands[1], E_V2SImode))
        return -1;
      x29 = XEXP (x9, 0);
      operands[2] = x29;
      if (!register_operand (operands[2], E_V4HImode))
        return -1;
      x30 = XEXP (x23, 0);
      operands[3] = x30;
      if (!register_operand (operands[3], E_V4HImode))
        return -1;
      x31 = XEXP (x6, 0);
      if (!rtx_equal_p (x31, operands[2]))
        return -1;
      x32 = XEXP (x26, 0);
      if (!rtx_equal_p (x32, operands[3]))
        return -1;
      switch (XINT (x4, 1))
        {
        case 115:
          switch (pattern655 (x4))
            {
            case 0:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 446 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6799; /* *p iwmmxt_wqmiabb */

            case 1:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 459 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6800; /* *p iwmmxt_wqmiabt */

            case 2:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 472 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6801; /* *p iwmmxt_wqmiatb */

            case 3:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 485 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6802; /* *p iwmmxt_wqmiatt */

            default:
              return -1;
            }

        case 114:
          switch (pattern655 (x4))
            {
            case 0:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 498 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6803; /* *p iwmmxt_wqmiabbn */

            case 1:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 511 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6804; /* *p iwmmxt_wqmiabtn */

            case 2:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 524 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6805; /* *p iwmmxt_wqmiatbn */

            case 3:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 537 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6806; /* *p iwmmxt_wqmiattn */

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_309 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24, x25;
  rtx x26, x27, x28, x29, x30, x31, x32, x33;
  rtx x34, x35, x36, x37, x38, x39, x40, x41;
  rtx x42, x43, x44, x45, x46, x47, x48, x49;
  rtx x50, x51, x52, x53, x54, x55, x56, x57;
  rtx x58, x59, x60, x61, x62, x63, x64, x65;
  rtx x66;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[3] = x2;
  x3 = XEXP (x2, 0);
  operands[4] = x3;
  x4 = XEXP (x1, 1);
  x5 = XEXP (x4, 0);
  operands[0] = x5;
  x6 = XEXP (x4, 1);
  x7 = XEXP (x6, 0);
  switch (GET_CODE (x7))
    {
    case LSHIFTRT:
      x8 = XEXP (x7, 1);
      if (GET_CODE (x8) != CONST_INT)
        return -1;
      x9 = XEXP (x7, 0);
      switch (GET_CODE (x9))
        {
        case MULT:
          x10 = XEXP (x9, 0);
          switch (GET_CODE (x10))
            {
            case SIGN_EXTEND:
              if (GET_MODE (x10) != E_V4SImode)
                return -1;
              x11 = XEXP (x9, 1);
              if (GET_CODE (x11) != SIGN_EXTEND
                  || GET_MODE (x11) != E_V4SImode
                  || XWINT (x8, 0) != 16L
                  || !register_operand (operands[0], E_V4HImode)
                  || GET_MODE (x6) != E_V4HImode
                  || GET_MODE (x7) != E_V4SImode
                  || GET_MODE (x9) != E_V4SImode)
                return -1;
              x12 = XEXP (x10, 0);
              operands[1] = x12;
              if (!register_operand (operands[1], E_V4HImode))
                return -1;
              x13 = XEXP (x11, 0);
              operands[2] = x13;
              if (!register_operand (operands[2], E_V4HImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 494 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6654; /* *p smulv4hi3_highpart */

            case ZERO_EXTEND:
              x11 = XEXP (x9, 1);
              if (GET_CODE (x11) != ZERO_EXTEND)
                return -1;
              x12 = XEXP (x10, 0);
              operands[1] = x12;
              x13 = XEXP (x11, 0);
              operands[2] = x13;
              switch (XWINT (x8, 0))
                {
                case 16L:
                  if (pattern596 (x6, E_V4HImode, E_V4SImode) != 0
                      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 507 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 6655; /* *p umulv4hi3_highpart */

                case 32L:
                  if (pattern596 (x6, E_V2SImode, E_V2DImode) != 0
                      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 279 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 6787; /* *p iwmmxt_wmulwum */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case PLUS:
          x10 = XEXP (x9, 0);
          switch (GET_CODE (x10))
            {
            case PLUS:
              x12 = XEXP (x10, 0);
              if (GET_CODE (x12) != ZERO_EXTEND)
                return -1;
              x14 = XEXP (x10, 1);
              if (GET_CODE (x14) != ZERO_EXTEND)
                return -1;
              x11 = XEXP (x9, 1);
              if (GET_CODE (x11) != CONST_VECTOR
                  || XWINT (x8, 0) != 1L)
                return -1;
              x15 = XEXP (x12, 0);
              operands[1] = x15;
              x16 = XEXP (x14, 0);
              operands[2] = x16;
              switch (XVECLEN (x11, 0))
                {
                case 8:
                  if (pattern625 (x11, 1) != 0
                      || pattern617 (x6, E_V8QImode, E_V8HImode) != 0
                      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 617 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 6664; /* *p iwmmxt_uavgrndv8qi3 */

                case 4:
                  if (GET_MODE (x11) != E_V4SImode)
                    return -1;
                  x17 = XVECEXP (x11, 0, 0);
                  if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
                    return -1;
                  x18 = XVECEXP (x11, 0, 1);
                  if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
                    return -1;
                  x19 = XVECEXP (x11, 0, 2);
                  if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
                    return -1;
                  x20 = XVECEXP (x11, 0, 3);
                  if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
                      || pattern617 (x6, E_V4HImode, E_V4SImode) != 0
                      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 635 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 6665; /* *p iwmmxt_uavgrndv4hi3 */

                default:
                  return -1;
                }

            case ZERO_EXTEND:
              x11 = XEXP (x9, 1);
              if (GET_CODE (x11) != ZERO_EXTEND
                  || XWINT (x8, 0) != 1L)
                return -1;
              x12 = XEXP (x10, 0);
              operands[1] = x12;
              x13 = XEXP (x11, 0);
              operands[2] = x13;
              switch (GET_MODE (operands[0]))
                {
                case E_V8QImode:
                  if (pattern596 (x6, E_V8QImode, E_V8HImode) != 0
                      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 648 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 6666; /* *p iwmmxt_uavgv8qi3 */

                case E_V4HImode:
                  if (pattern596 (x6, E_V4HImode, E_V4SImode) != 0
                      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 661 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 6667; /* *p iwmmxt_uavgv4hi3 */

                default:
                  return -1;
                }

            case MULT:
              x12 = XEXP (x10, 0);
              if (GET_CODE (x12) != ZERO_EXTEND)
                return -1;
              x14 = XEXP (x10, 1);
              if (GET_CODE (x14) != ZERO_EXTEND)
                return -1;
              x11 = XEXP (x9, 1);
              if (GET_CODE (x11) != CONST_VECTOR)
                return -1;
              x15 = XEXP (x12, 0);
              operands[1] = x15;
              x16 = XEXP (x14, 0);
              operands[2] = x16;
              switch (XVECLEN (x11, 0))
                {
                case 4:
                  if (pattern616 (x11) != 0)
                    return -1;
                  x20 = XVECEXP (x11, 0, 3);
                  if (GET_CODE (x20) != CONST_INT
                      || XWINT (x20, 0) != 32768L
                      || XWINT (x8, 0) != 16L
                      || pattern617 (x6, E_V4HImode, E_V4SImode) != 0
                      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 316 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 6789; /* *p iwmmxt_wmulumr */

                case 2:
                  if (pattern618 (x6) != 0
                      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 350 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 6791; /* *p iwmmxt_wmulwumr */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    case ABS:
      x9 = XEXP (x7, 0);
      if (GET_CODE (x9) != MINUS)
        return -1;
      x10 = XEXP (x9, 0);
      if (GET_CODE (x10) != ZERO_EXTEND)
        return -1;
      x11 = XEXP (x9, 1);
      if (GET_CODE (x11) != ZERO_EXTEND)
        return -1;
      x12 = XEXP (x10, 0);
      operands[1] = x12;
      x13 = XEXP (x11, 0);
      operands[2] = x13;
      switch (GET_MODE (operands[0]))
        {
        case E_V8QImode:
          if (pattern596 (x6, E_V8QImode, E_V8HImode) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 37 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6773; /* *p iwmmxt_wabsdiffb */

        case E_V4HImode:
          if (pattern596 (x6, E_V4HImode, E_V4SImode) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 50 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6774; /* *p iwmmxt_wabsdiffh */

        case E_V2SImode:
          if (pattern596 (x6, E_V2SImode, E_V2DImode) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 63 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6775; /* *p iwmmxt_wabsdiffw */

        default:
          return -1;
        }

    case VEC_SELECT:
      if (GET_MODE (x7) != E_V8HImode)
        return -1;
      x9 = XEXP (x7, 0);
      if (GET_CODE (x9) != VEC_MERGE
          || GET_MODE (x9) != E_V8HImode)
        return -1;
      x10 = XEXP (x9, 0);
      if (GET_CODE (x10) != LSHIFTRT
          || GET_MODE (x10) != E_V8HImode)
        return -1;
      x12 = XEXP (x10, 0);
      if (GET_CODE (x12) != PLUS
          || GET_MODE (x12) != E_V8HImode)
        return -1;
      x15 = XEXP (x12, 0);
      if (GET_CODE (x15) != PLUS
          || GET_MODE (x15) != E_V8HImode)
        return -1;
      x21 = XEXP (x15, 0);
      if (GET_CODE (x21) != PLUS
          || GET_MODE (x21) != E_V8HImode)
        return -1;
      x22 = XEXP (x21, 0);
      if (GET_CODE (x22) != PLUS
          || GET_MODE (x22) != E_V8HImode)
        return -1;
      x23 = XEXP (x22, 0);
      if (GET_CODE (x23) != ZERO_EXTEND
          || GET_MODE (x23) != E_V8HImode)
        return -1;
      x24 = XEXP (x22, 1);
      if (GET_CODE (x24) != ZERO_EXTEND
          || GET_MODE (x24) != E_V8HImode)
        return -1;
      x25 = XEXP (x21, 1);
      if (GET_CODE (x25) != VEC_SELECT
          || GET_MODE (x25) != E_V8HImode)
        return -1;
      x26 = XEXP (x25, 0);
      if (GET_CODE (x26) != ZERO_EXTEND
          || GET_MODE (x26) != E_V8HImode)
        return -1;
      x27 = XEXP (x25, 1);
      if (GET_CODE (x27) != PARALLEL
          || XVECLEN (x27, 0) != 8)
        return -1;
      x28 = XVECEXP (x27, 0, 0);
      if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
        return -1;
      x29 = XVECEXP (x27, 0, 1);
      if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x30 = XVECEXP (x27, 0, 2);
      if (x30 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x31 = XVECEXP (x27, 0, 3);
      if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
        return -1;
      x32 = XVECEXP (x27, 0, 4);
      if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
        return -1;
      x33 = XVECEXP (x27, 0, 5);
      if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
        return -1;
      x34 = XVECEXP (x27, 0, 6);
      if (x34 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
        return -1;
      x35 = XVECEXP (x27, 0, 7);
      if (x35 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
        return -1;
      x36 = XEXP (x15, 1);
      if (GET_CODE (x36) != VEC_SELECT
          || GET_MODE (x36) != E_V8HImode)
        return -1;
      x37 = XEXP (x36, 0);
      if (GET_CODE (x37) != ZERO_EXTEND
          || GET_MODE (x37) != E_V8HImode)
        return -1;
      x38 = XEXP (x36, 1);
      if (GET_CODE (x38) != PARALLEL
          || XVECLEN (x38, 0) != 8)
        return -1;
      x39 = XVECEXP (x38, 0, 0);
      if (x39 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
        return -1;
      x40 = XVECEXP (x38, 0, 1);
      if (x40 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x41 = XVECEXP (x38, 0, 2);
      if (x41 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x42 = XVECEXP (x38, 0, 3);
      if (x42 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
        return -1;
      x43 = XVECEXP (x38, 0, 4);
      if (x43 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
        return -1;
      x44 = XVECEXP (x38, 0, 5);
      if (x44 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
        return -1;
      x45 = XVECEXP (x38, 0, 6);
      if (x45 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
        return -1;
      x46 = XVECEXP (x38, 0, 7);
      if (x46 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
        return -1;
      x47 = XEXP (x12, 1);
      if (GET_CODE (x47) != CONST_VECTOR
          || XVECLEN (x47, 0) != 8
          || GET_MODE (x47) != E_V8HImode)
        return -1;
      x48 = XVECEXP (x47, 0, 0);
      if (GET_CODE (x48) != CONST_INT)
        return -1;
      x49 = XVECEXP (x47, 0, 1);
      if (GET_CODE (x49) != CONST_INT)
        return -1;
      x50 = XVECEXP (x47, 0, 2);
      if (GET_CODE (x50) != CONST_INT)
        return -1;
      x51 = XVECEXP (x47, 0, 3);
      if (GET_CODE (x51) != CONST_INT)
        return -1;
      x52 = XVECEXP (x47, 0, 4);
      if (GET_CODE (x52) != CONST_INT)
        return -1;
      x53 = XVECEXP (x47, 0, 5);
      if (GET_CODE (x53) != CONST_INT)
        return -1;
      x54 = XVECEXP (x47, 0, 6);
      if (GET_CODE (x54) != CONST_INT)
        return -1;
      x55 = XVECEXP (x47, 0, 7);
      if (GET_CODE (x55) != CONST_INT)
        return -1;
      x14 = XEXP (x10, 1);
      if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
        return -1;
      x11 = XEXP (x9, 1);
      if (GET_CODE (x11) != CONST_VECTOR
          || XVECLEN (x11, 0) != 8
          || pattern625 (x11, 0) != 0)
        return -1;
      x56 = XEXP (x9, 2);
      if (GET_CODE (x56) != CONST_INT
          || XWINT (x56, 0) != 254L)
        return -1;
      x8 = XEXP (x7, 1);
      if (pattern626 (x8, 2, 8) != 0)
        return -1;
      x57 = XVECEXP (x8, 0, 2);
      if (x57 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
        return -1;
      x58 = XVECEXP (x8, 0, 3);
      if (x58 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
        return -1;
      x59 = XVECEXP (x8, 0, 4);
      if (x59 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
        return -1;
      x60 = XVECEXP (x8, 0, 5);
      if (x60 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
        return -1;
      x61 = XVECEXP (x8, 0, 6);
      if (x61 != const_int_rtx[MAX_SAVED_CONST_INT + 7])
        return -1;
      x62 = XVECEXP (x8, 0, 7);
      if (x62 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
          || !register_operand (operands[0], E_V8QImode)
          || GET_MODE (x6) != E_V8QImode)
        return -1;
      x63 = XEXP (x23, 0);
      operands[1] = x63;
      if (!register_operand (operands[1], E_V8QImode))
        return -1;
      x64 = XEXP (x24, 0);
      operands[2] = x64;
      if (!register_operand (operands[2], E_V8QImode))
        return -1;
      x65 = XEXP (x26, 0);
      if (!rtx_equal_p (x65, operands[1]))
        return -1;
      x66 = XEXP (x37, 0);
      if (!rtx_equal_p (x66, operands[2]))
        return -1;
      switch (XWINT (x48, 0))
        {
        case 1L:
          if (XWINT (x49, 0) != 1L
              || XWINT (x50, 0) != 1L
              || XWINT (x51, 0) != 1L
              || XWINT (x52, 0) != 1L
              || XWINT (x53, 0) != 1L
              || XWINT (x54, 0) != 1L
              || XWINT (x55, 0) != 1L
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 143 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6780; /* *p iwmmxt_avg4 */

        case 2L:
          if (XWINT (x49, 0) != 2L
              || XWINT (x50, 0) != 2L
              || XWINT (x51, 0) != 2L
              || XWINT (x52, 0) != 2L
              || XWINT (x53, 0) != 2L
              || XWINT (x54, 0) != 2L
              || XWINT (x55, 0) != 2L
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 175 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6781; /* *p iwmmxt_avg4r */

        default:
          return -1;
        }

    case ASHIFTRT:
      x8 = XEXP (x7, 1);
      if (GET_CODE (x8) != CONST_INT)
        return -1;
      x9 = XEXP (x7, 0);
      switch (GET_CODE (x9))
        {
        case MULT:
          if (GET_MODE (x9) != E_V2DImode)
            return -1;
          x10 = XEXP (x9, 0);
          if (GET_CODE (x10) != SIGN_EXTEND
              || GET_MODE (x10) != E_V2DImode)
            return -1;
          x11 = XEXP (x9, 1);
          if (GET_CODE (x11) != SIGN_EXTEND
              || GET_MODE (x11) != E_V2DImode
              || XWINT (x8, 0) != 32L
              || !register_operand (operands[0], E_V2SImode)
              || GET_MODE (x6) != E_V2SImode
              || GET_MODE (x7) != E_V2DImode)
            return -1;
          x12 = XEXP (x10, 0);
          operands[1] = x12;
          if (!register_operand (operands[1], E_V2SImode))
            return -1;
          x13 = XEXP (x11, 0);
          operands[2] = x13;
          if (!register_operand (operands[2], E_V2SImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 265 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6786; /* *p iwmmxt_wmulwsm */

        case PLUS:
          x10 = XEXP (x9, 0);
          if (GET_CODE (x10) != MULT)
            return -1;
          x12 = XEXP (x10, 0);
          if (GET_CODE (x12) != SIGN_EXTEND)
            return -1;
          x14 = XEXP (x10, 1);
          if (GET_CODE (x14) != SIGN_EXTEND)
            return -1;
          x11 = XEXP (x9, 1);
          if (GET_CODE (x11) != CONST_VECTOR)
            return -1;
          x15 = XEXP (x12, 0);
          operands[1] = x15;
          x16 = XEXP (x14, 0);
          operands[2] = x16;
          switch (XVECLEN (x11, 0))
            {
            case 3:
              if (pattern616 (x11) != 0
                  || XWINT (x8, 0) != 16L
                  || pattern617 (x6, E_V4HImode, E_V4SImode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 297 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6788; /* *p iwmmxt_wmulsmr */

            case 2:
              if (pattern618 (x6) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 333 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6790; /* *p iwmmxt_wmulwsmr */

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_310 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24, x25;
  rtx x26, x27, x28, x29, x30, x31, x32, x33;
  rtx x34, x35, x36;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  operands[0] = x3;
  x4 = XEXP (x2, 1);
  x5 = XEXP (x4, 0);
  switch (GET_CODE (x5))
    {
    case MINUS:
      if (GET_MODE (x5) != E_SImode
          || !s_register_operand (operands[0], E_SImode)
          || GET_MODE (x4) != E_SImode)
        return -1;
      x6 = XEXP (x5, 0);
      switch (GET_CODE (x6))
        {
        case CONST_INT:
        case REG:
        case SUBREG:
          operands[1] = x6;
          x7 = XEXP (x5, 1);
          switch (GET_CODE (x7))
            {
            case REG:
            case SUBREG:
              operands[2] = x7;
              if (!s_register_operand (operands[2], E_SImode))
                return -1;
              x8 = XEXP (x1, 0);
              operands[4] = x8;
              x9 = XEXP (x8, 0);
              operands[5] = x9;
              if (!reg_or_int_operand (operands[1], E_SImode))
                return -1;
              x10 = XEXP (x4, 1);
              operands[3] = x10;
              if (!arm_borrow_operation (operands[3], E_SImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1683 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return -1;
              return 6362; /* *p subsi3_carryin */

            case MULT:
            case ASHIFT:
            case ROTATE:
            case ASHIFTRT:
            case LSHIFTRT:
            case ROTATERT:
              operands[2] = x7;
              if (!shift_operator (operands[2], E_SImode))
                return -1;
              x8 = XEXP (x1, 0);
              operands[6] = x8;
              x9 = XEXP (x8, 0);
              operands[7] = x9;
              if (!s_register_operand (operands[1], E_SImode))
                return -1;
              x11 = XEXP (x7, 0);
              operands[3] = x11;
              if (!s_register_operand (operands[3], E_SImode))
                return -1;
              x12 = XEXP (x7, 1);
              operands[4] = x12;
              if (!shift_amount_operand (operands[4], E_SImode))
                return -1;
              x10 = XEXP (x4, 1);
              operands[5] = x10;
              if (!arm_borrow_operation (operands[5], E_SImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1817 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return -1;
              return 6366; /* *p *subsi3_carryin_shift */

            case GEU:
            case LTU:
              operands[5] = x7;
              if (!arm_borrow_operation (operands[5], E_SImode))
                return -1;
              x10 = XEXP (x4, 1);
              if (!shift_operator (x10, E_SImode))
                return -1;
              operands[2] = x10;
              x8 = XEXP (x1, 0);
              operands[6] = x8;
              x9 = XEXP (x8, 0);
              operands[7] = x9;
              if (!s_register_operand (operands[1], E_SImode))
                return -1;
              x13 = XEXP (x10, 0);
              operands[3] = x13;
              if (!s_register_operand (operands[3], E_SImode))
                return -1;
              x14 = XEXP (x10, 1);
              operands[4] = x14;
              if (!shift_amount_operand (operands[4], E_SImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1834 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return -1;
              return 6367; /* *p *subsi3_carryin_shift_alt */

            default:
              return -1;
            }

        case MULT:
        case ASHIFT:
        case ROTATE:
        case ASHIFTRT:
        case LSHIFTRT:
        case ROTATERT:
          operands[2] = x6;
          if (!shift_operator (operands[2], E_SImode))
            return -1;
          x8 = XEXP (x1, 0);
          operands[6] = x8;
          x9 = XEXP (x8, 0);
          operands[7] = x9;
          x15 = XEXP (x6, 0);
          operands[3] = x15;
          if (!s_register_operand (operands[3], E_SImode))
            return -1;
          x16 = XEXP (x6, 1);
          operands[4] = x16;
          if (!shift_amount_operand (operands[4], E_SImode))
            return -1;
          x7 = XEXP (x5, 1);
          switch (GET_CODE (x7))
            {
            case REG:
            case SUBREG:
              operands[1] = x7;
              if (!s_register_operand (operands[1], E_SImode))
                return -1;
              x10 = XEXP (x4, 1);
              operands[5] = x10;
              if (!arm_borrow_operation (operands[5], E_SImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1852 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM)))
                return -1;
              return 6368; /* *p *rsbsi3_carryin_shift */

            case GEU:
            case LTU:
              operands[5] = x7;
              if (!arm_borrow_operation (operands[5], E_SImode))
                return -1;
              x10 = XEXP (x4, 1);
              operands[1] = x10;
              if (!s_register_operand (operands[1], E_SImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1867 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM)))
                return -1;
              return 6369; /* *p *rsbsi3_carryin_shift_alt */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case GEU:
    case LTU:
      operands[1] = x5;
      if (!arm_carry_operation (operands[1], E_SImode))
        return -1;
      x8 = XEXP (x1, 0);
      operands[3] = x8;
      x9 = XEXP (x8, 0);
      operands[4] = x9;
      if (!s_register_operand (operands[0], E_SImode)
          || GET_MODE (x4) != E_SImode)
        return -1;
      x10 = XEXP (x4, 1);
      operands[2] = x10;
      if (!s_register_operand (operands[2], E_SImode)
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1700 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM)))
        return -1;
      return 6363; /* *p rsbsi_carryin_reg */

    case CONST_INT:
    case REG:
    case SUBREG:
      operands[1] = x5;
      x10 = XEXP (x4, 1);
      switch (GET_CODE (x10))
        {
        case CONST_INT:
        case REG:
        case SUBREG:
          operands[2] = x10;
          x8 = XEXP (x1, 0);
          operands[3] = x8;
          x9 = XEXP (x8, 0);
          operands[4] = x9;
          switch (GET_MODE (operands[0]))
            {
            case E_SImode:
              if (!s_register_operand (operands[0], E_SImode)
                  || GET_MODE (x4) != E_SImode
                  || !reg_or_int_operand (operands[1], E_SImode)
                  || !reg_or_int_operand (operands[2], E_SImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2006 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return -1;
              return 6370; /* *p *arm_subsi3_insn */

            case E_V2SImode:
              if (pattern345 (x4, E_V2SImode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6644; /* *p *subv2si3_iwmmxt */

            case E_V4HImode:
              if (pattern345 (x4, E_V4HImode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6645; /* *p *subv4hi3_iwmmxt */

            case E_V8QImode:
              if (pattern345 (x4, E_V8QImode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6646; /* *p *subv8qi3_iwmmxt */

            case E_SFmode:
              if (pattern344 (x4, E_SFmode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1038 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
                return -1;
              return 6862; /* *p *subsf3_vfp */

            case E_DFmode:
              if (pattern344 (x4, E_DFmode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1048 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
                return -1;
              return 6863; /* *p *subdf3_vfp */

            case E_QQmode:
              if (pattern344 (x4, E_QQmode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 84 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
                return -1;
              return 6998; /* *p subqq3 */

            case E_HQmode:
              if (pattern344 (x4, E_HQmode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 84 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
                return -1;
              return 6999; /* *p subhq3 */

            case E_SQmode:
              if (pattern344 (x4, E_SQmode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 84 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
                return -1;
              return 7000; /* *p subsq3 */

            case E_UQQmode:
              if (pattern344 (x4, E_UQQmode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 84 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
                return -1;
              return 7001; /* *p subuqq3 */

            case E_UHQmode:
              if (pattern344 (x4, E_UHQmode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 84 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
                return -1;
              return 7002; /* *p subuhq3 */

            case E_USQmode:
              if (pattern344 (x4, E_USQmode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 84 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
                return -1;
              return 7003; /* *p subusq3 */

            case E_HAmode:
              if (pattern344 (x4, E_HAmode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 84 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
                return -1;
              return 7004; /* *p subha3 */

            case E_SAmode:
              if (pattern344 (x4, E_SAmode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 84 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
                return -1;
              return 7005; /* *p subsa3 */

            case E_UHAmode:
              if (pattern344 (x4, E_UHAmode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 84 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
                return -1;
              return 7006; /* *p subuha3 */

            case E_USAmode:
              if (pattern344 (x4, E_USAmode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 84 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
                return -1;
              return 7007; /* *p subusa3 */

            case E_V4QQmode:
              if (pattern344 (x4, E_V4QQmode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 105 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_GE_BITS_READ)))
                return -1;
              return 7008; /* *p *arm_subv4qq3 */

            case E_V2HQmode:
              if (pattern344 (x4, E_V2HQmode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 105 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_GE_BITS_READ)))
                return -1;
              return 7009; /* *p *arm_subv2hq3 */

            case E_V2HAmode:
              if (pattern344 (x4, E_V2HAmode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 105 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_GE_BITS_READ)))
                return -1;
              return 7010; /* *p *arm_subv2ha3 */

            default:
              return -1;
            }

        case MULT:
        case ASHIFT:
        case ROTATE:
        case ASHIFTRT:
        case LSHIFTRT:
        case ROTATERT:
          if (GET_CODE (x10) == MULT)
            {
              res = recog_305 (x1, insn, pnum_clobbers);
              if (res >= 0)
                return res;
            }
          operands[2] = x10;
          if (!shift_operator (operands[2], E_SImode))
            return -1;
          x8 = XEXP (x1, 0);
          operands[5] = x8;
          x9 = XEXP (x8, 0);
          operands[6] = x9;
          if (!s_register_operand (operands[0], E_SImode)
              || GET_MODE (x4) != E_SImode
              || !s_register_operand (operands[1], E_SImode))
            return -1;
          x13 = XEXP (x10, 0);
          operands[3] = x13;
          if (!s_register_operand (operands[3], E_SImode))
            return -1;
          x14 = XEXP (x10, 1);
          operands[4] = x14;
          if (!shift_amount_operand (operands[4], E_SImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9750 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 6548; /* *p *sub_shiftsi */

        case PLUS:
          if (pattern473 (x10) != 0)
            return -1;
          x13 = XEXP (x10, 0);
          x17 = XEXP (x13, 0);
          x18 = XEXP (x17, 0);
          if (GET_CODE (x18) != VEC_SELECT
              || GET_MODE (x18) != E_HImode)
            return -1;
          x19 = XEXP (x18, 1);
          if (GET_CODE (x19) != PARALLEL
              || XVECLEN (x19, 0) != 1)
            return -1;
          x20 = XVECEXP (x19, 0, 0);
          if (GET_CODE (x20) != CONST_INT)
            return -1;
          x21 = XEXP (x13, 1);
          if (pattern624 (x21, E_HImode, E_DImode, SIGN_EXTEND) != 0)
            return -1;
          x22 = XEXP (x21, 0);
          x23 = XEXP (x22, 1);
          if (GET_CODE (x23) != PARALLEL
              || XVECLEN (x23, 0) != 1)
            return -1;
          x24 = XVECEXP (x23, 0, 0);
          if (GET_CODE (x24) != CONST_INT)
            return -1;
          x14 = XEXP (x10, 1);
          if (pattern608 (x14) != 0)
            return -1;
          x25 = XEXP (x14, 0);
          x26 = XEXP (x25, 0);
          if (GET_CODE (x26) != VEC_SELECT
              || GET_MODE (x26) != E_HImode)
            return -1;
          x27 = XEXP (x26, 1);
          if (GET_CODE (x27) != PARALLEL
              || XVECLEN (x27, 0) != 1)
            return -1;
          x28 = XVECEXP (x27, 0, 0);
          if (GET_CODE (x28) != CONST_INT)
            return -1;
          x29 = XEXP (x14, 1);
          if (GET_CODE (x29) != SIGN_EXTEND
              || GET_MODE (x29) != E_DImode)
            return -1;
          x30 = XEXP (x29, 0);
          if (GET_CODE (x30) != VEC_SELECT
              || GET_MODE (x30) != E_HImode)
            return -1;
          x31 = XEXP (x30, 1);
          if (GET_CODE (x31) != PARALLEL
              || XVECLEN (x31, 0) != 1)
            return -1;
          x32 = XVECEXP (x31, 0, 0);
          if (GET_CODE (x32) != CONST_INT)
            return -1;
          x8 = XEXP (x1, 0);
          operands[4] = x8;
          x9 = XEXP (x8, 0);
          operands[5] = x9;
          if (!register_operand (operands[0], E_DImode)
              || GET_MODE (x4) != E_DImode
              || !register_operand (operands[1], E_DImode))
            return -1;
          switch (pattern671 (x10))
            {
            case 0:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 657 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6811; /* *p iwmmxt_wmiabbn */

            case 1:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 681 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6812; /* *p iwmmxt_wmiabtn */

            case 2:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 705 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6813; /* *p iwmmxt_wmiatbn */

            case 3:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 729 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6814; /* *p iwmmxt_wmiattn */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case MULT:
      x6 = XEXP (x5, 0);
      switch (GET_CODE (x6))
        {
        case REG:
        case SUBREG:
          operands[2] = x6;
          x8 = XEXP (x1, 0);
          operands[4] = x8;
          x9 = XEXP (x8, 0);
          operands[5] = x9;
          x7 = XEXP (x5, 1);
          operands[3] = x7;
          x10 = XEXP (x4, 1);
          operands[1] = x10;
          switch (GET_CODE (operands[3]))
            {
            case CONST_INT:
              if (!power_of_two_operand (operands[3], E_SImode)
                  || !s_register_operand (operands[0], E_SImode)
                  || GET_MODE (x4) != E_SImode
                  || GET_MODE (x5) != E_SImode
                  || !s_register_operand (operands[2], E_SImode)
                  || !s_register_operand (operands[1], E_SImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9669 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return -1;
              return 6539; /* *p *rsb_multsi */

            case REG:
            case SUBREG:
              switch (GET_MODE (operands[0]))
                {
                case E_SFmode:
                  if (pattern595 (x4, E_SFmode) != 0
                      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1245 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
                    return -1;
                  return 6874; /* *p *mulsf3subsf_vfp */

                case E_DFmode:
                  if (pattern595 (x4, E_DFmode) != 0
                      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1256 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
                    return -1;
                  return 6875; /* *p *muldf3subdf_vfp */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case VEC_SELECT:
          if (pattern444 (x5, 2, 0) != 0)
            return -1;
          x7 = XEXP (x5, 1);
          x12 = XEXP (x7, 1);
          x33 = XVECEXP (x12, 0, 0);
          if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x34 = XVECEXP (x12, 0, 1);
          if (x34 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
            return -1;
          x10 = XEXP (x4, 1);
          if (pattern623 (x10, 3, 1) != 0)
            return -1;
          x14 = XEXP (x10, 1);
          if (GET_CODE (x14) != VEC_SELECT
              || GET_MODE (x14) != E_V2SImode)
            return -1;
          x29 = XEXP (x14, 1);
          if (GET_CODE (x29) != PARALLEL
              || XVECLEN (x29, 0) != 2)
            return -1;
          x35 = XVECEXP (x29, 0, 0);
          if (x35 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
            return -1;
          x36 = XVECEXP (x29, 0, 1);
          if (x36 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
            return -1;
          switch (pattern653 (x1))
            {
            case 0:
              if (pattern667 (x4, SIGN_EXTEND) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 232 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6784; /* *p iwmmxt_wmaddsn */

            case 1:
              if (pattern667 (x4, ZERO_EXTEND) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 251 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6785; /* *p iwmmxt_wmaddun */

            default:
              return -1;
            }

        case NEG:
          x8 = XEXP (x1, 0);
          operands[4] = x8;
          x9 = XEXP (x8, 0);
          operands[5] = x9;
          x15 = XEXP (x6, 0);
          operands[2] = x15;
          x7 = XEXP (x5, 1);
          operands[3] = x7;
          x10 = XEXP (x4, 1);
          operands[1] = x10;
          switch (GET_MODE (operands[0]))
            {
            case E_SFmode:
              if (pattern584 (x4, E_SFmode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1316 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
                return -1;
              return 6878; /* *p *mulsf3negsfsubsf_vfp */

            case E_DFmode:
              if (pattern584 (x4, E_DFmode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1328 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
                return -1;
              return 6879; /* *p *muldf3negdfsubdf_vfp */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      operands[2] = x5;
      if (pattern445 (x1) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9683 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && GET_CODE (operands[2]) != MULT)))
        return -1;
      return 6544; /* *p *rsb_shiftsi */

    default:
      return -1;
    }
}

static int
recog_311 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  operands[0] = x3;
  x4 = XEXP (x2, 1);
  x5 = XEXP (x4, 0);
  switch (GET_CODE (x5))
    {
    case REG:
    case SUBREG:
      return recog_303 (x1, insn, pnum_clobbers);

    case PLUS:
      if (GET_MODE (x5) != E_SImode
          || !s_register_operand (operands[0], E_SImode)
          || GET_MODE (x4) != E_SImode)
        return -1;
      x6 = XEXP (x5, 0);
      switch (GET_CODE (x6))
        {
        case REG:
        case SUBREG:
          operands[1] = x6;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x7 = XEXP (x1, 0);
          operands[4] = x7;
          x8 = XEXP (x7, 0);
          operands[5] = x8;
          x9 = XEXP (x5, 1);
          operands[2] = x9;
          if (!arm_not_operand (operands[2], E_SImode))
            return -1;
          x10 = XEXP (x4, 1);
          operands[3] = x10;
          if (!arm_carry_operation (operands[3], E_SImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1324 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 6358; /* *p addsi3_carryin */

        case GEU:
        case LTU:
          operands[3] = x6;
          if (!arm_carry_operation (operands[3], E_SImode))
            return -1;
          x7 = XEXP (x1, 0);
          operands[4] = x7;
          x8 = XEXP (x7, 0);
          operands[5] = x8;
          x9 = XEXP (x5, 1);
          operands[1] = x9;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x10 = XEXP (x4, 1);
          operands[2] = x10;
          if (!arm_not_operand (operands[2], E_SImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1355 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 6360; /* *p *addsi3_carryin_alt2 */

        case MULT:
        case ASHIFT:
        case ROTATE:
        case ASHIFTRT:
        case LSHIFTRT:
        case ROTATERT:
          if (!shift_operator (x6, E_SImode))
            return -1;
          x7 = XEXP (x1, 0);
          operands[6] = x7;
          x8 = XEXP (x7, 0);
          operands[7] = x8;
          x11 = XEXP (x6, 0);
          if (!s_register_operand (x11, E_SImode))
            return -1;
          x12 = XEXP (x6, 1);
          if (!shift_amount_operand (x12, E_SImode))
            return -1;
          x9 = XEXP (x5, 1);
          switch (GET_CODE (x9))
            {
            case GEU:
            case LTU:
              operands[5] = x9;
              if (!arm_carry_operation (operands[5], E_SImode))
                return -1;
              operands[2] = x6;
              operands[3] = x11;
              operands[4] = x12;
              x10 = XEXP (x4, 1);
              operands[1] = x10;
              if (!s_register_operand (operands[1], E_SImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1376 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return -1;
              return 6361; /* *p *addsi3_carryin_shift */

            case NOT:
              if (GET_MODE (x9) != E_SImode)
                return -1;
              operands[3] = x6;
              operands[1] = x11;
              operands[2] = x12;
              x13 = XEXP (x9, 0);
              operands[4] = x13;
              if (!s_register_operand (operands[4], E_SImode))
                return -1;
              x10 = XEXP (x4, 1);
              operands[5] = x10;
              if (!arm_carry_operation (operands[5], E_SImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1735 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM)))
                return -1;
              return 6365; /* *p add_not_shift_cin */

            default:
              return -1;
            }

        case NOT:
          if (GET_MODE (x6) != E_SImode)
            return -1;
          x7 = XEXP (x1, 0);
          operands[4] = x7;
          x8 = XEXP (x7, 0);
          operands[5] = x8;
          x11 = XEXP (x6, 0);
          operands[1] = x11;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x9 = XEXP (x5, 1);
          operands[3] = x9;
          if (!arm_carry_operation (operands[3], E_SImode))
            return -1;
          x10 = XEXP (x4, 1);
          operands[2] = x10;
          if (!arm_rhs_operand (operands[2], E_SImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1715 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM || (TARGET_THUMB2 && !CONST_INT_P (operands[2])))))
            return -1;
          return 6364; /* *p *add_not_cin */

        default:
          return -1;
        }

    case GEU:
    case LTU:
      operands[2] = x5;
      if (!arm_carry_operation (operands[2], E_SImode))
        return -1;
      x7 = XEXP (x1, 0);
      operands[3] = x7;
      x8 = XEXP (x7, 0);
      operands[4] = x8;
      if (!s_register_operand (operands[0], E_SImode)
          || GET_MODE (x4) != E_SImode)
        return -1;
      x10 = XEXP (x4, 1);
      operands[1] = x10;
      if (!arm_not_operand (operands[1], E_SImode)
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1342 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
        return -1;
      return 6359; /* *p add0si3_carryin */

    case MULT:
      x6 = XEXP (x5, 0);
      switch (GET_CODE (x6))
        {
        case REG:
        case SUBREG:
          x7 = XEXP (x1, 0);
          operands[4] = x7;
          x8 = XEXP (x7, 0);
          operands[5] = x8;
          x10 = XEXP (x4, 1);
          operands[1] = x10;
          x9 = XEXP (x5, 1);
          switch (GET_CODE (x9))
            {
            case REG:
            case SUBREG:
              switch (GET_MODE (operands[0]))
                {
                case E_SImode:
                  if (!s_register_operand (operands[0], E_SImode)
                      || GET_MODE (x4) != E_SImode
                      || GET_MODE (x5) != E_SImode)
                    return -1;
                  operands[3] = x6;
                  if (!s_register_operand (operands[3], E_SImode))
                    return -1;
                  operands[2] = x9;
                  if (!s_register_operand (operands[2], E_SImode)
                      || !s_register_operand (operands[1], E_SImode)
                      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2265 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                    return -1;
                  return 6372; /* *p *mla */

                case E_SFmode:
                  if (pattern567 (x4, E_SFmode) != 0
                      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1211 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
                    return -1;
                  return 6872; /* *p *mulsf3addsf_vfp */

                case E_DFmode:
                  if (pattern567 (x4, E_DFmode) != 0
                      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1222 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
                    return -1;
                  return 6873; /* *p *muldf3adddf_vfp */

                default:
                  return -1;
                }

            case CONST_INT:
              operands[3] = x9;
              if (!power_of_two_operand (operands[3], E_SImode)
                  || !s_register_operand (operands[0], E_SImode)
                  || GET_MODE (x4) != E_SImode
                  || GET_MODE (x5) != E_SImode)
                return -1;
              operands[2] = x6;
              if (!s_register_operand (operands[2], E_SImode)
                  || !s_register_operand (operands[1], E_SImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9669 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return -1;
              return 6538; /* *p *add_multsi */

            default:
              return -1;
            }

        case SIGN_EXTEND:
          x9 = XEXP (x5, 1);
          if (GET_CODE (x9) != SIGN_EXTEND)
            return -1;
          x7 = XEXP (x1, 0);
          operands[4] = x7;
          x8 = XEXP (x7, 0);
          operands[5] = x8;
          x10 = XEXP (x4, 1);
          operands[3] = x10;
          x11 = XEXP (x6, 0);
          switch (GET_CODE (x11))
            {
            case REG:
            case SUBREG:
              operands[1] = x11;
              if (!s_register_operand (operands[1], E_HImode))
                return -1;
              x13 = XEXP (x9, 0);
              operands[2] = x13;
              if (!s_register_operand (operands[2], E_HImode))
                return -1;
              switch (GET_MODE (operands[0]))
                {
                case E_SImode:
                  if (pattern615 (x4, E_SImode) != 0
                      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2589 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY && !ARM_Q_BIT_READ)))
                    return -1;
                  return 6384; /* *p *arm_maddhisi4 */

                case E_DImode:
                  if (pattern615 (x4, E_DImode) != 0
                      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2733 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY)))
                    return -1;
                  return 6390; /* *p maddhidi4 */

                default:
                  return -1;
                }

            case ASHIFTRT:
              if (GET_MODE (x11) != E_SImode)
                return -1;
              x14 = XEXP (x11, 1);
              if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 16]
                  || !s_register_operand (operands[0], E_DImode)
                  || GET_MODE (x4) != E_DImode
                  || GET_MODE (x5) != E_DImode
                  || GET_MODE (x6) != E_DImode)
                return -1;
              x15 = XEXP (x11, 0);
              operands[1] = x15;
              if (!s_register_operand (operands[1], E_SImode)
                  || GET_MODE (x9) != E_DImode
                  || !s_register_operand (operands[3], E_DImode))
                return -1;
              x13 = XEXP (x9, 0);
              switch (GET_CODE (x13))
                {
                case REG:
                case SUBREG:
                  operands[2] = x13;
                  if (!s_register_operand (operands[2], E_HImode)
                      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2749 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY)))
                    return -1;
                  return 6391; /* *p *maddhidi4tb */

                case ASHIFTRT:
                  if (GET_MODE (x13) != E_SImode)
                    return -1;
                  x16 = XEXP (x13, 1);
                  if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
                    return -1;
                  x17 = XEXP (x13, 0);
                  operands[2] = x17;
                  if (!s_register_operand (operands[2], E_SImode)
                      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2766 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY)))
                    return -1;
                  return 6392; /* *p *maddhidi4tt */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case ASHIFTRT:
          if (GET_MODE (x6) != E_SImode)
            return -1;
          x12 = XEXP (x6, 1);
          if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
            return -1;
          x7 = XEXP (x1, 0);
          operands[4] = x7;
          x8 = XEXP (x7, 0);
          operands[5] = x8;
          if (!s_register_operand (operands[0], E_SImode)
              || GET_MODE (x4) != E_SImode
              || GET_MODE (x5) != E_SImode)
            return -1;
          x11 = XEXP (x6, 0);
          operands[1] = x11;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x9 = XEXP (x5, 1);
          if (GET_MODE (x9) != E_SImode)
            return -1;
          x10 = XEXP (x4, 1);
          operands[3] = x10;
          if (!s_register_operand (operands[3], E_SImode))
            return -1;
          switch (GET_CODE (x9))
            {
            case SIGN_EXTEND:
              x13 = XEXP (x9, 0);
              operands[2] = x13;
              if (!s_register_operand (operands[2], E_HImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2636 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY && !ARM_Q_BIT_READ)))
                return -1;
              return 6386; /* *p maddhisi4tb */

            case ASHIFTRT:
              x18 = XEXP (x9, 1);
              if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
                return -1;
              x13 = XEXP (x9, 0);
              operands[2] = x13;
              if (!s_register_operand (operands[2], E_SImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2685 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY && !ARM_Q_BIT_READ)))
                return -1;
              return 6388; /* *p maddhisi4tt */

            default:
              return -1;
            }

        case VEC_SELECT:
          if (pattern444 (x5, 3, 1) != 0)
            return -1;
          x9 = XEXP (x5, 1);
          x18 = XEXP (x9, 1);
          x19 = XVECEXP (x18, 0, 0);
          if (GET_CODE (x19) != CONST_INT)
            return -1;
          x20 = XVECEXP (x18, 0, 1);
          if (GET_CODE (x20) != CONST_INT)
            return -1;
          x10 = XEXP (x4, 1);
          if (pattern623 (x10, 2, 0) != 0)
            return -1;
          x21 = XEXP (x10, 1);
          if (GET_CODE (x21) != VEC_SELECT
              || GET_MODE (x21) != E_V2SImode)
            return -1;
          x22 = XEXP (x21, 1);
          if (GET_CODE (x22) != PARALLEL
              || XVECLEN (x22, 0) != 2)
            return -1;
          x23 = XVECEXP (x22, 0, 0);
          if (GET_CODE (x23) != CONST_INT)
            return -1;
          x24 = XVECEXP (x22, 0, 1);
          if (GET_CODE (x24) != CONST_INT)
            return -1;
          switch (pattern653 (x1))
            {
            case 0:
              switch (pattern666 (x4, SIGN_EXTEND))
                {
                case 0:
                  if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1454 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 6746; /* *p iwmmxt_wmadds */

                case 1:
                  if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 194 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 6782; /* *p iwmmxt_wmaddsx */

                default:
                  return -1;
                }

            case 1:
              switch (pattern666 (x4, ZERO_EXTEND))
                {
                case 0:
                  if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1473 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 6747; /* *p iwmmxt_wmaddu */

                case 1:
                  if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 213 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 6783; /* *p iwmmxt_wmaddux */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    case ZERO_EXTEND:
      if (GET_MODE (x5) != E_SImode)
        return -1;
      x7 = XEXP (x1, 0);
      operands[3] = x7;
      x8 = XEXP (x7, 0);
      operands[4] = x8;
      if (!s_register_operand (operands[0], E_SImode)
          || GET_MODE (x4) != E_SImode)
        return -1;
      x6 = XEXP (x5, 0);
      operands[1] = x6;
      x10 = XEXP (x4, 1);
      operands[2] = x10;
      if (!s_register_operand (operands[2], E_SImode))
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case E_HImode:
          if (!s_register_operand (operands[1], E_HImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5697 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
            return -1;
          return 6444; /* *p *arm_zero_extendhisi2addsi */

        case E_QImode:
          if (!s_register_operand (operands[1], E_QImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5767 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
            return -1;
          return 6447; /* *p *arm_zero_extendqisi2addsi */

        default:
          return -1;
        }

    case SIGN_EXTEND:
      if (GET_MODE (x5) != E_SImode)
        return -1;
      x7 = XEXP (x1, 0);
      operands[3] = x7;
      x8 = XEXP (x7, 0);
      operands[4] = x8;
      if (!s_register_operand (operands[0], E_SImode)
          || GET_MODE (x4) != E_SImode)
        return -1;
      x6 = XEXP (x5, 0);
      operands[1] = x6;
      if (!s_register_operand (operands[1], E_QImode))
        return -1;
      x10 = XEXP (x4, 1);
      operands[2] = x10;
      if (!s_register_operand (operands[2], E_SImode)
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6032 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6454; /* *p *arm_extendqisi2addsi */

    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      operands[2] = x5;
      if (pattern445 (x1) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9683 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && GET_CODE (operands[2]) != MULT)))
        return -1;
      return 6543; /* *p *add_shiftsi */

    default:
      return -1;
    }
}

static int
recog_312 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24, x25;
  rtx x26, x27, x28, x29, x30;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  operands[0] = x3;
  x4 = XEXP (x2, 1);
  x5 = XEXP (x4, 0);
  switch (GET_CODE (x5))
    {
    case VEC_DUPLICATE:
      x6 = XEXP (x1, 0);
      operands[4] = x6;
      x7 = XEXP (x6, 0);
      operands[5] = x7;
      x8 = XEXP (x4, 1);
      operands[1] = x8;
      x9 = XEXP (x4, 2);
      operands[3] = x9;
      if (!immediate_operand (operands[3], E_SImode))
        return -1;
      x10 = XEXP (x5, 0);
      switch (GET_CODE (x10))
        {
        case TRUNCATE:
          x11 = XEXP (x10, 0);
          operands[2] = x11;
          if (!nonimmediate_operand (operands[2], E_SImode))
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case E_V8QImode:
              if (pattern609 (x4, E_V8QImode, E_QImode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 676 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6668; /* *p iwmmxt_tinsrb */

            case E_V4HImode:
              if (pattern609 (x4, E_V4HImode, E_HImode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 693 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6669; /* *p iwmmxt_tinsrh */

            default:
              return -1;
            }

        case REG:
        case SUBREG:
        case MEM:
          operands[2] = x10;
          if (!nonimmediate_operand (operands[2], E_SImode)
              || !register_operand (operands[0], E_V2SImode)
              || GET_MODE (x4) != E_V2SImode
              || GET_MODE (x5) != E_V2SImode
              || !register_operand (operands[1], E_V2SImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 710 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6670; /* *p iwmmxt_tinsrw */

        default:
          return -1;
        }

    case VEC_SELECT:
      x12 = XEXP (x5, 1);
      if (GET_CODE (x12) != PARALLEL)
        return -1;
      x8 = XEXP (x4, 1);
      if (GET_CODE (x8) != VEC_SELECT)
        return -1;
      x13 = XEXP (x8, 1);
      if (GET_CODE (x13) != PARALLEL)
        return -1;
      x9 = XEXP (x4, 2);
      if (GET_CODE (x9) != CONST_INT)
        return -1;
      x6 = XEXP (x1, 0);
      operands[3] = x6;
      x7 = XEXP (x6, 0);
      operands[4] = x7;
      x10 = XEXP (x5, 0);
      operands[1] = x10;
      x14 = XEXP (x8, 0);
      operands[2] = x14;
      switch (XVECLEN (x12, 0))
        {
        case 8:
          if (pattern610 (x12) != 0)
            return -1;
          x15 = XVECEXP (x12, 0, 4);
          if (GET_CODE (x15) != CONST_INT)
            return -1;
          x16 = XVECEXP (x12, 0, 5);
          if (GET_CODE (x16) != CONST_INT)
            return -1;
          x17 = XVECEXP (x12, 0, 6);
          if (GET_CODE (x17) != CONST_INT)
            return -1;
          x18 = XVECEXP (x12, 0, 7);
          if (GET_CODE (x18) != CONST_INT
              || pattern627 (x13, 8) != 0)
            return -1;
          x19 = XVECEXP (x13, 0, 4);
          if (GET_CODE (x19) != CONST_INT)
            return -1;
          x20 = XVECEXP (x13, 0, 5);
          if (GET_CODE (x20) != CONST_INT)
            return -1;
          x21 = XVECEXP (x13, 0, 6);
          if (GET_CODE (x21) != CONST_INT)
            return -1;
          x22 = XVECEXP (x13, 0, 7);
          if (GET_CODE (x22) != CONST_INT
              || XWINT (x9, 0) != 85L
              || pattern637 (x4, E_V8QImode) != 0)
            return -1;
          x23 = XVECEXP (x12, 0, 0);
          switch (XWINT (x23, 0))
            {
            case 4L:
              x24 = XVECEXP (x12, 0, 1);
              if (XWINT (x24, 0) != 0L)
                return -1;
              x25 = XVECEXP (x12, 0, 2);
              if (XWINT (x25, 0) != 5L)
                return -1;
              x26 = XVECEXP (x12, 0, 3);
              if (XWINT (x26, 0) != 1L
                  || XWINT (x15, 0) != 6L
                  || XWINT (x16, 0) != 2L
                  || XWINT (x17, 0) != 7L
                  || XWINT (x18, 0) != 3L)
                return -1;
              x27 = XVECEXP (x13, 0, 0);
              if (XWINT (x27, 0) != 0L)
                return -1;
              x28 = XVECEXP (x13, 0, 1);
              if (XWINT (x28, 0) != 4L)
                return -1;
              x29 = XVECEXP (x13, 0, 2);
              if (XWINT (x29, 0) != 1L)
                return -1;
              x30 = XVECEXP (x13, 0, 3);
              if (XWINT (x30, 0) != 5L
                  || XWINT (x19, 0) != 2L
                  || XWINT (x20, 0) != 6L
                  || XWINT (x21, 0) != 3L
                  || XWINT (x22, 0) != 7L
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1029 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6704; /* *p iwmmxt_wunpckihb */

            case 0L:
              x24 = XVECEXP (x12, 0, 1);
              if (XWINT (x24, 0) != 4L)
                return -1;
              x25 = XVECEXP (x12, 0, 2);
              if (XWINT (x25, 0) != 1L)
                return -1;
              x26 = XVECEXP (x12, 0, 3);
              if (XWINT (x26, 0) != 5L
                  || XWINT (x15, 0) != 2L
                  || XWINT (x16, 0) != 6L
                  || XWINT (x17, 0) != 3L
                  || XWINT (x18, 0) != 7L)
                return -1;
              x27 = XVECEXP (x13, 0, 0);
              if (XWINT (x27, 0) != 4L)
                return -1;
              x28 = XVECEXP (x13, 0, 1);
              if (XWINT (x28, 0) != 0L)
                return -1;
              x29 = XVECEXP (x13, 0, 2);
              if (XWINT (x29, 0) != 5L)
                return -1;
              x30 = XVECEXP (x13, 0, 3);
              if (XWINT (x30, 0) != 1L
                  || XWINT (x19, 0) != 6L
                  || XWINT (x20, 0) != 2L
                  || XWINT (x21, 0) != 7L
                  || XWINT (x22, 0) != 3L
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1093 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6707; /* *p iwmmxt_wunpckilb */

            default:
              return -1;
            }

        case 4:
          if (pattern610 (x12) != 0
              || pattern627 (x13, 4) != 0
              || XWINT (x9, 0) != 5L
              || pattern637 (x4, E_V4HImode) != 0)
            return -1;
          x23 = XVECEXP (x12, 0, 0);
          switch (XWINT (x23, 0))
            {
            case 2L:
              x24 = XVECEXP (x12, 0, 1);
              if (XWINT (x24, 0) != 0L)
                return -1;
              x25 = XVECEXP (x12, 0, 2);
              if (XWINT (x25, 0) != 3L)
                return -1;
              x26 = XVECEXP (x12, 0, 3);
              if (XWINT (x26, 0) != 1L)
                return -1;
              x27 = XVECEXP (x13, 0, 0);
              if (XWINT (x27, 0) != 0L)
                return -1;
              x28 = XVECEXP (x13, 0, 1);
              if (XWINT (x28, 0) != 2L)
                return -1;
              x29 = XVECEXP (x13, 0, 2);
              if (XWINT (x29, 0) != 1L)
                return -1;
              x30 = XVECEXP (x13, 0, 3);
              if (XWINT (x30, 0) != 3L
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1049 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6705; /* *p iwmmxt_wunpckihh */

            case 0L:
              x24 = XVECEXP (x12, 0, 1);
              if (XWINT (x24, 0) != 2L)
                return -1;
              x25 = XVECEXP (x12, 0, 2);
              if (XWINT (x25, 0) != 1L)
                return -1;
              x26 = XVECEXP (x12, 0, 3);
              if (XWINT (x26, 0) != 3L)
                return -1;
              x27 = XVECEXP (x13, 0, 0);
              if (XWINT (x27, 0) != 2L)
                return -1;
              x28 = XVECEXP (x13, 0, 1);
              if (XWINT (x28, 0) != 0L)
                return -1;
              x29 = XVECEXP (x13, 0, 2);
              if (XWINT (x29, 0) != 3L)
                return -1;
              x30 = XVECEXP (x13, 0, 3);
              if (XWINT (x30, 0) != 1L
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1113 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6708; /* *p iwmmxt_wunpckilh */

            default:
              return -1;
            }

        case 2:
          x23 = XVECEXP (x12, 0, 0);
          if (GET_CODE (x23) != CONST_INT)
            return -1;
          x24 = XVECEXP (x12, 0, 1);
          if (GET_CODE (x24) != CONST_INT
              || XVECLEN (x13, 0) != 2)
            return -1;
          x27 = XVECEXP (x13, 0, 0);
          if (GET_CODE (x27) != CONST_INT)
            return -1;
          x28 = XVECEXP (x13, 0, 1);
          if (GET_CODE (x28) != CONST_INT
              || XWINT (x9, 0) != 1L
              || pattern637 (x4, E_V2SImode) != 0)
            return -1;
          switch (XWINT (x23, 0))
            {
            case 1L:
              if (XWINT (x24, 0) != 0L
                  || XWINT (x27, 0) != 0L
                  || XWINT (x28, 0) != 1L
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1065 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6706; /* *p iwmmxt_wunpckihw */

            case 0L:
              if (XWINT (x24, 0) != 1L
                  || XWINT (x27, 0) != 1L
                  || XWINT (x28, 0) != 0L
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1129 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6709; /* *p iwmmxt_wunpckilw */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case SS_MINUS:
      if (pattern420 (x1, SS_PLUS) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 81 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6776; /* *p iwmmxt_waddsubhx */

    case SS_PLUS:
      if (pattern420 (x1, SS_MINUS) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 99 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6777; /* *p iwmmxt_wsubaddhx */

    default:
      return -1;
    }
}

static int
recog_313 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  switch (XVECLEN (x3, 0))
    {
    case 1:
      switch (XINT (x3, 1))
        {
        case 50:
          if (GET_MODE (x3) != E_CCmode)
            return -1;
          x4 = XEXP (x2, 0);
          if (GET_CODE (x4) != REG
              || REGNO (x4) != 104
              || GET_MODE (x4) != E_CCmode)
            return -1;
          x5 = XEXP (x1, 0);
          operands[1] = x5;
          x6 = XEXP (x5, 0);
          operands[2] = x6;
          x7 = XVECEXP (x3, 0, 0);
          operands[0] = x7;
          if (!s_register_operand (operands[0], E_SImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4415 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM_QBIT)))
            return -1;
          return 6420; /* *p arm_set_apsr */

        case 51:
          if (GET_MODE (x3) != E_SImode)
            return -1;
          x4 = XEXP (x2, 0);
          if (GET_CODE (x4) != MEM
              || GET_MODE (x4) != E_SImode)
            return -1;
          x5 = XEXP (x1, 0);
          operands[2] = x5;
          x6 = XEXP (x5, 0);
          operands[3] = x6;
          x8 = XEXP (x4, 0);
          if (GET_MODE (x8) != E_SImode)
            return -1;
          x7 = XVECEXP (x3, 0, 0);
          operands[1] = x7;
          if (!const_int_operand (operands[1], E_SImode))
            return -1;
          switch (GET_CODE (x8))
            {
            case POST_DEC:
              x9 = XEXP (x8, 0);
              operands[0] = x9;
              if (!s_register_operand (operands[0], E_SImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1647 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HAVE_FPCXT_CMSE && use_cmse)))
                return -1;
              return 6904; /* *p push_fpsysreg_insn */

            case POST_INC:
              x9 = XEXP (x8, 0);
              operands[0] = x9;
              if (!s_register_operand (operands[0], E_SImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1666 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HAVE_FPCXT_CMSE && use_cmse)))
                return -1;
              return 6905; /* *p pop_fpsysreg_insn */

            default:
              return -1;
            }

        case 21:
          if (GET_MODE (x3) != E_DImode)
            return -1;
          x5 = XEXP (x1, 0);
          operands[2] = x5;
          x6 = XEXP (x5, 0);
          operands[3] = x6;
          x4 = XEXP (x2, 0);
          operands[0] = x4;
          if (!register_operand (operands[0], E_DImode))
            return -1;
          x7 = XVECEXP (x3, 0, 0);
          operands[1] = x7;
          if (!arm_sync_memory_operand (operands[1], E_DImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 124 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(ARM_DOUBLEWORD_ALIGN && TARGET_HAVE_LPAE)))
            return -1;
          return 6954; /* *p arm_atomic_loaddi2_ldrd */

        case 20:
          switch (pattern419 (x1))
            {
            case 0:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 479 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX)))
                return -1;
              return 6959; /* *p arm_load_exclusivesi */

            case 1:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 503 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD)))
                return -1;
              return 6961; /* *p arm_load_exclusivedi */

            default:
              return -1;
            }

        case 23:
          switch (pattern419 (x1))
            {
            case 0:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 491 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ)))
                return -1;
              return 6960; /* *p arm_load_acquire_exclusivesi */

            case 1:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 512 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQEXD && ARM_DOUBLEWORD_ALIGN)))
                return -1;
              return 6962; /* *p arm_load_acquire_exclusivedi */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 2:
      x5 = XEXP (x1, 0);
      operands[3] = x5;
      x6 = XEXP (x5, 0);
      operands[4] = x6;
      x4 = XEXP (x2, 0);
      operands[0] = x4;
      x7 = XVECEXP (x3, 0, 0);
      operands[1] = x7;
      x10 = XVECEXP (x3, 0, 1);
      operands[2] = x10;
      switch (XINT (x3, 1))
        {
        case 13:
          switch (GET_MODE (operands[0]))
            {
            case E_V8QImode:
              if (pattern571 (x3, E_V8QImode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 802 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6677; /* *p eqv8qi3 */

            case E_V4HImode:
              if (pattern571 (x3, E_V4HImode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 813 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6678; /* *p eqv4hi3 */

            case E_V2SImode:
              if (pattern571 (x3, E_V2SImode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 825 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6679; /* *p eqv2si3 */

            default:
              return -1;
            }

        case 14:
          switch (GET_MODE (operands[0]))
            {
            case E_V8QImode:
              if (pattern571 (x3, E_V8QImode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 836 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6680; /* *p gtuv8qi3 */

            case E_V4HImode:
              if (pattern571 (x3, E_V4HImode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 847 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6681; /* *p gtuv4hi3 */

            case E_V2SImode:
              if (pattern571 (x3, E_V2SImode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 858 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6682; /* *p gtuv2si3 */

            default:
              return -1;
            }

        case 15:
          switch (GET_MODE (operands[0]))
            {
            case E_V8QImode:
              if (pattern571 (x3, E_V8QImode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 869 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6683; /* *p gtv8qi3 */

            case E_V4HImode:
              if (pattern571 (x3, E_V4HImode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 880 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6684; /* *p gtv4hi3 */

            case E_V2SImode:
              if (pattern571 (x3, E_V2SImode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 891 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6685; /* *p gtv2si3 */

            default:
              return -1;
            }

        case 25:
          if (!const_int_operand (operands[2], E_SImode))
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case E_QImode:
              if (!register_operand (operands[0], E_QImode)
                  || GET_MODE (x3) != E_QImode
                  || !arm_sync_memory_operand (operands[1], E_QImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 71 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ)))
                return -1;
              return 6948; /* *p atomic_loadqi */

            case E_HImode:
              if (!register_operand (operands[0], E_HImode)
                  || GET_MODE (x3) != E_HImode
                  || !arm_sync_memory_operand (operands[1], E_HImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 71 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ)))
                return -1;
              return 6949; /* *p atomic_loadhi */

            case E_SImode:
              if (!register_operand (operands[0], E_SImode)
                  || GET_MODE (x3) != E_SImode
                  || !arm_sync_memory_operand (operands[1], E_SImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 71 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ)))
                return -1;
              return 6950; /* *p atomic_loadsi */

            default:
              return -1;
            }

        case 26:
          if (!const_int_operand (operands[2], E_SImode))
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case E_QImode:
              if (!memory_operand (operands[0], E_QImode)
                  || GET_MODE (x3) != E_QImode
                  || !general_operand (operands[1], E_QImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 97 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ)))
                return -1;
              return 6951; /* *p atomic_storeqi */

            case E_HImode:
              if (!memory_operand (operands[0], E_HImode)
                  || GET_MODE (x3) != E_HImode
                  || !general_operand (operands[1], E_HImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 97 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ)))
                return -1;
              return 6952; /* *p atomic_storehi */

            case E_SImode:
              if (!memory_operand (operands[0], E_SImode)
                  || GET_MODE (x3) != E_SImode
                  || !general_operand (operands[1], E_SImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 97 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ)))
                return -1;
              return 6953; /* *p atomic_storesi */

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_314 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  operands[0] = x3;
  x4 = XEXP (x2, 1);
  switch (GET_CODE (x4))
    {
    case MULT:
      res = recog_306 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    case ROTATERT:
      x5 = XEXP (x1, 0);
      operands[3] = x5;
      switch (pattern446 (x1))
        {
        case 0:
          if (imm_or_reg_operand (operands[2], E_SImode)
              && (
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1277 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6722; /* *p rorv4hi3 */
          if (imm_or_reg_operand (operands[2], E_DImode)
              && (
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1361 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6734; /* *p rorv4hi3_di */
          break;

        case 1:
          if (imm_or_reg_operand (operands[2], E_SImode)
              && (
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1277 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6723; /* *p rorv2si3 */
          if (imm_or_reg_operand (operands[2], E_DImode)
              && (
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1361 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6735; /* *p rorv2si3_di */
          break;

        case 2:
          if (imm_or_reg_operand (operands[2], E_SImode)
              && (
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1277 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6724; /* *p rordi3 */
          if (imm_or_reg_operand (operands[2], E_DImode)
              && (
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1361 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6736; /* *p rordi3_di */
          break;

        default:
          break;
        }
      break;

    case ASHIFTRT:
      x5 = XEXP (x1, 0);
      operands[3] = x5;
      switch (pattern446 (x1))
        {
        case 0:
          if (imm_or_reg_operand (operands[2], E_SImode)
              && (
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1298 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6725; /* *p ashrv4hi3_iwmmxt */
          if (imm_or_reg_operand (operands[2], E_DImode)
              && (
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1382 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6737; /* *p ashrv4hi3_di */
          break;

        case 1:
          if (imm_or_reg_operand (operands[2], E_SImode)
              && (
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1298 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6726; /* *p ashrv2si3_iwmmxt */
          if (imm_or_reg_operand (operands[2], E_DImode)
              && (
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1382 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6738; /* *p ashrv2si3_di */
          break;

        case 2:
          if (imm_or_reg_operand (operands[2], E_SImode)
              && (
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1298 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6727; /* *p ashrdi3_iwmmxt */
          if (imm_or_reg_operand (operands[2], E_DImode)
              && (
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1382 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6739; /* *p ashrdi3_di */
          break;

        default:
          break;
        }
      if (GET_MODE (x4) == E_DImode)
        {
          operands[2] = x5;
          x6 = XEXP (x5, 0);
          operands[3] = x6;
          if (arm_general_register_operand (operands[0], E_DImode))
            {
              x7 = XEXP (x4, 1);
              operands[1] = x7;
              if (arm_reg_or_long_shift_imm (operands[1], E_SImode))
                {
                  x8 = XEXP (x4, 0);
                  if (rtx_equal_p (x8, operands[0])
                      && (
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1707 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_HAVE_MVE)))
                    return 6945; /* *p thumb2_asrl */
                }
            }
        }
      break;

    case LSHIFTRT:
      x5 = XEXP (x1, 0);
      operands[3] = x5;
      switch (pattern446 (x1))
        {
        case 0:
          if (imm_or_reg_operand (operands[2], E_SImode)
              && (
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1319 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6728; /* *p lshrv4hi3_iwmmxt */
          if (register_operand (operands[2], E_DImode)
              && (
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1403 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6740; /* *p lshrv4hi3_di */
          break;

        case 1:
          if (imm_or_reg_operand (operands[2], E_SImode)
              && (
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1319 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6729; /* *p lshrv2si3_iwmmxt */
          if (register_operand (operands[2], E_DImode)
              && (
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1403 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6741; /* *p lshrv2si3_di */
          break;

        case 2:
          if (imm_or_reg_operand (operands[2], E_SImode)
              && (
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1319 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6730; /* *p lshrdi3_iwmmxt */
          if (register_operand (operands[2], E_DImode)
              && (
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1403 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6742; /* *p lshrdi3_di */
          break;

        default:
          break;
        }
      if (GET_MODE (x4) == E_DImode)
        {
          operands[2] = x5;
          x6 = XEXP (x5, 0);
          operands[3] = x6;
          if (arm_general_register_operand (operands[0], E_DImode))
            {
              x7 = XEXP (x4, 1);
              operands[1] = x7;
              if (long_shift_imm (operands[1], E_SImode))
                {
                  x8 = XEXP (x4, 0);
                  if (rtx_equal_p (x8, operands[0])
                      && (
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1723 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_HAVE_MVE)))
                    return 6947; /* *p thumb2_lsrl */
                }
            }
        }
      break;

    case ASHIFT:
      x5 = XEXP (x1, 0);
      operands[3] = x5;
      switch (pattern446 (x1))
        {
        case 0:
          if (imm_or_reg_operand (operands[2], E_SImode)
              && (
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1340 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6731; /* *p ashlv4hi3_iwmmxt */
          if (imm_or_reg_operand (operands[2], E_DImode)
              && (
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1424 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6743; /* *p ashlv4hi3_di */
          break;

        case 1:
          if (imm_or_reg_operand (operands[2], E_SImode)
              && (
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1340 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6732; /* *p ashlv2si3_iwmmxt */
          if (imm_or_reg_operand (operands[2], E_DImode)
              && (
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1424 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6744; /* *p ashlv2si3_di */
          break;

        case 2:
          if (imm_or_reg_operand (operands[2], E_SImode)
              && (
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1340 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6733; /* *p ashldi3_iwmmxt */
          if (imm_or_reg_operand (operands[2], E_DImode)
              && (
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1424 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6745; /* *p ashldi3_di */
          break;

        default:
          break;
        }
      if (GET_MODE (x4) == E_DImode)
        {
          operands[2] = x5;
          x6 = XEXP (x5, 0);
          operands[3] = x6;
          if (arm_general_register_operand (operands[0], E_DImode))
            {
              x7 = XEXP (x4, 1);
              operands[1] = x7;
              if (arm_reg_or_long_shift_imm (operands[1], E_SImode))
                {
                  x8 = XEXP (x4, 0);
                  if (rtx_equal_p (x8, operands[0])
                      && (
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1715 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_HAVE_MVE)))
                    return 6946; /* *p thumb2_lsll */
                }
            }
        }
      break;

    default:
      break;
    }
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x5 = XEXP (x1, 0);
  operands[4] = x5;
  x6 = XEXP (x5, 0);
  operands[5] = x6;
  operands[3] = x4;
  if (!shift_operator (operands[3], E_SImode))
    return -1;
  x8 = XEXP (x4, 0);
  operands[1] = x8;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x7 = XEXP (x4, 1);
  operands[2] = x7;
  if (!reg_or_int_operand (operands[2], E_SImode)
      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4739 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
    return -1;
  return 6427; /* *p *arm_shiftsi3 */
}

static int
recog_315 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  operands[0] = x3;
  x4 = XEXP (x2, 1);
  x5 = XEXP (x4, 0);
  switch (GET_CODE (x5))
    {
    case AND:
      if (GET_MODE (x5) != E_SImode)
        return -1;
      x6 = XEXP (x4, 1);
      if (GET_CODE (x6) != AND
          || GET_MODE (x6) != E_SImode
          || !s_register_operand (operands[0], E_SImode)
          || GET_MODE (x4) != E_SImode)
        return -1;
      x7 = XEXP (x5, 1);
      if (!const_int_operand (x7, E_VOIDmode))
        return -1;
      x8 = XEXP (x6, 1);
      if (!const_int_operand (x8, E_VOIDmode))
        return -1;
      x9 = XEXP (x5, 0);
      switch (GET_CODE (x9))
        {
        case REG:
        case SUBREG:
          if (!s_register_operand (x9, E_SImode))
            return -1;
          x10 = XEXP (x6, 0);
          switch (GET_CODE (x10))
            {
            case ASHIFT:
              if (GET_MODE (x10) != E_SImode)
                return -1;
              x11 = XEXP (x1, 0);
              operands[6] = x11;
              x12 = XEXP (x11, 0);
              operands[7] = x12;
              operands[1] = x9;
              operands[2] = x7;
              x13 = XEXP (x10, 0);
              operands[3] = x13;
              if (!s_register_operand (operands[3], E_SImode))
                return -1;
              x14 = XEXP (x10, 1);
              operands[4] = x14;
              if (!const_int_operand (operands[4], E_VOIDmode))
                return -1;
              operands[5] = x8;
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3525 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_arch_thumb2
   && UINTVAL (operands[4]) < 32
   && UINTVAL (operands[2]) == ~UINTVAL (operands[5])
   && (exact_log2 (UINTVAL (operands[5])
		   + (HOST_WIDE_INT_1U << UINTVAL (operands[4])))
       >= 0))))
                return -1;
              return 6401; /* *p *bfi */

            case REG:
            case SUBREG:
              if (!s_register_operand (x10, E_SImode))
                return -1;
              x11 = XEXP (x1, 0);
              operands[5] = x11;
              x12 = XEXP (x11, 0);
              operands[6] = x12;
              operands[1] = x9;
              operands[2] = x7;
              operands[3] = x10;
              operands[4] = x8;
              if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3563 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_arch_thumb2
   && UINTVAL (operands[2]) == ~UINTVAL (operands[4])
   && exact_log2 (UINTVAL (operands[4]) + 1) >= 0)))
                return 6403; /* *p *bfi_alt2 */
              operands[3] = x9;
              operands[4] = x7;
              operands[1] = x10;
              operands[2] = x8;
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3578 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_arch_thumb2
   && UINTVAL (operands[2]) == ~UINTVAL (operands[4])
   && exact_log2 (UINTVAL (operands[4]) + 1) >= 0)))
                return -1;
              return 6404; /* *p *bfi_alt3 */

            default:
              return -1;
            }

        case ASHIFT:
          if (GET_MODE (x9) != E_SImode)
            return -1;
          x11 = XEXP (x1, 0);
          operands[6] = x11;
          x12 = XEXP (x11, 0);
          operands[7] = x12;
          x15 = XEXP (x9, 0);
          operands[3] = x15;
          if (!s_register_operand (operands[3], E_SImode))
            return -1;
          x16 = XEXP (x9, 1);
          operands[4] = x16;
          if (!const_int_operand (operands[4], E_VOIDmode))
            return -1;
          operands[5] = x7;
          x10 = XEXP (x6, 0);
          operands[1] = x10;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          operands[2] = x8;
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3545 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_arch_thumb2
   && UINTVAL (operands[4]) < 32
   && UINTVAL (operands[2]) == ~UINTVAL (operands[5])
   && (exact_log2 (UINTVAL (operands[5])
		   + (HOST_WIDE_INT_1U << UINTVAL (operands[4])))
       >= 0))))
            return -1;
          return 6402; /* *p *bfi_alt1 */

        default:
          return -1;
        }

    case REG:
    case SUBREG:
      switch (pattern417 (x1))
        {
        case 0:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3723 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 6409; /* *p *iorsi3_insn */

        case 1:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 61 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6619; /* *p iwmmxt_iordi3 */

        case 2:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 318 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6629; /* *p *iorv2si3_iwmmxt */

        case 3:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 318 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6630; /* *p *iorv4hi3_iwmmxt */

        case 4:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 318 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6631; /* *p *iorv8qi3_iwmmxt */

        default:
          return -1;
        }

    case MULT:
      if (pattern414 (x1) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9669 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
        return -1;
      return 6540; /* *p *orr_multsi */

    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      operands[2] = x5;
      if (pattern445 (x1) == 0
          && (
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9683 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && GET_CODE (operands[2]) != MULT)))
        return 6545; /* *p *orr_shiftsi */
      if (GET_CODE (x5) != ASHIFT
          || GET_MODE (x5) != E_DImode)
        return -1;
      x7 = XEXP (x5, 1);
      if (GET_CODE (x7) != MINUS
          || GET_MODE (x7) != E_SImode)
        return -1;
      x17 = XEXP (x7, 0);
      if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 64])
        return -1;
      x18 = XEXP (x7, 1);
      if (GET_CODE (x18) != MULT
          || GET_MODE (x18) != E_SImode)
        return -1;
      x19 = XEXP (x18, 1);
      if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
        return -1;
      x6 = XEXP (x4, 1);
      if (GET_CODE (x6) != LSHIFTRT
          || GET_MODE (x6) != E_DImode)
        return -1;
      x10 = XEXP (x6, 0);
      if (GET_CODE (x10) != ASHIFT
          || GET_MODE (x10) != E_DImode)
        return -1;
      x14 = XEXP (x10, 1);
      if (GET_CODE (x14) != MULT
          || GET_MODE (x14) != E_SImode)
        return -1;
      x20 = XEXP (x14, 1);
      if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
        return -1;
      x8 = XEXP (x6, 1);
      if (GET_CODE (x8) != MULT
          || GET_MODE (x8) != E_SImode)
        return -1;
      x21 = XEXP (x8, 1);
      if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
        return -1;
      x11 = XEXP (x1, 0);
      operands[4] = x11;
      x12 = XEXP (x11, 0);
      operands[5] = x12;
      if (!register_operand (operands[0], E_DImode)
          || GET_MODE (x4) != E_DImode)
        return -1;
      x9 = XEXP (x5, 0);
      operands[2] = x9;
      if (!register_operand (operands[2], E_DImode))
        return -1;
      x22 = XEXP (x18, 0);
      operands[3] = x22;
      if (!immediate_operand (operands[3], E_SImode))
        return -1;
      x13 = XEXP (x10, 0);
      operands[1] = x13;
      if (!register_operand (operands[1], E_DImode))
        return -1;
      x23 = XEXP (x14, 0);
      if (!rtx_equal_p (x23, operands[3]))
        return -1;
      x24 = XEXP (x8, 0);
      if (!rtx_equal_p (x24, operands[3])
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 858 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6823; /* *p iwmmxt_wmerge */

    case NOT:
      switch (pattern413 (x1))
        {
        case 0:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1534 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2)))
            return -1;
          return 6941; /* *p *orsi_notsi_si */

        case 1:
          x9 = XEXP (x5, 0);
          x15 = XEXP (x9, 0);
          operands[2] = x15;
          if (!s_register_operand (operands[2], E_SImode))
            return -1;
          x16 = XEXP (x9, 1);
          operands[3] = x16;
          if (!const_int_operand (operands[3], E_SImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1546 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2)))
            return -1;
          return 6942; /* *p *orsi_not_shiftsi_si */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_316 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24, x25;
  rtx x26, x27, x28, x29, x30, x31, x32, x33;
  rtx x34, x35, x36;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[3] = x2;
  x3 = XEXP (x2, 0);
  operands[4] = x3;
  x4 = XEXP (x1, 1);
  x5 = XEXP (x4, 0);
  operands[0] = x5;
  x6 = XEXP (x4, 1);
  x7 = XEXP (x6, 0);
  switch (GET_CODE (x7))
    {
    case SS_TRUNCATE:
      x8 = XEXP (x6, 1);
      if (GET_CODE (x8) != SS_TRUNCATE)
        return -1;
      x9 = XEXP (x7, 0);
      operands[1] = x9;
      switch (pattern527 (x6))
        {
        case 0:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 946 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6698; /* *p iwmmxt_wpackhss */

        case 1:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 957 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6699; /* *p iwmmxt_wpackwss */

        case 2:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 968 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6700; /* *p iwmmxt_wpackdss */

        default:
          return -1;
        }

    case US_TRUNCATE:
      x9 = XEXP (x7, 0);
      switch (GET_CODE (x9))
        {
        case REG:
        case SUBREG:
          operands[1] = x9;
          x8 = XEXP (x6, 1);
          if (GET_CODE (x8) != US_TRUNCATE)
            return -1;
          switch (pattern527 (x6))
            {
            case 0:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 979 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6701; /* *p iwmmxt_wpackhus */

            case 1:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 990 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6702; /* *p iwmmxt_wpackwus */

            case 2:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1001 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6703; /* *p iwmmxt_wpackdus */

            default:
              return -1;
            }

        case SS_PLUS:
          if (GET_MODE (x9) != E_V4HImode)
            return -1;
          x10 = XEXP (x9, 1);
          if (GET_CODE (x10) != ZERO_EXTEND
              || GET_MODE (x10) != E_V4HImode)
            return -1;
          x11 = XEXP (x10, 0);
          if (GET_CODE (x11) != VEC_SELECT
              || GET_MODE (x11) != E_V4QImode)
            return -1;
          x12 = XEXP (x11, 1);
          if (GET_CODE (x12) != PARALLEL
              || XVECLEN (x12, 0) != 4)
            return -1;
          x13 = XVECEXP (x12, 0, 0);
          if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x14 = XVECEXP (x12, 0, 1);
          if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
            return -1;
          x15 = XVECEXP (x12, 0, 2);
          if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
            return -1;
          x16 = XVECEXP (x12, 0, 3);
          if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
            return -1;
          x8 = XEXP (x6, 1);
          if (GET_CODE (x8) != CONST_VECTOR
              || XVECLEN (x8, 0) != 4
              || GET_MODE (x8) != E_V4QImode)
            return -1;
          x17 = XVECEXP (x8, 0, 0);
          if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x18 = XVECEXP (x8, 0, 1);
          if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x19 = XVECEXP (x8, 0, 2);
          if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x20 = XVECEXP (x8, 0, 3);
          if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
              || !register_operand (operands[0], E_V8QImode)
              || GET_MODE (x6) != E_V8QImode
              || GET_MODE (x7) != E_V4QImode)
            return -1;
          x21 = XEXP (x9, 0);
          operands[1] = x21;
          if (!register_operand (operands[1], E_V4HImode))
            return -1;
          x22 = XEXP (x11, 0);
          operands[2] = x22;
          if (!register_operand (operands[2], E_V8QImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 433 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6798; /* *p iwmmxt_waddbhusl */

        default:
          return -1;
        }

    case CONST_VECTOR:
      if (XVECLEN (x7, 0) != 4
          || GET_MODE (x7) != E_V4QImode)
        return -1;
      x23 = XVECEXP (x7, 0, 0);
      if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x24 = XVECEXP (x7, 0, 1);
      if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x25 = XVECEXP (x7, 0, 2);
      if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x26 = XVECEXP (x7, 0, 3);
      if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x8 = XEXP (x6, 1);
      if (GET_CODE (x8) != US_TRUNCATE
          || GET_MODE (x8) != E_V4QImode)
        return -1;
      x27 = XEXP (x8, 0);
      if (GET_CODE (x27) != SS_PLUS
          || GET_MODE (x27) != E_V4HImode)
        return -1;
      x28 = XEXP (x27, 1);
      if (pattern624 (x28, E_V4QImode, E_V4HImode, ZERO_EXTEND) != 0)
        return -1;
      x29 = XEXP (x28, 0);
      x30 = XEXP (x29, 1);
      if (GET_CODE (x30) != PARALLEL
          || XVECLEN (x30, 0) != 4)
        return -1;
      x31 = XVECEXP (x30, 0, 0);
      if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
        return -1;
      x32 = XVECEXP (x30, 0, 1);
      if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 5])
        return -1;
      x33 = XVECEXP (x30, 0, 2);
      if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 6])
        return -1;
      x34 = XVECEXP (x30, 0, 3);
      if (x34 != const_int_rtx[MAX_SAVED_CONST_INT + 7]
          || !register_operand (operands[0], E_V8QImode)
          || GET_MODE (x6) != E_V8QImode)
        return -1;
      x35 = XEXP (x27, 0);
      operands[1] = x35;
      if (!register_operand (operands[1], E_V4HImode))
        return -1;
      x36 = XEXP (x29, 0);
      operands[2] = x36;
      if (!register_operand (operands[2], E_V8QImode)
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 417 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6797; /* *p iwmmxt_waddbhusm */

    default:
      return -1;
    }
}

static int
recog_317 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != REG)
    return -1;
  x4 = XEXP (x2, 1);
  x5 = XEXP (x4, 0);
  switch (GET_CODE (x5))
    {
    case PLUS:
      if (GET_MODE (x5) != E_SImode
          || REGNO (x3) != 100)
        return -1;
      x6 = XEXP (x1, 0);
      operands[2] = x6;
      x7 = XEXP (x6, 0);
      operands[3] = x7;
      x8 = XEXP (x5, 0);
      operands[0] = x8;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x9 = XEXP (x5, 1);
      operands[1] = x9;
      if (!arm_add_operand (operands[1], E_SImode))
        return -1;
      x10 = XEXP (x4, 1);
      switch (GET_CODE (x10))
        {
        case CONST_INT:
          if (XWINT (x10, 0) == 0L
              && GET_MODE (x3) == E_CC_NZmode
              && GET_MODE (x4) == E_CC_NZmode
              && (
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1128 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM)))
            return 6354; /* *p *addsi3_compare0_scratch */
          break;

        case REG:
        case SUBREG:
          if (rtx_equal_p (x10, operands[0])
              && GET_MODE (x3) == E_CC_Cmode
              && GET_MODE (x4) == E_CC_Cmode
              && (
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1279 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return 6356; /* *p *compare_addsi2_op0 */
          break;

        default:
          break;
        }
      if (GET_MODE (x3) != E_CC_Cmode
          || GET_MODE (x4) != E_CC_Cmode
          || !rtx_equal_p (x10, operands[1])
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1302 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
        return -1;
      return 6357; /* *p *compare_addsi2_op1 */

    case NEG:
      if (GET_MODE (x5) != E_SImode
          || REGNO (x3) != 100
          || GET_MODE (x3) != E_CC_Zmode
          || GET_MODE (x4) != E_CC_Zmode)
        return -1;
      x10 = XEXP (x4, 1);
      if (!s_register_operand (x10, E_SImode))
        return -1;
      x8 = XEXP (x5, 0);
      switch (GET_CODE (x8))
        {
        case REG:
        case SUBREG:
          operands[0] = x8;
          if (!s_register_operand (operands[0], E_SImode))
            return -1;
          x6 = XEXP (x1, 0);
          operands[2] = x6;
          x7 = XEXP (x6, 0);
          operands[3] = x7;
          operands[1] = x10;
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1143 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 6355; /* *p *compare_negsi_si */

        case MULT:
        case ASHIFT:
        case ROTATE:
        case ASHIFTRT:
        case LSHIFTRT:
        case ROTATERT:
          operands[1] = x8;
          if (!shift_operator (operands[1], E_SImode))
            return -1;
          x6 = XEXP (x1, 0);
          operands[4] = x6;
          x7 = XEXP (x6, 0);
          operands[5] = x7;
          x11 = XEXP (x8, 0);
          operands[2] = x11;
          if (!s_register_operand (operands[2], E_SImode))
            return -1;
          x12 = XEXP (x8, 1);
          operands[3] = x12;
          if (!shift_amount_operand (operands[3], E_SImode))
            return -1;
          operands[0] = x10;
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 7911 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 6531; /* *p *arm_cmpsi_negshiftsi_si */

        default:
          return -1;
        }

    case ZERO_EXTRACT:
      if (GET_MODE (x5) != E_SImode)
        return -1;
      x10 = XEXP (x4, 1);
      if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
          || REGNO (x3) != 100
          || GET_MODE (x3) != E_CC_NZmode)
        return -1;
      x6 = XEXP (x1, 0);
      operands[3] = x6;
      x7 = XEXP (x6, 0);
      operands[4] = x7;
      if (GET_MODE (x4) != E_CC_NZmode)
        return -1;
      x8 = XEXP (x5, 0);
      operands[0] = x8;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x9 = XEXP (x5, 1);
      operands[1] = x9;
      if (!const_int_operand (operands[1], E_VOIDmode))
        return -1;
      x13 = XEXP (x5, 2);
      operands[2] = x13;
      if (!const_int_operand (operands[2], E_VOIDmode)
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3078 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
  && (INTVAL (operands[2]) >= 0 && INTVAL (operands[2]) < 32
      && INTVAL (operands[1]) > 0 
      && INTVAL (operands[1]) + (INTVAL (operands[2]) & 1) <= 8
      && INTVAL (operands[1]) + INTVAL (operands[2]) <= 32))))
        return -1;
      return 6398; /* *p *zeroextractsi_compare0_scratch */

    case REG:
    case SUBREG:
      operands[0] = x5;
      x10 = XEXP (x4, 1);
      switch (GET_CODE (x10))
        {
        case CONST_INT:
          if (XWINT (x10, 0) == 0L
              && REGNO (x3) == 100
              && GET_MODE (x3) == E_CC_Zmode)
            {
              x6 = XEXP (x1, 0);
              operands[1] = x6;
              x7 = XEXP (x6, 0);
              operands[2] = x7;
              if (GET_MODE (x4) == E_CC_Zmode
                  && s_register_operand (operands[0], E_QImode)
                  && (
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5818 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return 6448; /* *p *compareqi_eq0 */
            }
          break;

        case CONST_DOUBLE:
        case REG:
        case SUBREG:
          res = recog_304 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        default:
          break;
        }
      if (!s_register_operand (operands[0], E_SImode)
          || REGNO (x3) != 100
          || GET_MODE (x3) != E_CCmode)
        return -1;
      x6 = XEXP (x1, 0);
      operands[2] = x6;
      x7 = XEXP (x6, 0);
      operands[3] = x7;
      if (GET_MODE (x4) != E_CCmode)
        return -1;
      operands[1] = x10;
      if (!arm_add_operand (operands[1], E_SImode)
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 7863 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
        return -1;
      return 6530; /* *p *arm_cmpsi_insn */

    default:
      return -1;
    }
}

static int
recog_318 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x2, 0);
  operands[0] = x4;
  x5 = XEXP (x3, 0);
  switch (GET_CODE (x5))
    {
    case UNSPEC:
      if (XVECLEN (x5, 0) != 1
          || XINT (x5, 1) != 25
          || GET_MODE (x5) != E_HImode)
        return -1;
      x6 = XEXP (x1, 0);
      operands[2] = x6;
      x7 = XEXP (x6, 0);
      operands[3] = x7;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x8 = XVECEXP (x5, 0, 0);
      operands[1] = x8;
      if (!memory_operand (operands[1], E_HImode)
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5032 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(unaligned_access)))
        return -1;
      return 6431; /* *p unaligned_loadhiu */

    case REG:
    case SUBREG:
    case MEM:
      operands[1] = x5;
      x6 = XEXP (x1, 0);
      operands[2] = x6;
      x7 = XEXP (x6, 0);
      operands[3] = x7;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case E_HImode:
          if (!nonimmediate_operand (operands[1], E_HImode))
            return -1;
          if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5674 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch4 && !arm_arch6)))
            return 6442; /* *p *arm_zero_extendhisi2 */
          if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5685 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch6)))
            return 6443; /* *p *arm_zero_extendhisi2_v6 */
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1107 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_arch6)))
            return -1;
          return 6929; /* *p *thumb2_zero_extendhisi2_v6 */

        case E_QImode:
          if (!nonimmediate_operand (operands[1], E_QImode))
            return -1;
          if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5743 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && !arm_arch6)))
            return 6445; /* *p *arm_zero_extendqisi2 */
          if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5755 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch6)))
            return 6446; /* *p *arm_zero_extendqisi2_v6 */
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1120 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_arch6)))
            return -1;
          return 6930; /* *p thumb2_zero_extendqisi2_v6 */

        default:
          return -1;
        }

    case VEC_SELECT:
      x9 = XEXP (x5, 1);
      if (GET_CODE (x9) != PARALLEL
          || XVECLEN (x9, 0) != 1)
        return -1;
      x6 = XEXP (x1, 0);
      operands[3] = x6;
      x7 = XEXP (x6, 0);
      operands[4] = x7;
      if (!register_operand (operands[0], E_SImode))
        return -1;
      switch (pattern572 (x5))
        {
        case 0:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 725 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6671; /* *p iwmmxt_textrmub */

        case 1:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 747 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6673; /* *p iwmmxt_textrmuh */

        default:
          return -1;
        }

    case UNSPEC_VOLATILE:
      if (XVECLEN (x5, 0) != 1)
        return -1;
      x6 = XEXP (x1, 0);
      operands[2] = x6;
      x7 = XEXP (x6, 0);
      operands[3] = x7;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x8 = XVECEXP (x5, 0, 0);
      operands[1] = x8;
      switch (XINT (x5, 1))
        {
        case 20:
          switch (GET_MODE (x5))
            {
            case E_QImode:
              if (!mem_noofs_operand (operands[1], E_QImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 454 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH)))
                return -1;
              return 6955; /* *p arm_load_exclusiveqi */

            case E_HImode:
              if (!mem_noofs_operand (operands[1], E_HImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 454 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH)))
                return -1;
              return 6956; /* *p arm_load_exclusivehi */

            default:
              return -1;
            }

        case 23:
          switch (GET_MODE (x5))
            {
            case E_QImode:
              if (!mem_noofs_operand (operands[1], E_QImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 467 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ)))
                return -1;
              return 6957; /* *p arm_load_acquire_exclusiveqi */

            case E_HImode:
              if (!mem_noofs_operand (operands[1], E_HImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 467 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ)))
                return -1;
              return 6958; /* *p arm_load_acquire_exclusivehi */

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_319 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  operands[0] = x3;
  x4 = XEXP (x2, 1);
  x5 = XEXP (x4, 0);
  switch (GET_CODE (x5))
    {
    case REG:
    case SUBREG:
      operands[1] = x5;
      x6 = XEXP (x1, 0);
      operands[3] = x6;
      x7 = XEXP (x6, 0);
      operands[4] = x7;
      x8 = XEXP (x4, 1);
      switch (GET_CODE (x8))
        {
        case CONST_INT:
        case REG:
        case SUBREG:
          switch (pattern416 (x4))
            {
            case 0:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3009 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return -1;
              return 6397; /* *p *arm_andsi3_insn */

            case 1:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 83 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6621; /* *p iwmmxt_anddi3 */

            case 2:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 308 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6626; /* *p *andv2si3_iwmmxt */

            case 3:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 308 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6627; /* *p *andv4hi3_iwmmxt */

            case 4:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 308 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6628; /* *p *andv8qi3_iwmmxt */

            default:
              return -1;
            }

        case NOT:
          if (GET_MODE (x8) != E_DImode
              || !register_operand (operands[0], E_DImode)
              || GET_MODE (x4) != E_DImode
              || !register_operand (operands[1], E_DImode))
            return -1;
          x9 = XEXP (x8, 0);
          operands[2] = x9;
          if (!register_operand (operands[2], E_DImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 94 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6622; /* *p iwmmxt_nanddi3 */

        default:
          return -1;
        }

    case NOT:
      switch (pattern413 (x1))
        {
        case 0:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3591 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 6405; /* *p andsi_notsi_si */

        case 1:
          x10 = XEXP (x5, 0);
          x11 = XEXP (x10, 0);
          operands[2] = x11;
          if (!s_register_operand (operands[2], E_SImode))
            return -1;
          x12 = XEXP (x10, 1);
          operands[3] = x12;
          if (!shift_amount_operand (operands[3], E_SImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3603 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 6406; /* *p andsi_not_shiftsi_si */

        default:
          return -1;
        }

    case IOR:
      if (GET_MODE (x5) != E_SImode)
        return -1;
      x8 = XEXP (x4, 1);
      if (GET_CODE (x8) != NOT
          || GET_MODE (x8) != E_SImode)
        return -1;
      x6 = XEXP (x1, 0);
      operands[4] = x6;
      x7 = XEXP (x6, 0);
      operands[5] = x7;
      if (!s_register_operand (operands[0], E_SImode)
          || GET_MODE (x4) != E_SImode)
        return -1;
      x10 = XEXP (x5, 0);
      operands[1] = x10;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      x13 = XEXP (x5, 1);
      operands[2] = x13;
      if (!arm_rhs_operand (operands[2], E_SImode))
        return -1;
      x9 = XEXP (x8, 0);
      operands[3] = x9;
      if (!arm_rhs_operand (operands[3], E_SImode)
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3896 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
        return -1;
      return 6411; /* *p *andsi_iorsi3_notsi */

    case MULT:
      if (pattern414 (x1) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9669 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
        return -1;
      return 6542; /* *p *and_multsi */

    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      operands[2] = x5;
      if (pattern445 (x1) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9683 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && GET_CODE (operands[2]) != MULT)))
        return -1;
      return 6547; /* *p *and_shiftsi */

    default:
      return -1;
    }
}

static int
recog_320 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  operands[0] = x3;
  x4 = XEXP (x2, 1);
  x5 = XEXP (x4, 0);
  switch (GET_CODE (x5))
    {
    case UNSPEC:
      if (XVECLEN (x5, 0) != 1
          || XINT (x5, 1) != 25
          || GET_MODE (x5) != E_HImode)
        return -1;
      x6 = XEXP (x1, 0);
      operands[2] = x6;
      x7 = XEXP (x6, 0);
      operands[3] = x7;
      if (!s_register_operand (operands[0], E_SImode)
          || GET_MODE (x4) != E_SImode)
        return -1;
      x8 = XVECEXP (x5, 0, 0);
      operands[1] = x8;
      if (!memory_operand (operands[1], E_HImode)
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5022 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(unaligned_access && TARGET_32BIT)))
        return -1;
      return 6430; /* *p unaligned_loadhis */

    case REG:
    case SUBREG:
    case MEM:
      operands[1] = x5;
      x6 = XEXP (x1, 0);
      operands[2] = x6;
      x7 = XEXP (x6, 0);
      operands[3] = x7;
      switch (GET_MODE (operands[0]))
        {
        case E_SImode:
          if (!s_register_operand (operands[0], E_SImode)
              || GET_MODE (x4) != E_SImode)
            return -1;
          if (nonimmediate_operand (operands[1], E_HImode))
            {
              if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5913 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch4 && !arm_arch6)))
                return 6449; /* *p *arm_extendhisi2 */
              if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5926 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6)))
                return 6450; /* *p *arm_extendhisi2_v6 */
            }
          if (arm_reg_or_extendqisi_mem_op (operands[1], E_QImode))
            {
              if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6007 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch4 && !arm_arch6)))
                return 6452; /* *p *arm_extendqisi */
              if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6020 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch6)))
                return 6453; /* *p *arm_extendqisi_v6 */
            }
          if (!nonimmediate_operand (operands[1], E_QImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1094 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_arch6)))
            return -1;
          return 6928; /* *p *thumb2_extendqisi_v6 */

        case E_HImode:
          if (!s_register_operand (operands[0], E_HImode)
              || GET_MODE (x4) != E_HImode
              || !arm_extendqisi_mem_op (operands[1], E_QImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5970 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch4)))
            return -1;
          return 6451; /* *p *arm_extendqihi_insn */

        default:
          return -1;
        }

    case VEC_SELECT:
      x9 = XEXP (x5, 1);
      if (GET_CODE (x9) != PARALLEL
          || XVECLEN (x9, 0) != 1)
        return -1;
      x6 = XEXP (x1, 0);
      operands[3] = x6;
      x7 = XEXP (x6, 0);
      operands[4] = x7;
      if (!register_operand (operands[0], E_SImode)
          || GET_MODE (x4) != E_SImode)
        return -1;
      switch (pattern572 (x5))
        {
        case 0:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 736 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6672; /* *p iwmmxt_textrmsb */

        case 1:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 758 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6674; /* *p iwmmxt_textrmsh */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_321 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[4] = x2;
  x3 = XEXP (x2, 0);
  operands[5] = x3;
  x4 = XEXP (x1, 1);
  x5 = XEXP (x4, 0);
  operands[0] = x5;
  x6 = XEXP (x4, 1);
  x7 = XEXP (x6, 1);
  operands[2] = x7;
  x8 = XEXP (x6, 0);
  switch (GET_CODE (x8))
    {
    case REG:
    case SUBREG:
      operands[1] = x8;
      x9 = XEXP (x6, 2);
      switch (GET_CODE (x9))
        {
        case REG:
        case SUBREG:
          operands[3] = x9;
          switch (GET_MODE (operands[0]))
            {
            case E_SFmode:
              if (pattern586 (x6, E_SFmode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1365 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA )))
                return -1;
              return 6880; /* *p fmasf4 */

            case E_DFmode:
              if (pattern586 (x6, E_DFmode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && (
#line 1365 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE))))
                return -1;
              return 6881; /* *p fmadf4 */

            default:
              return -1;
            }

        case NEG:
          x10 = XEXP (x9, 0);
          operands[3] = x10;
          switch (GET_MODE (operands[0]))
            {
            case E_SFmode:
              if (pattern587 (x6, E_SFmode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1423 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA )))
                return -1;
              return 6884; /* *p *fnmsubsf4 */

            case E_DFmode:
              if (pattern587 (x6, E_DFmode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && (
#line 1423 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE))))
                return -1;
              return 6885; /* *p *fnmsubdf4 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case NEG:
      x11 = XEXP (x8, 0);
      operands[1] = x11;
      x9 = XEXP (x6, 2);
      switch (GET_CODE (x9))
        {
        case REG:
        case SUBREG:
          operands[3] = x9;
          switch (GET_MODE (operands[0]))
            {
            case E_SFmode:
              if (pattern588 (x6, E_SFmode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1401 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA )))
                return -1;
              return 6882; /* *p *fmsubsf4 */

            case E_DFmode:
              if (pattern588 (x6, E_DFmode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && (
#line 1401 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE))))
                return -1;
              return 6883; /* *p *fmsubdf4 */

            default:
              return -1;
            }

        case NEG:
          x10 = XEXP (x9, 0);
          operands[3] = x10;
          switch (GET_MODE (operands[0]))
            {
            case E_SFmode:
              if (pattern589 (x6, E_SFmode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1446 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA )))
                return -1;
              return 6886; /* *p *fnmaddsf4 */

            case E_DFmode:
              if (pattern589 (x6, E_DFmode) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && (
#line 1446 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE))))
                return -1;
              return 6887; /* *p *fnmadddf4 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_322 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) != PARALLEL)
    return -1;
  x5 = XEXP (x2, 0);
  operands[0] = x5;
  x6 = XEXP (x3, 0);
  switch (GET_CODE (x6))
    {
    case REG:
    case SUBREG:
      operands[1] = x6;
      if (!register_operand (operands[1], E_V2SImode)
          || XVECLEN (x4, 0) != 1)
        return -1;
      x7 = XEXP (x1, 0);
      operands[3] = x7;
      x8 = XEXP (x7, 0);
      operands[4] = x8;
      if (!register_operand (operands[0], E_SImode)
          || GET_MODE (x3) != E_SImode)
        return -1;
      x9 = XVECEXP (x4, 0, 0);
      operands[2] = x9;
      if (!immediate_operand (operands[2], E_SImode)
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 770 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6675; /* *p iwmmxt_textrmw */

    case ZERO_EXTEND:
      switch (pattern449 (x1))
        {
        case 0:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1141 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6710; /* *p iwmmxt_wunpckehub */

        case 1:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1209 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6716; /* *p iwmmxt_wunpckelub */

        case 2:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1152 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6711; /* *p iwmmxt_wunpckehuh */

        case 3:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1220 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6717; /* *p iwmmxt_wunpckeluh */

        case 4:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1163 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6712; /* *p iwmmxt_wunpckehuw */

        case 5:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1231 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6718; /* *p iwmmxt_wunpckeluw */

        default:
          return -1;
        }

    case SIGN_EXTEND:
      switch (pattern449 (x1))
        {
        case 0:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1175 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6713; /* *p iwmmxt_wunpckehsb */

        case 1:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1243 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6719; /* *p iwmmxt_wunpckelsb */

        case 2:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1186 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6714; /* *p iwmmxt_wunpckehsh */

        case 3:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1254 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6720; /* *p iwmmxt_wunpckelsh */

        case 4:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1197 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6715; /* *p iwmmxt_wunpckehsw */

        case 5:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1265 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6721; /* *p iwmmxt_wunpckelsw */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_323 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  switch (GET_CODE (x3))
    {
    case REG:
    case SUBREG:
    case MEM:
      res = recog_297 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    case ZERO_EXTRACT:
      res = recog_298 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    case PC:
      x4 = XEXP (x1, 0);
      operands[1] = x4;
      x5 = XEXP (x4, 0);
      operands[2] = x5;
      x6 = XEXP (x2, 1);
      operands[0] = x6;
      if (s_register_operand (operands[0], E_SImode)
          && (
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9612 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM)))
        return 6536; /* *p *arm_indirect_jump */
      if (memory_operand (operands[0], E_SImode)
          && (
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9621 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM)))
        return 6537; /* *p *load_indirect_jump */
      break;

    default:
      break;
    }
  x6 = XEXP (x2, 1);
  switch (GET_CODE (x6))
    {
    case CONST_INT:
      res = recog_299 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    case MEM:
      res = recog_300 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    case LABEL_REF:
      if (GET_CODE (x3) == PC)
        {
          x4 = XEXP (x1, 0);
          operands[1] = x4;
          x5 = XEXP (x4, 0);
          operands[2] = x5;
          x7 = XEXP (x6, 0);
          operands[0] = x7;
          if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 8577 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return 6532; /* *p *arm_jump */
        }
      break;

    case CONST_VECTOR:
      res = recog_301 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    case SUBREG:
      res = recog_302 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    default:
      break;
    }
  operands[1] = x6;
  if (general_operand (operands[1], E_SImode))
    {
      x4 = XEXP (x1, 0);
      operands[2] = x4;
      x5 = XEXP (x4, 0);
      operands[3] = x5;
      operands[0] = x3;
      if (nonimmediate_operand (operands[0], E_SImode))
        {
          if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 238 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_ARM && TARGET_HARD_FLOAT
   && (   s_register_operand (operands[0], SImode)
       || s_register_operand (operands[1], SImode)))))
            return 6848; /* *p *arm_movsi_vfp */
          if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 283 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && TARGET_VFP_BASE
   && (   s_register_operand (operands[0], SImode)
       || s_register_operand (operands[1], SImode)))))
            return 6849; /* *p *thumb2_movsi_vfp */
        }
    }
  operands[0] = x3;
  if (low_register_operand (operands[0], E_SImode)
      && GET_CODE (x6) == MEM
      && pattern394 (x6, REG, E_SImode, POST_INC) == 0)
    {
      x7 = XEXP (x6, 0);
      x8 = XEXP (x7, 0);
      if (REGNO (x8) == 13
          && GET_MODE (x8) == E_SImode)
        {
          x4 = XEXP (x1, 0);
          operands[1] = x4;
          x5 = XEXP (x4, 0);
          operands[2] = x5;
          if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 223 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && (reload_in_progress || reload_completed))))
            return 6925; /* *p *thumb2_pop_single */
        }
    }
  if (!nonimmediate_operand (operands[0], E_SImode))
    return -1;
  x4 = XEXP (x1, 0);
  operands[2] = x4;
  x5 = XEXP (x4, 0);
  operands[3] = x5;
  operands[1] = x6;
  if (!general_operand (operands[1], E_SImode)
      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 238 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !TARGET_IWMMXT && !TARGET_HARD_FLOAT
   && (   register_operand (operands[0], SImode)
       || register_operand (operands[1], SImode)))))
    return -1;
  return 6926; /* *p *thumb2_movsi_insn */
}

static int
recog_324 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  operands[0] = x3;
  x4 = XEXP (x2, 1);
  x5 = XEXP (x4, 0);
  switch (GET_CODE (x5))
    {
    case REG:
    case SUBREG:
      operands[1] = x5;
      x6 = XEXP (x1, 0);
      operands[2] = x6;
      x7 = XEXP (x6, 0);
      operands[3] = x7;
      switch (GET_MODE (operands[0]))
        {
        case E_SImode:
          if (!s_register_operand (operands[0], E_SImode)
              || GET_MODE (x4) != E_SImode
              || !s_register_operand (operands[1], E_SImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5165 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 6438; /* *p *arm_negsi2 */

        case E_SFmode:
          if (!s_register_operand (operands[0], E_SFmode)
              || GET_MODE (x4) != E_SFmode
              || !s_register_operand (operands[1], E_SFmode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 890 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 6858; /* *p *negsf2_vfp */

        case E_DFmode:
          if (!s_register_operand (operands[0], E_DFmode)
              || GET_MODE (x4) != E_DFmode
              || !s_register_operand (operands[1], E_DFmode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 901 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 6859; /* *p *negdf2_vfp */

        default:
          return -1;
        }

    case MULT:
      x6 = XEXP (x1, 0);
      operands[3] = x6;
      x7 = XEXP (x6, 0);
      operands[4] = x7;
      x8 = XEXP (x5, 0);
      operands[1] = x8;
      x9 = XEXP (x5, 1);
      operands[2] = x9;
      switch (GET_MODE (operands[0]))
        {
        case E_SFmode:
          if (pattern555 (x4, E_SFmode) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1163 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 6869; /* *p *negmulsf3_vfp */

        case E_DFmode:
          if (pattern555 (x4, E_DFmode) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1184 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 6871; /* *p *negmuldf3_vfp */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_325 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  operands[0] = x3;
  x4 = XEXP (x2, 1);
  x5 = XEXP (x4, 0);
  switch (GET_CODE (x5))
    {
    case REG:
    case SUBREG:
      operands[1] = x5;
      x6 = XEXP (x4, 1);
      switch (GET_CODE (x6))
        {
        case CONST_INT:
          x7 = XEXP (x1, 0);
          operands[2] = x7;
          x8 = XEXP (x7, 0);
          operands[3] = x8;
          if (!s_register_operand (operands[0], E_SImode)
              || GET_MODE (x4) != E_SImode
              || !s_register_operand (operands[1], E_SImode))
            return -1;
          switch (XWINT (x6, 0))
            {
            case 0L:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4053 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return -1;
              return 6412; /* *p *smax_0 */

            case -1L:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4063 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return -1;
              return 6413; /* *p *smax_m1 */

            default:
              return -1;
            }

        case REG:
        case SUBREG:
          switch (pattern476 (x1))
            {
            case 0:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 903 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6686; /* *p *smaxv2si3_iwmmxt */

            case 1:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 903 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6687; /* *p *smaxv4hi3_iwmmxt */

            case 2:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 903 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6688; /* *p *smaxv8qi3_iwmmxt */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case SMIN:
      switch (pattern418 (x1))
        {
        case 0:
          if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4463 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6 && !ARM_Q_BIT_READ
   && arm_sat_operator_match (operands[2], operands[1], NULL, NULL))))
            return 6423; /* *p satsi_smax */
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4463 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6 && ARM_Q_BIT_READ
   && arm_sat_operator_match (operands[2], operands[1], NULL, NULL))))
            return -1;
          return 6424; /* *p satsi_smax_setq */

        case 1:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4489 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6 && !ARM_Q_BIT_READ
   && arm_sat_operator_match (operands[2], operands[1], NULL, NULL))))
            return -1;
          return 6426; /* *p *satsi_smax_shift */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_326 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  operands[0] = x3;
  x4 = XEXP (x2, 1);
  x5 = XEXP (x4, 0);
  switch (GET_CODE (x5))
    {
    case REG:
    case SUBREG:
      operands[1] = x5;
      x6 = XEXP (x4, 1);
      switch (GET_CODE (x6))
        {
        case CONST_INT:
          if (XWINT (x6, 0) != 0L)
            return -1;
          x7 = XEXP (x1, 0);
          operands[2] = x7;
          x8 = XEXP (x7, 0);
          operands[3] = x8;
          if (!s_register_operand (operands[0], E_SImode)
              || GET_MODE (x4) != E_SImode
              || !s_register_operand (operands[1], E_SImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4113 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 6414; /* *p *smin_0 */

        case REG:
        case SUBREG:
          switch (pattern476 (x1))
            {
            case 0:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 923 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6692; /* *p *sminv2si3_iwmmxt */

            case 1:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 923 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6693; /* *p *sminv4hi3_iwmmxt */

            case 2:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 923 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6694; /* *p *sminv8qi3_iwmmxt */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case SMAX:
      switch (pattern418 (x1))
        {
        case 0:
          if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4463 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6 && !ARM_Q_BIT_READ
   && arm_sat_operator_match (operands[1], operands[2], NULL, NULL))))
            return 6421; /* *p satsi_smin */
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4463 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6 && ARM_Q_BIT_READ
   && arm_sat_operator_match (operands[1], operands[2], NULL, NULL))))
            return -1;
          return 6422; /* *p satsi_smin_setq */

        case 1:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4489 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6 && !ARM_Q_BIT_READ
   && arm_sat_operator_match (operands[1], operands[2], NULL, NULL))))
            return -1;
          return 6425; /* *p *satsi_smin_shift */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_327 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != FIX)
    return -1;
  x5 = XEXP (x2, 0);
  operands[0] = x5;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x6 = XEXP (x4, 0);
  switch (GET_CODE (x6))
    {
    case REG:
    case SUBREG:
      operands[1] = x6;
      x7 = XEXP (x1, 0);
      operands[2] = x7;
      x8 = XEXP (x7, 0);
      operands[3] = x8;
      switch (GET_MODE (x4))
        {
        case E_SFmode:
          if (!s_register_operand (operands[1], E_SFmode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1512 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 6894; /* *p *truncsisf2_vfp */

        case E_DFmode:
          if (!s_register_operand (operands[1], E_DFmode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1521 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 6895; /* *p *truncsidf2_vfp */

        default:
          return -1;
        }

    case MULT:
      if (GET_MODE (x6) != E_SFmode)
        return -1;
      x7 = XEXP (x1, 0);
      operands[3] = x7;
      x8 = XEXP (x7, 0);
      operands[4] = x8;
      if (GET_MODE (x4) != E_SFmode)
        return -1;
      x9 = XEXP (x6, 0);
      operands[1] = x9;
      if (!s_register_operand (operands[1], E_SFmode))
        return -1;
      x10 = XEXP (x6, 1);
      operands[2] = x10;
      if (!const_double_vcvt_power_of_two (operands[2], E_VOIDmode)
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1895 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP3 && !flag_rounding_math)))
        return -1;
      return 6916; /* *p *combine_vcvtf2i */

    default:
      return -1;
    }
}

static int
recog_328 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XVECEXP (x2, 0, 0);
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) != MULT
      || GET_MODE (x4) != E_SImode)
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  if (GET_CODE (x5) != SET)
    return -1;
  x6 = XEXP (x5, 1);
  if (pattern590 (x6, MULT, E_DImode, LSHIFTRT, TRUNCATE) != 0)
    return -1;
  x7 = XEXP (x6, 0);
  x8 = XEXP (x7, 1);
  if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 32])
    return -1;
  x9 = XEXP (x4, 0);
  operands[2] = x9;
  if (!s_register_operand (operands[2], E_SImode))
    return -1;
  x10 = XEXP (x4, 1);
  operands[3] = x10;
  if (!s_register_operand (operands[3], E_SImode))
    return -1;
  x11 = XEXP (x5, 0);
  operands[1] = x11;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x12 = XEXP (x7, 0);
  x13 = XEXP (x12, 0);
  if (GET_MODE (x13) != E_DImode)
    return -1;
  x14 = XEXP (x12, 1);
  if (GET_MODE (x14) != E_DImode)
    return -1;
  switch (GET_CODE (x13))
    {
    case SIGN_EXTEND:
      if (GET_CODE (x14) != SIGN_EXTEND)
        return -1;
      x15 = XEXP (x13, 0);
      if (!rtx_equal_p (x15, operands[2]))
        return -1;
      x16 = XEXP (x14, 0);
      if (!rtx_equal_p (x16, operands[3])
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2430 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
        return -1;
      return 6374; /* *p smull */

    case ZERO_EXTEND:
      if (GET_CODE (x14) != ZERO_EXTEND)
        return -1;
      x15 = XEXP (x13, 0);
      if (!rtx_equal_p (x15, operands[2]))
        return -1;
      x16 = XEXP (x14, 0);
      if (!rtx_equal_p (x16, operands[3])
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2430 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
        return -1;
      return 6375; /* *p umull */

    default:
      return -1;
    }
}

static int
recog_329 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  operands[5] = x3;
  x4 = XEXP (x1, 1);
  x5 = XVECEXP (x4, 0, 0);
  x6 = XEXP (x5, 0);
  operands[0] = x6;
  if (s_register_operand (operands[0], E_SImode))
    {
      res = recog_328 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  if (!low_register_operand (operands[0], E_SImode))
    return -1;
  x7 = XVECEXP (x4, 0, 1);
  if (pattern504 (x7) != 0)
    return -1;
  x8 = XEXP (x5, 1);
  operands[3] = x8;
  if (!shift_operator (operands[3], E_SImode))
    return -1;
  x9 = XEXP (x8, 0);
  operands[1] = x9;
  if (!low_register_operand (operands[1], E_SImode))
    return -1;
  x10 = XEXP (x8, 1);
  operands[2] = x10;
  if (!low_reg_or_int_operand (operands[2], E_SImode)
      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1271 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed
   && ((GET_CODE(operands[3]) != ROTATE && GET_CODE(operands[3]) != ROTATERT)
       || REG_P (operands[2])))))
    return -1;
  return 6932; /* *p *thumb2_shiftsi3_short */
}

static int
recog_330 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24, x25;
  rtx x26, x27, x28;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XVECEXP (x2, 0, 0);
  x4 = XEXP (x3, 1);
  x5 = XEXP (x4, 0);
  if (GET_CODE (x5) != MULT
      || GET_MODE (x5) != E_SImode)
    return -1;
  x6 = XVECEXP (x2, 0, 1);
  if (GET_CODE (x6) != SET)
    return -1;
  x7 = XEXP (x4, 1);
  if (!s_register_operand (x7, E_SImode))
    return -1;
  x8 = XEXP (x5, 0);
  switch (GET_CODE (x8))
    {
    case REG:
    case SUBREG:
      operands[4] = x8;
      if (!s_register_operand (operands[4], E_SImode))
        return -1;
      x9 = XEXP (x6, 1);
      if (pattern590 (x9, LSHIFTRT, E_SImode, TRUNCATE, PLUS) != 0)
        return -1;
      x10 = XEXP (x9, 0);
      x11 = XEXP (x10, 0);
      x12 = XEXP (x11, 0);
      if (GET_CODE (x12) != PLUS
          || GET_MODE (x12) != E_DImode)
        return -1;
      x13 = XEXP (x12, 0);
      if (GET_CODE (x13) != MULT
          || GET_MODE (x13) != E_DImode)
        return -1;
      x14 = XEXP (x12, 1);
      if (GET_CODE (x14) != ZERO_EXTEND
          || GET_MODE (x14) != E_DImode)
        return -1;
      x15 = XEXP (x11, 1);
      if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 32])
        return -1;
      x16 = XEXP (x1, 0);
      operands[6] = x16;
      x17 = XEXP (x16, 0);
      operands[7] = x17;
      x18 = XEXP (x5, 1);
      operands[5] = x18;
      if (!s_register_operand (operands[5], E_SImode))
        return -1;
      operands[1] = x7;
      x19 = XEXP (x6, 0);
      operands[2] = x19;
      if (!s_register_operand (operands[2], E_SImode))
        return -1;
      x20 = XEXP (x13, 0);
      if (GET_MODE (x20) != E_DImode)
        return -1;
      x21 = XEXP (x13, 1);
      if (GET_MODE (x21) != E_DImode)
        return -1;
      x22 = XEXP (x9, 1);
      operands[3] = x22;
      if (!s_register_operand (operands[3], E_SImode))
        return -1;
      x23 = XEXP (x14, 0);
      if (!rtx_equal_p (x23, operands[1]))
        return -1;
      switch (GET_CODE (x20))
        {
        case SIGN_EXTEND:
          if (GET_CODE (x21) != SIGN_EXTEND)
            return -1;
          x24 = XEXP (x20, 0);
          if (!rtx_equal_p (x24, operands[4]))
            return -1;
          x25 = XEXP (x21, 0);
          if (!rtx_equal_p (x25, operands[5])
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 6376; /* *p smlal */

        case ZERO_EXTEND:
          if (GET_CODE (x21) != ZERO_EXTEND)
            return -1;
          x24 = XEXP (x20, 0);
          if (!rtx_equal_p (x24, operands[4]))
            return -1;
          x25 = XEXP (x21, 0);
          if (!rtx_equal_p (x25, operands[5])
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 6377; /* *p umlal */

        default:
          return -1;
        }

    case SIGN_EXTEND:
      if (GET_MODE (x8) != E_SImode)
        return -1;
      x18 = XEXP (x5, 1);
      if (GET_CODE (x18) != SIGN_EXTEND
          || GET_MODE (x18) != E_SImode
          || pattern619 (x1, E_HImode) != 0)
        return -1;
      x26 = XEXP (x18, 0);
      operands[2] = x26;
      if (!s_register_operand (operands[2], E_HImode))
        return -1;
      operands[3] = x7;
      if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2604 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY)))
        return -1;
      return 6385; /* *p arm_smlabb_setq */

    case ASHIFTRT:
      if (GET_MODE (x8) != E_SImode)
        return -1;
      x27 = XEXP (x8, 1);
      if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 16]
          || pattern619 (x1, E_SImode) != 0)
        return -1;
      x18 = XEXP (x5, 1);
      if (GET_MODE (x18) != E_SImode)
        return -1;
      operands[3] = x7;
      switch (GET_CODE (x18))
        {
        case SIGN_EXTEND:
          x26 = XEXP (x18, 0);
          operands[2] = x26;
          if (!s_register_operand (operands[2], E_HImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2652 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY)))
            return -1;
          return 6387; /* *p arm_smlatb_setq */

        case ASHIFTRT:
          x28 = XEXP (x18, 1);
          if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
            return -1;
          x26 = XEXP (x18, 0);
          operands[2] = x26;
          if (!s_register_operand (operands[2], E_SImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2702 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY)))
            return -1;
          return 6389; /* *p arm_smlatt_setq */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_331 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XVECEXP (x2, 0, 0);
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) == PLUS
      && GET_MODE (x4) == E_SImode)
    {
      res = recog_330 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  x5 = XVECEXP (x2, 0, 1);
  if (GET_CODE (x5) != CLOBBER)
    return -1;
  x6 = XEXP (x1, 0);
  operands[5] = x6;
  x7 = XEXP (x6, 0);
  operands[6] = x7;
  operands[1] = x4;
  if (shiftable_operator (operands[1], E_SImode))
    {
      x8 = XEXP (x4, 0);
      operands[2] = x8;
      if (memory_operand (operands[2], E_SImode))
        {
          x9 = XEXP (x4, 1);
          operands[3] = x9;
          if (memory_operand (operands[3], E_SImode))
            {
              x10 = XEXP (x5, 0);
              operands[4] = x10;
              if (scratch_operand (operands[4], E_SImode)
                  && (
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 11455 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && adjacent_mem_locations (operands[2], operands[3]))))
                return 6549; /* *p *arith_adjacentmem */
            }
        }
    }
  x10 = XEXP (x5, 0);
  if (GET_CODE (x10) != REG
      || REGNO (x10) != 100
      || GET_MODE (x10) != E_CCmode)
    return -1;
  operands[4] = x6;
  operands[5] = x7;
  operands[3] = x4;
  if (!thumb_16bit_operator (operands[3], E_SImode))
    return -1;
  x8 = XEXP (x4, 0);
  operands[1] = x8;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x9 = XEXP (x4, 1);
  operands[2] = x9;
  if (!s_register_operand (operands[2], E_SImode)
      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1256 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed
   && GET_CODE(operands[3]) != PLUS
   && GET_CODE(operands[3]) != MINUS)))
    return -1;
  return 6931; /* *p *thumb2_alusi3_short */
}

static int
recog_332 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XVECEXP (x2, 0, 1);
  x4 = XEXP (x3, 1);
  x5 = XEXP (x4, 0);
  if (GET_CODE (x5) != PLUS
      || GET_MODE (x5) != E_SImode)
    return -1;
  x6 = XEXP (x1, 0);
  operands[5] = x6;
  x7 = XEXP (x6, 0);
  operands[6] = x7;
  x8 = XVECEXP (x2, 0, 0);
  x9 = XEXP (x8, 1);
  x10 = XEXP (x9, 0);
  x11 = XEXP (x10, 0);
  operands[1] = x11;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x12 = XEXP (x3, 0);
  operands[3] = x12;
  x13 = XEXP (x5, 1);
  operands[4] = x13;
  if (!const_int_operand (operands[4], E_SImode))
    return -1;
  x14 = XEXP (x5, 0);
  if (!rtx_equal_p (x14, operands[1])
      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 12617 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_LDRD && TARGET_THUMB2 && reload_completed
     && ((INTVAL (operands[2]) + 4) == INTVAL (operands[4]))
     && (operands_ok_ldrd_strd (operands[0], operands[3],
                                  operands[1], INTVAL (operands[2]),
                                  false, true)))))
    return -1;
  return 6559; /* *p *thumb2_ldrd */
}

static int
recog_333 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XVECEXP (x2, 0, 0);
  x4 = XEXP (x3, 1);
  if (GET_MODE (x4) != E_SImode)
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  if (GET_CODE (x5) != SET)
    return -1;
  x6 = XEXP (x5, 1);
  if (GET_CODE (x6) != MEM
      || GET_MODE (x6) != E_SImode)
    return -1;
  x7 = XEXP (x3, 0);
  operands[0] = x7;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x8 = XEXP (x5, 0);
  if (!s_register_operand (x8, E_SImode))
    return -1;
  x9 = XEXP (x4, 0);
  switch (GET_CODE (x9))
    {
    case PLUS:
      if (GET_MODE (x9) != E_SImode)
        return -1;
      x10 = XEXP (x9, 1);
      if (GET_CODE (x10) != CONST_INT)
        return -1;
      operands[2] = x10;
      if (ldrd_strd_offset_operand (operands[2], E_SImode))
        {
          res = recog_332 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      if (XWINT (x10, 0) != -4L)
        return -1;
      x11 = XEXP (x1, 0);
      operands[3] = x11;
      x12 = XEXP (x11, 0);
      operands[4] = x12;
      x13 = XEXP (x9, 0);
      operands[1] = x13;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      operands[2] = x8;
      x14 = XEXP (x6, 0);
      if (!rtx_equal_p (x14, operands[1])
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 12645 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_LDRD && TARGET_THUMB2 && reload_completed
     && (operands_ok_ldrd_strd (operands[0], operands[2],
                                  operands[1], -4, false, true)))))
        return -1;
      return 6561; /* *p *thumb2_ldrd_base_neg */

    case REG:
    case SUBREG:
      operands[1] = x9;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      x14 = XEXP (x6, 0);
      if (GET_CODE (x14) != PLUS
          || GET_MODE (x14) != E_SImode)
        return -1;
      x15 = XEXP (x14, 1);
      if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
        return -1;
      x11 = XEXP (x1, 0);
      operands[3] = x11;
      x12 = XEXP (x11, 0);
      operands[4] = x12;
      operands[2] = x8;
      x16 = XEXP (x14, 0);
      if (!rtx_equal_p (x16, operands[1])
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 12632 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_LDRD && TARGET_THUMB2 && reload_completed
     && (operands_ok_ldrd_strd (operands[0], operands[2],
                                  operands[1], 0, false, true)))))
        return -1;
      return 6560; /* *p *thumb2_ldrd_base */

    default:
      return -1;
    }
}

static int
recog_334 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XVECEXP (x2, 0, 1);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 0);
  if (GET_CODE (x5) != PLUS
      || GET_MODE (x5) != E_SImode)
    return -1;
  x6 = XEXP (x1, 0);
  operands[5] = x6;
  x7 = XEXP (x6, 0);
  operands[6] = x7;
  x8 = XVECEXP (x2, 0, 0);
  x9 = XEXP (x8, 0);
  x10 = XEXP (x9, 0);
  x11 = XEXP (x10, 0);
  operands[0] = x11;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x12 = XEXP (x8, 1);
  operands[2] = x12;
  x13 = XEXP (x5, 1);
  operands[3] = x13;
  if (!const_int_operand (operands[3], E_SImode))
    return -1;
  x14 = XEXP (x3, 1);
  operands[4] = x14;
  x15 = XEXP (x5, 0);
  if (!rtx_equal_p (x15, operands[0])
      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 12659 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_LDRD && TARGET_THUMB2 && reload_completed
     && ((INTVAL (operands[1]) + 4) == INTVAL (operands[3]))
     && (operands_ok_ldrd_strd (operands[2], operands[4],
                                  operands[0], INTVAL (operands[1]),
                                  false, false)))))
    return -1;
  return 6562; /* *p *thumb2_strd */
}

static int
recog_335 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XVECEXP (x2, 0, 0);
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != MEM
      || GET_MODE (x4) != E_SImode)
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  if (GET_CODE (x5) != SET)
    return -1;
  x6 = XEXP (x5, 0);
  if (GET_CODE (x6) != MEM
      || GET_MODE (x6) != E_SImode)
    return -1;
  x7 = XEXP (x5, 1);
  if (!s_register_operand (x7, E_SImode))
    return -1;
  x8 = XEXP (x4, 0);
  switch (GET_CODE (x8))
    {
    case PLUS:
      if (GET_MODE (x8) != E_SImode)
        return -1;
      x9 = XEXP (x8, 1);
      if (GET_CODE (x9) != CONST_INT)
        return -1;
      operands[1] = x9;
      if (ldrd_strd_offset_operand (operands[1], E_SImode))
        {
          res = recog_334 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      if (XWINT (x9, 0) != -4L)
        return -1;
      x10 = XEXP (x1, 0);
      operands[3] = x10;
      x11 = XEXP (x10, 0);
      operands[4] = x11;
      x12 = XEXP (x8, 0);
      operands[0] = x12;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x13 = XEXP (x3, 1);
      operands[1] = x13;
      operands[2] = x7;
      x14 = XEXP (x6, 0);
      if (!rtx_equal_p (x14, operands[0])
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 12687 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_LDRD && TARGET_THUMB2 && reload_completed
     && (operands_ok_ldrd_strd (operands[1], operands[2],
                                  operands[0], -4, false, false)))))
        return -1;
      return 6564; /* *p *thumb2_strd_base_neg */

    case REG:
    case SUBREG:
      operands[0] = x8;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x14 = XEXP (x6, 0);
      if (GET_CODE (x14) != PLUS
          || GET_MODE (x14) != E_SImode)
        return -1;
      x15 = XEXP (x14, 1);
      if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
        return -1;
      x10 = XEXP (x1, 0);
      operands[3] = x10;
      x11 = XEXP (x10, 0);
      operands[4] = x11;
      x13 = XEXP (x3, 1);
      operands[1] = x13;
      operands[2] = x7;
      x16 = XEXP (x14, 0);
      if (!rtx_equal_p (x16, operands[0])
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 12674 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_LDRD && TARGET_THUMB2 && reload_completed
     && (operands_ok_ldrd_strd (operands[1], operands[2],
                                  operands[0], 0, false, false)))))
        return -1;
      return 6563; /* *p *thumb2_strd_base */

    default:
      return -1;
    }
}

static int
recog_336 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XVECEXP (x2, 0, 0);
  x4 = XEXP (x3, 1);
  if (s_register_operand (x4, E_SImode))
    {
      res = recog_335 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  if (GET_CODE (x4) != SUBREG
      || maybe_ne (SUBREG_BYTE (x4), 0)
      || GET_MODE (x4) != E_CCmode)
    return -1;
  x5 = XEXP (x4, 0);
  if (GET_CODE (x5) != UNSPEC)
    return -1;
  x6 = XEXP (x3, 0);
  if (GET_CODE (x6) != REG
      || REGNO (x6) != 100
      || GET_MODE (x6) != E_CCmode)
    return -1;
  x7 = XVECEXP (x2, 0, 1);
  if (GET_CODE (x7) != UNSPEC
      || XVECLEN (x7, 0) != 1
      || GET_MODE (x7) != E_CCmode)
    return -1;
  x8 = XVECEXP (x7, 0, 0);
  if (GET_CODE (x8) != REG
      || REGNO (x8) != 15
      || GET_MODE (x8) != E_SImode)
    return -1;
  switch (XVECLEN (x5, 0))
    {
    case 1:
      x9 = XVECEXP (x5, 0, 0);
      if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x10 = XEXP (x1, 0);
      operands[0] = x10;
      x11 = XEXP (x10, 0);
      operands[1] = x11;
      switch (XINT (x5, 1))
        {
        case 116:
          if (XINT (x7, 1) != 116)
            return -1;
          switch (GET_MODE (x5))
            {
            case E_V2SImode:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 868 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6824; /* *p iwmmxt_tandcv2si3 */

            case E_V4HImode:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 868 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6825; /* *p iwmmxt_tandcv4hi3 */

            case E_V8QImode:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 868 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6826; /* *p iwmmxt_tandcv8qi3 */

            default:
              return -1;
            }

        case 117:
          if (XINT (x7, 1) != 117)
            return -1;
          switch (GET_MODE (x5))
            {
            case E_V2SImode:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 878 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6827; /* *p iwmmxt_torcv2si3 */

            case E_V4HImode:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 878 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6828; /* *p iwmmxt_torcv4hi3 */

            case E_V8QImode:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 878 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6829; /* *p iwmmxt_torcv8qi3 */

            default:
              return -1;
            }

        case 118:
          if (XINT (x7, 1) != 118)
            return -1;
          switch (GET_MODE (x5))
            {
            case E_V2SImode:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 888 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6830; /* *p iwmmxt_torvscv2si3 */

            case E_V4HImode:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 888 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6831; /* *p iwmmxt_torvscv4hi3 */

            case E_V8QImode:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 888 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6832; /* *p iwmmxt_torvscv8qi3 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 2:
      if (XINT (x5, 1) != 119)
        return -1;
      x9 = XVECEXP (x5, 0, 0);
      if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
          || XINT (x7, 1) != 119)
        return -1;
      x10 = XEXP (x1, 0);
      operands[1] = x10;
      x11 = XEXP (x10, 0);
      operands[2] = x11;
      x12 = XVECEXP (x5, 0, 1);
      operands[0] = x12;
      if (!immediate_operand (operands[0], E_SImode))
        return -1;
      switch (GET_MODE (x5))
        {
        case E_V2SImode:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 899 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6833; /* *p iwmmxt_textrcv2si3 */

        case E_V4HImode:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 899 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6834; /* *p iwmmxt_textrcv4hi3 */

        case E_V8QImode:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 899 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6835; /* *p iwmmxt_textrcv8qi3 */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_337 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XVECEXP (x2, 0, 1);
  if (GET_CODE (x3) != SET)
    return -1;
  x4 = XEXP (x1, 0);
  operands[4] = x4;
  x5 = XEXP (x4, 0);
  operands[5] = x5;
  x6 = XVECEXP (x2, 0, 0);
  x7 = XEXP (x6, 0);
  operands[0] = x7;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x8 = XEXP (x3, 0);
  operands[1] = x8;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x9 = XEXP (x3, 1);
  operands[3] = x9;
  if (!memory_operand (operands[3], E_SImode)
      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 164 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldrdstrd.md"
(TARGET_LDRD && TARGET_ARM && reload_completed
  && valid_operands_ldrd_strd (operands, true))))
    return -1;
  return 6565; /* *p *arm_ldrd */
}

static int
recog_338 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24, x25;
  rtx x26;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XVECEXP (x2, 0, 0);
  switch (GET_CODE (x3))
    {
    case SET:
      x4 = XEXP (x3, 1);
      switch (GET_CODE (x4))
        {
        case MULT:
        case ASHIFT:
        case ROTATE:
        case ASHIFTRT:
        case LSHIFTRT:
        case ROTATERT:
          x5 = XEXP (x1, 0);
          operands[4] = x5;
          res = recog_329 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          if (GET_CODE (x4) != MULT
              || GET_MODE (x4) != E_SImode
              || pattern477 (x1) != 0)
            return -1;
          x6 = XEXP (x3, 0);
          operands[0] = x6;
          if (!low_register_operand (operands[0], E_SImode))
            return -1;
          x7 = XEXP (x4, 0);
          operands[1] = x7;
          if (!low_register_operand (operands[1], E_SImode))
            return -1;
          x8 = XEXP (x4, 1);
          operands[2] = x8;
          if (!low_register_operand (operands[2], E_SImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1429 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && optimize_size && reload_completed)))
            return -1;
          return 6938; /* *p *thumb2_mulsi_short */

        case PLUS:
        case MINUS:
        case AND:
        case IOR:
        case XOR:
          x6 = XEXP (x3, 0);
          operands[0] = x6;
          if (s_register_operand (operands[0], E_SImode))
            {
              res = recog_331 (x1, insn, pnum_clobbers);
              if (res >= 0)
                return res;
            }
          if (!low_register_operand (operands[0], E_SImode)
              || pattern477 (x1) != 0
              || GET_MODE (x4) != E_SImode)
            return -1;
          x7 = XEXP (x4, 0);
          operands[1] = x7;
          if (!low_register_operand (operands[1], E_SImode))
            return -1;
          x8 = XEXP (x4, 1);
          operands[2] = x8;
          switch (GET_CODE (x4))
            {
            case PLUS:
              if (!low_reg_or_int_operand (operands[2], E_SImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1301 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed)))
                return -1;
              return 6936; /* *p *thumb2_addsi_short */

            case MINUS:
              if (!low_register_operand (operands[2], E_SImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1330 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed)))
                return -1;
              return 6937; /* *p *thumb2_subsi_short */

            default:
              return -1;
            }

        case TRUNCATE:
          if (pattern421 (x4, E_DImode, MULT, LSHIFTRT, E_SImode) != 0)
            return -1;
          x7 = XEXP (x4, 0);
          x9 = XEXP (x7, 1);
          if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 32])
            return -1;
          x10 = XVECEXP (x2, 0, 1);
          if (GET_CODE (x10) != CLOBBER)
            return -1;
          x5 = XEXP (x1, 0);
          operands[4] = x5;
          x11 = XEXP (x5, 0);
          operands[5] = x11;
          x6 = XEXP (x3, 0);
          operands[0] = x6;
          if (!s_register_operand (operands[0], E_SImode))
            return -1;
          x12 = XEXP (x7, 0);
          x13 = XEXP (x12, 0);
          if (GET_MODE (x13) != E_DImode)
            return -1;
          x14 = XEXP (x12, 1);
          if (GET_MODE (x14) != E_DImode)
            return -1;
          x15 = XEXP (x10, 0);
          operands[3] = x15;
          if (!scratch_operand (operands[3], E_SImode))
            return -1;
          switch (GET_CODE (x13))
            {
            case SIGN_EXTEND:
              if (GET_CODE (x14) != SIGN_EXTEND)
                return -1;
              x16 = XEXP (x13, 0);
              operands[1] = x16;
              if (!s_register_operand (operands[1], E_SImode))
                return -1;
              x17 = XEXP (x14, 0);
              operands[2] = x17;
              if (!s_register_operand (operands[2], E_SImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2501 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return -1;
              return 6378; /* *p *smull_high */

            case ZERO_EXTEND:
              if (GET_CODE (x14) != ZERO_EXTEND)
                return -1;
              x16 = XEXP (x13, 0);
              operands[1] = x16;
              if (!s_register_operand (operands[1], E_SImode))
                return -1;
              x17 = XEXP (x14, 0);
              operands[2] = x17;
              if (!s_register_operand (operands[2], E_SImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2501 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return -1;
              return 6379; /* *p *umull_high */

            default:
              return -1;
            }

        case COMPARE:
          if (pattern421 (x4, E_SImode, NOT, AND, E_CC_NZmode) != 0)
            return -1;
          x7 = XEXP (x4, 0);
          x12 = XEXP (x7, 0);
          x13 = XEXP (x12, 0);
          if (!shift_operator (x13, E_SImode))
            return -1;
          operands[0] = x13;
          x8 = XEXP (x4, 1);
          if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x6 = XEXP (x3, 0);
          if (GET_CODE (x6) != REG
              || REGNO (x6) != 100
              || GET_MODE (x6) != E_CC_NZmode)
            return -1;
          x5 = XEXP (x1, 0);
          operands[5] = x5;
          x11 = XEXP (x5, 0);
          operands[6] = x11;
          x16 = XEXP (x13, 0);
          operands[1] = x16;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x18 = XEXP (x13, 1);
          operands[2] = x18;
          if (!shift_amount_operand (operands[2], E_SImode))
            return -1;
          x9 = XEXP (x7, 1);
          operands[3] = x9;
          if (!s_register_operand (operands[3], E_SImode))
            return -1;
          x10 = XVECEXP (x2, 0, 1);
          switch (GET_CODE (x10))
            {
            case CLOBBER:
              x15 = XEXP (x10, 0);
              operands[4] = x15;
              if (!scratch_operand (operands[4], E_SImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3623 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return -1;
              return 6407; /* *p andsi_not_shiftsi_si_scc_no_reuse */

            case SET:
              x19 = XEXP (x10, 1);
              if (pattern422 (x19, NOT, AND, E_SImode) != 0)
                return -1;
              x20 = XEXP (x19, 0);
              x21 = XEXP (x20, 0);
              switch (GET_CODE (x21))
                {
                case MULT:
                case ASHIFT:
                case ROTATE:
                case ASHIFTRT:
                case LSHIFTRT:
                case ROTATERT:
                  if (!rtx_equal_p (x21, operands[0]))
                    return -1;
                  x15 = XEXP (x10, 0);
                  operands[4] = x15;
                  if (!s_register_operand (operands[4], E_SImode))
                    return -1;
                  x22 = XEXP (x19, 1);
                  if (!rtx_equal_p (x22, operands[3])
                      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3647 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                    return -1;
                  return 6408; /* *p andsi_not_shiftsi_si_scc */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case ABS:
          if (GET_MODE (x4) != E_SImode
              || pattern400 (x1) != 0)
            return -1;
          x6 = XEXP (x3, 0);
          operands[0] = x6;
          if (!s_register_operand (operands[0], E_SImode))
            return -1;
          x7 = XEXP (x4, 0);
          operands[1] = x7;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5241 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM)))
            return 6439; /* *p *arm_abssi2 */
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 117 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2)))
            return -1;
          return 6923; /* *p *thumb2_abssi2 */

        case NEG:
          if (GET_MODE (x4) != E_SImode
              || pattern450 (x1) != 0)
            return -1;
          x7 = XEXP (x4, 0);
          switch (GET_CODE (x7))
            {
            case ABS:
              if (GET_MODE (x7) != E_SImode
                  || !s_register_operand (operands[0], E_SImode))
                return -1;
              x12 = XEXP (x7, 0);
              operands[1] = x12;
              if (!s_register_operand (operands[1], E_SImode))
                return -1;
              if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5305 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM)))
                return 6440; /* *p *arm_neg_abssi2 */
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 170 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2)))
                return -1;
              return 6924; /* *p *thumb2_neg_abssi2 */

            case REG:
              operands[1] = x7;
              if (!low_register_operand (operands[1], E_SImode)
                  || !low_register_operand (operands[0], E_SImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1523 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed)))
                return -1;
              return 6940; /* *p *thumb2_negsi2_short */

            default:
              return -1;
            }

        case UNSPEC:
          if (XVECLEN (x4, 0) != 2)
            return -1;
          x10 = XVECEXP (x2, 0, 1);
          if (GET_CODE (x10) != SET)
            return -1;
          x19 = XEXP (x10, 1);
          if (GET_CODE (x19) != UNSPEC
              || XVECLEN (x19, 0) != 1
              || XINT (x19, 1) != 29
              || GET_MODE (x19) != E_CCmode)
            return -1;
          x23 = XVECEXP (x19, 0, 0);
          if (GET_CODE (x23) != REG
              || REGNO (x23) != 105
              || GET_MODE (x23) != E_CCmode)
            return -1;
          x15 = XEXP (x10, 0);
          if (GET_CODE (x15) != REG
              || REGNO (x15) != 105
              || GET_MODE (x15) != E_CCmode)
            return -1;
          x5 = XEXP (x1, 0);
          operands[3] = x5;
          x11 = XEXP (x5, 0);
          operands[4] = x11;
          x6 = XEXP (x3, 0);
          operands[0] = x6;
          if (!s_register_operand (operands[0], E_SImode)
              || GET_MODE (x4) != E_SImode)
            return -1;
          x24 = XVECEXP (x4, 0, 0);
          operands[1] = x24;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x25 = XVECEXP (x4, 0, 1);
          operands[2] = x25;
          if (!s_register_operand (operands[2], E_SImode))
            return -1;
          switch (XINT (x4, 1))
            {
            case 82:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6086 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
                return -1;
              return 6491; /* *p arm_sadd8 */

            case 83:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6086 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
                return -1;
              return 6492; /* *p arm_ssub8 */

            case 84:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6086 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
                return -1;
              return 6493; /* *p arm_uadd8 */

            case 85:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6086 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
                return -1;
              return 6494; /* *p arm_usub8 */

            case 86:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6086 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
                return -1;
              return 6495; /* *p arm_sadd16 */

            case 87:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6086 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
                return -1;
              return 6496; /* *p arm_sasx */

            case 88:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6086 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
                return -1;
              return 6497; /* *p arm_ssax */

            case 89:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6086 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
                return -1;
              return 6498; /* *p arm_ssub16 */

            case 90:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6086 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
                return -1;
              return 6499; /* *p arm_uadd16 */

            case 91:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6086 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
                return -1;
              return 6500; /* *p arm_uasx */

            case 92:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6086 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
                return -1;
              return 6501; /* *p arm_usax */

            case 93:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6086 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
                return -1;
              return 6502; /* *p arm_usub16 */

            default:
              return -1;
            }

        case REG:
        case SUBREG:
        case MEM:
          switch (GET_CODE (x4))
            {
            case MEM:
              res = recog_333 (x1, insn, pnum_clobbers);
              if (res >= 0)
                return res;
              break;

            case REG:
            case SUBREG:
              res = recog_336 (x1, insn, pnum_clobbers);
              if (res >= 0)
                return res;
              break;

            default:
              break;
            }
          operands[2] = x4;
          if (memory_operand (operands[2], E_SImode))
            {
              res = recog_337 (x1, insn, pnum_clobbers);
              if (res >= 0)
                return res;
            }
          operands[0] = x4;
          if (!s_register_operand (operands[0], E_SImode))
            return -1;
          x10 = XVECEXP (x2, 0, 1);
          if (GET_CODE (x10) != SET)
            return -1;
          x5 = XEXP (x1, 0);
          operands[4] = x5;
          x11 = XEXP (x5, 0);
          operands[5] = x11;
          x6 = XEXP (x3, 0);
          operands[2] = x6;
          if (!memory_operand (operands[2], E_SImode))
            return -1;
          x15 = XEXP (x10, 0);
          operands[3] = x15;
          if (!memory_operand (operands[3], E_SImode))
            return -1;
          x19 = XEXP (x10, 1);
          operands[1] = x19;
          if (!s_register_operand (operands[1], E_SImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 184 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldrdstrd.md"
(TARGET_LDRD && TARGET_ARM && reload_completed
  && valid_operands_ldrd_strd (operands, false))))
            return -1;
          return 6566; /* *p *arm_strd */

        case CONST_INT:
          operands[1] = x4;
          if (pattern450 (x1) != 0)
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case E_QImode:
              if (!low_register_operand (operands[0], E_QImode)
                  || !const_int_operand (operands[1], E_QImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1289 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed)))
                return -1;
              return 6933; /* *p *thumb2_movqi_shortim */

            case E_HImode:
              if (!low_register_operand (operands[0], E_HImode)
                  || !const_int_operand (operands[1], E_HImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1289 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed)))
                return -1;
              return 6934; /* *p *thumb2_movhi_shortim */

            case E_SImode:
              if (!low_register_operand (operands[0], E_SImode)
                  || !const_int_operand (operands[1], E_SImode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1289 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed)))
                return -1;
              return 6935; /* *p *thumb2_movsi_shortim */

            default:
              return -1;
            }

        case NOT:
          if (GET_MODE (x4) != E_SImode
              || pattern400 (x1) != 0)
            return -1;
          x6 = XEXP (x3, 0);
          operands[0] = x6;
          if (!low_register_operand (operands[0], E_SImode))
            return -1;
          x7 = XEXP (x4, 0);
          operands[1] = x7;
          if (!low_register_operand (operands[1], E_SImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1512 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed)))
            return -1;
          return 6939; /* *p *thumb2_one_cmplsi2_short */

        case UNSPEC_VOLATILE:
          if (XVECLEN (x4, 0) != 1)
            return -1;
          x24 = XVECEXP (x4, 0, 0);
          if (x24 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x10 = XVECEXP (x2, 0, 1);
          if (GET_CODE (x10) != SET)
            return -1;
          x19 = XEXP (x10, 1);
          if (GET_CODE (x19) != UNSPEC_VOLATILE
              || XVECLEN (x19, 0) != 1)
            return -1;
          x5 = XEXP (x1, 0);
          operands[3] = x5;
          x11 = XEXP (x5, 0);
          operands[4] = x11;
          x6 = XEXP (x3, 0);
          operands[0] = x6;
          if (!s_register_operand (operands[0], E_SImode)
              || GET_MODE (x4) != E_SImode)
            return -1;
          x15 = XEXP (x10, 0);
          operands[1] = x15;
          x23 = XVECEXP (x19, 0, 0);
          operands[2] = x23;
          switch (XINT (x4, 1))
            {
            case 22:
              if (XINT (x19, 1) != 22)
                return -1;
              switch (GET_MODE (operands[1]))
                {
                case E_QImode:
                  if (!mem_noofs_operand (operands[1], E_QImode)
                      || GET_MODE (x19) != E_QImode
                      || !s_register_operand (operands[2], E_QImode)
                      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 523 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER)))
                    return -1;
                  return 6963; /* *p arm_store_exclusiveqi */

                case E_HImode:
                  if (!mem_noofs_operand (operands[1], E_HImode)
                      || GET_MODE (x19) != E_HImode
                      || !s_register_operand (operands[2], E_HImode)
                      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 523 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER)))
                    return -1;
                  return 6964; /* *p arm_store_exclusivehi */

                case E_SImode:
                  if (!mem_noofs_operand (operands[1], E_SImode)
                      || GET_MODE (x19) != E_SImode
                      || !s_register_operand (operands[2], E_SImode)
                      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 523 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER)))
                    return -1;
                  return 6965; /* *p arm_store_exclusivesi */

                case E_DImode:
                  if (!mem_noofs_operand (operands[1], E_DImode)
                      || GET_MODE (x19) != E_DImode
                      || !s_register_operand (operands[2], E_DImode)
                      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 523 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER)))
                    return -1;
                  return 6966; /* *p arm_store_exclusivedi */

                default:
                  return -1;
                }

            case 24:
              if (XINT (x19, 1) != 24)
                return -1;
              switch (GET_MODE (operands[1]))
                {
                case E_DImode:
                  if (!mem_noofs_operand (operands[1], E_DImode)
                      || GET_MODE (x19) != E_DImode
                      || !s_register_operand (operands[2], E_DImode)
                      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 549 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQEXD && ARM_DOUBLEWORD_ALIGN)))
                    return -1;
                  return 6967; /* *p arm_store_release_exclusivedi */

                case E_QImode:
                  if (!mem_noofs_operand (operands[1], E_QImode)
                      || GET_MODE (x19) != E_QImode
                      || !s_register_operand (operands[2], E_QImode)
                      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 564 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ)))
                    return -1;
                  return 6968; /* *p arm_store_release_exclusiveqi */

                case E_HImode:
                  if (!mem_noofs_operand (operands[1], E_HImode)
                      || GET_MODE (x19) != E_HImode
                      || !s_register_operand (operands[2], E_HImode)
                      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 564 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ)))
                    return -1;
                  return 6969; /* *p arm_store_release_exclusivehi */

                case E_SImode:
                  if (!mem_noofs_operand (operands[1], E_SImode)
                      || GET_MODE (x19) != E_SImode
                      || !s_register_operand (operands[2], E_SImode)
                      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 564 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ)))
                    return -1;
                  return 6970; /* *p arm_store_release_exclusivesi */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    case RETURN:
      x10 = XVECEXP (x2, 0, 1);
      if (GET_CODE (x10) != SET)
        return -1;
      x19 = XEXP (x10, 1);
      if (pattern422 (x19, POST_INC, MEM, E_SImode) != 0)
        return -1;
      x15 = XEXP (x10, 0);
      if (GET_CODE (x15) != REG
          || REGNO (x15) != 15
          || GET_MODE (x15) != E_SImode)
        return -1;
      x5 = XEXP (x1, 0);
      operands[1] = x5;
      x11 = XEXP (x5, 0);
      operands[2] = x11;
      x20 = XEXP (x19, 0);
      x21 = XEXP (x20, 0);
      operands[0] = x21;
      if (!s_register_operand (operands[0], E_SImode)
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 12001 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && (reload_in_progress || reload_completed))))
        return -1;
      return 6553; /* *p *ldr_with_return */

    case UNSPEC_VOLATILE:
      if (XVECLEN (x3, 0) != 1
          || XINT (x3, 1) != 52
          || GET_MODE (x3) != E_SImode)
        return -1;
      x26 = XVECEXP (x3, 0, 0);
      if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x10 = XVECEXP (x2, 0, 1);
      if (pattern504 (x10) != 0)
        return -1;
      x5 = XEXP (x1, 0);
      operands[0] = x5;
      x11 = XEXP (x5, 0);
      operands[1] = x11;
      if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1665 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && TARGET_HAVE_FPCXT_CMSE && use_cmse)))
        return -1;
      return 6943; /* *p *clear_apsr */

    default:
      return -1;
    }
}

static int
recog_339 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XVECEXP (x2, 0, 1);
  if (GET_CODE (x3) != SET)
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  switch (GET_CODE (x4))
    {
    case SET:
      x5 = XEXP (x1, 0);
      operands[4] = x5;
      x6 = XEXP (x5, 0);
      operands[5] = x6;
      x7 = XEXP (x4, 1);
      switch (GET_CODE (x7))
        {
        case PLUS:
          if (GET_MODE (x7) != E_SImode)
            return -1;
          x8 = XEXP (x3, 1);
          if (GET_CODE (x8) != MEM
              || GET_MODE (x8) != E_SImode
              || !load_multiple_operation (operands[0], E_VOIDmode))
            return -1;
          x9 = XEXP (x4, 0);
          operands[1] = x9;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x10 = XEXP (x7, 1);
          operands[2] = x10;
          if (!const_int_I_operand (operands[2], E_SImode))
            return -1;
          x11 = XEXP (x3, 0);
          operands[3] = x11;
          if (!s_register_operand (operands[3], E_SImode))
            return -1;
          x12 = XEXP (x7, 0);
          if (!rtx_equal_p (x12, operands[1]))
            return -1;
          x13 = XEXP (x8, 0);
          if (!rtx_equal_p (x13, operands[1])
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 11923 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && (reload_in_progress || reload_completed))))
            return -1;
          return 6550; /* *p *load_multiple_with_writeback */

        case MEM:
          if (pattern505 (x2, -4) != 0
              || !load_multiple_operation (operands[0], E_VOIDmode))
            return -1;
          x9 = XEXP (x4, 0);
          operands[1] = x9;
          if (!arm_hard_general_register_operand (operands[1], E_SImode))
            return -1;
          x12 = XEXP (x7, 0);
          x14 = XEXP (x12, 0);
          operands[3] = x14;
          if (!s_register_operand (operands[3], E_SImode))
            return -1;
          x11 = XEXP (x3, 0);
          operands[2] = x11;
          if (!arm_hard_general_register_operand (operands[2], E_SImode))
            return -1;
          x8 = XEXP (x3, 1);
          x13 = XEXP (x8, 0);
          if (!rtx_equal_p (x13, operands[3])
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 993 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 2)))
            return -1;
          return 6607; /* *p *ldm2_da */

        case REG:
          if (pattern506 (x2, -4) != 0
              || !store_multiple_operation (operands[0], E_VOIDmode))
            return -1;
          x9 = XEXP (x4, 0);
          x15 = XEXP (x9, 0);
          x16 = XEXP (x15, 0);
          operands[3] = x16;
          if (!s_register_operand (operands[3], E_SImode))
            return -1;
          x8 = XEXP (x3, 1);
          operands[2] = x8;
          if (!arm_hard_general_register_operand (operands[2], E_SImode))
            return -1;
          x11 = XEXP (x3, 0);
          x17 = XEXP (x11, 0);
          if (!rtx_equal_p (x17, operands[3])
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1018 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 2)))
            return -1;
          return 6609; /* *p *stm2_da */

        default:
          return -1;
        }

    case RETURN:
      x8 = XEXP (x3, 1);
      if (GET_CODE (x8) != MEM
          || GET_MODE (x8) != E_SImode)
        return -1;
      x5 = XEXP (x1, 0);
      operands[3] = x5;
      x6 = XEXP (x5, 0);
      operands[4] = x6;
      if (!pop_multiple_return (operands[0], E_VOIDmode))
        return -1;
      x11 = XEXP (x3, 0);
      operands[2] = x11;
      if (!s_register_operand (operands[2], E_SImode))
        return -1;
      x13 = XEXP (x8, 0);
      operands[1] = x13;
      if (!s_register_operand (operands[1], E_SImode)
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 11979 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && (reload_in_progress || reload_completed))))
        return -1;
      return 6552; /* *p *pop_multiple_with_return */

    default:
      return -1;
    }
}

static int
recog_340 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24, x25;
  rtx x26, x27, x28, x29, x30, x31;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XVECEXP (x2, 0, 1);
  if (GET_CODE (x3) != SET)
    return -1;
  x4 = XVECEXP (x2, 0, 2);
  if (GET_CODE (x4) != SET)
    return -1;
  x5 = XVECEXP (x2, 0, 0);
  switch (GET_CODE (x5))
    {
    case RETURN:
      x6 = XEXP (x3, 1);
      if (GET_CODE (x6) != PLUS
          || GET_MODE (x6) != E_SImode)
        return -1;
      x7 = XEXP (x4, 1);
      if (GET_CODE (x7) != MEM
          || GET_MODE (x7) != E_SImode)
        return -1;
      x8 = XEXP (x1, 0);
      operands[4] = x8;
      x9 = XEXP (x8, 0);
      operands[5] = x9;
      if (!pop_multiple_return (operands[0], E_VOIDmode))
        return -1;
      x10 = XEXP (x3, 0);
      operands[1] = x10;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      x11 = XEXP (x6, 1);
      operands[2] = x11;
      if (!const_int_I_operand (operands[2], E_SImode))
        return -1;
      x12 = XEXP (x4, 0);
      operands[3] = x12;
      if (!s_register_operand (operands[3], E_SImode))
        return -1;
      x13 = XEXP (x6, 0);
      if (!rtx_equal_p (x13, operands[1]))
        return -1;
      x14 = XEXP (x7, 0);
      if (!rtx_equal_p (x14, operands[1])
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 11956 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && (reload_in_progress || reload_completed))))
        return -1;
      return 6551; /* *p *pop_multiple_with_writeback_and_return */

    case SET:
      x15 = XEXP (x5, 1);
      switch (GET_CODE (x15))
        {
        case MEM:
          if (pattern505 (x2, -8) != 0)
            return -1;
          x6 = XEXP (x3, 1);
          x13 = XEXP (x6, 0);
          if (GET_CODE (x13) != PLUS
              || GET_MODE (x13) != E_SImode)
            return -1;
          x16 = XEXP (x13, 1);
          if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + -4])
            return -1;
          x7 = XEXP (x4, 1);
          if (GET_CODE (x7) != MEM
              || GET_MODE (x7) != E_SImode)
            return -1;
          x8 = XEXP (x1, 0);
          operands[5] = x8;
          x9 = XEXP (x8, 0);
          operands[6] = x9;
          if (!load_multiple_operation (operands[0], E_VOIDmode))
            return -1;
          x17 = XEXP (x5, 0);
          operands[1] = x17;
          if (!arm_hard_general_register_operand (operands[1], E_SImode))
            return -1;
          x18 = XEXP (x15, 0);
          x19 = XEXP (x18, 0);
          operands[4] = x19;
          if (!s_register_operand (operands[4], E_SImode))
            return -1;
          x10 = XEXP (x3, 0);
          operands[2] = x10;
          if (!arm_hard_general_register_operand (operands[2], E_SImode))
            return -1;
          x12 = XEXP (x4, 0);
          operands[3] = x12;
          if (!arm_hard_general_register_operand (operands[3], E_SImode))
            return -1;
          x20 = XEXP (x13, 0);
          if (!rtx_equal_p (x20, operands[4]))
            return -1;
          x14 = XEXP (x7, 0);
          if (!rtx_equal_p (x14, operands[4])
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 643 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3)))
            return -1;
          return 6591; /* *p *ldm3_da */

        case REG:
          if (pattern506 (x2, -8) != 0)
            return -1;
          x10 = XEXP (x3, 0);
          x21 = XEXP (x10, 0);
          if (GET_CODE (x21) != PLUS
              || GET_MODE (x21) != E_SImode)
            return -1;
          x22 = XEXP (x21, 1);
          if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + -4])
            return -1;
          x12 = XEXP (x4, 0);
          if (GET_CODE (x12) != MEM
              || GET_MODE (x12) != E_SImode)
            return -1;
          x8 = XEXP (x1, 0);
          operands[5] = x8;
          x9 = XEXP (x8, 0);
          operands[6] = x9;
          if (!store_multiple_operation (operands[0], E_VOIDmode))
            return -1;
          x17 = XEXP (x5, 0);
          x23 = XEXP (x17, 0);
          x24 = XEXP (x23, 0);
          operands[4] = x24;
          if (!s_register_operand (operands[4], E_SImode))
            return -1;
          x6 = XEXP (x3, 1);
          operands[2] = x6;
          if (!arm_hard_general_register_operand (operands[2], E_SImode))
            return -1;
          x7 = XEXP (x4, 1);
          operands[3] = x7;
          if (!arm_hard_general_register_operand (operands[3], E_SImode))
            return -1;
          x25 = XEXP (x21, 0);
          if (!rtx_equal_p (x25, operands[4]))
            return -1;
          x26 = XEXP (x12, 0);
          if (!rtx_equal_p (x26, operands[4])
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 673 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3)))
            return -1;
          return 6593; /* *p *stm3_da */

        case PLUS:
          if (GET_MODE (x15) != E_SImode)
            return -1;
          x27 = XEXP (x15, 1);
          if (GET_CODE (x27) != CONST_INT)
            return -1;
          x8 = XEXP (x1, 0);
          operands[4] = x8;
          x9 = XEXP (x8, 0);
          operands[5] = x9;
          x17 = XEXP (x5, 0);
          operands[3] = x17;
          if (!s_register_operand (operands[3], E_SImode))
            return -1;
          x18 = XEXP (x15, 0);
          if (!rtx_equal_p (x18, operands[3]))
            return -1;
          switch (XWINT (x27, 0))
            {
            case 8L:
              switch (pattern620 (x3))
                {
                case 0:
                  x7 = XEXP (x4, 1);
                  if (pattern621 (x7) != 0
                      || !load_multiple_operation (operands[0], E_VOIDmode))
                    return -1;
                  x10 = XEXP (x3, 0);
                  operands[1] = x10;
                  if (!arm_hard_general_register_operand (operands[1], E_SImode))
                    return -1;
                  x12 = XEXP (x4, 0);
                  operands[2] = x12;
                  if (!arm_hard_general_register_operand (operands[2], E_SImode))
                    return -1;
                  x14 = XEXP (x7, 0);
                  x28 = XEXP (x14, 0);
                  if (!rtx_equal_p (x28, operands[3]))
                    return -1;
                  x6 = XEXP (x3, 1);
                  x13 = XEXP (x6, 0);
                  switch (GET_CODE (x13))
                    {
                    case REG:
                    case SUBREG:
                      if (!rtx_equal_p (x13, operands[3]))
                        return -1;
                      x29 = XEXP (x14, 1);
                      if (XWINT (x29, 0) != 4L
                          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 880 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3)))
                        return -1;
                      return 6600; /* *p *ldm2_ia_update */

                    case PLUS:
                      if (GET_MODE (x13) != E_SImode)
                        return -1;
                      x16 = XEXP (x13, 1);
                      if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
                        return -1;
                      x29 = XEXP (x14, 1);
                      if (XWINT (x29, 0) != 8L)
                        return -1;
                      x20 = XEXP (x13, 0);
                      if (!rtx_equal_p (x20, operands[3])
                          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 957 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3)))
                        return -1;
                      return 6604; /* *p *ldm2_ib_update */

                    default:
                      return -1;
                    }

                case 1:
                  x12 = XEXP (x4, 0);
                  if (pattern630 (x12) != 0
                      || !store_multiple_operation (operands[0], E_VOIDmode))
                    return -1;
                  x7 = XEXP (x4, 1);
                  operands[2] = x7;
                  if (!arm_hard_general_register_operand (operands[2], E_SImode))
                    return -1;
                  x26 = XEXP (x12, 0);
                  x30 = XEXP (x26, 0);
                  if (!rtx_equal_p (x30, operands[3]))
                    return -1;
                  x10 = XEXP (x3, 0);
                  x21 = XEXP (x10, 0);
                  switch (GET_CODE (x21))
                    {
                    case REG:
                    case SUBREG:
                      if (!rtx_equal_p (x21, operands[3]))
                        return -1;
                      x31 = XEXP (x26, 1);
                      if (XWINT (x31, 0) != 4L
                          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 917 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3)))
                        return -1;
                      return 6602; /* *p *stm2_ia_update */

                    case PLUS:
                      if (GET_MODE (x21) != E_SImode)
                        return -1;
                      x22 = XEXP (x21, 1);
                      if (x22 != const_int_rtx[MAX_SAVED_CONST_INT + 4])
                        return -1;
                      x31 = XEXP (x26, 1);
                      if (XWINT (x31, 0) != 8L)
                        return -1;
                      x25 = XEXP (x21, 0);
                      if (!rtx_equal_p (x25, operands[3])
                          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 981 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3)))
                        return -1;
                      return 6606; /* *p *stm2_ib_update */

                    default:
                      return -1;
                    }

                default:
                  return -1;
                }

            case -8L:
              x6 = XEXP (x3, 1);
              switch (GET_CODE (x6))
                {
                case MEM:
                  if (GET_MODE (x6) != E_SImode)
                    return -1;
                  x13 = XEXP (x6, 0);
                  if (GET_CODE (x13) != PLUS
                      || GET_MODE (x13) != E_SImode)
                    return -1;
                  x16 = XEXP (x13, 1);
                  if (GET_CODE (x16) != CONST_INT)
                    return -1;
                  x7 = XEXP (x4, 1);
                  if (GET_CODE (x7) != MEM
                      || GET_MODE (x7) != E_SImode
                      || !load_multiple_operation (operands[0], E_VOIDmode))
                    return -1;
                  x10 = XEXP (x3, 0);
                  operands[1] = x10;
                  if (!arm_hard_general_register_operand (operands[1], E_SImode))
                    return -1;
                  x12 = XEXP (x4, 0);
                  operands[2] = x12;
                  if (!arm_hard_general_register_operand (operands[2], E_SImode))
                    return -1;
                  x20 = XEXP (x13, 0);
                  if (!rtx_equal_p (x20, operands[3]))
                    return -1;
                  switch (XWINT (x16, 0))
                    {
                    case -4L:
                      x14 = XEXP (x7, 0);
                      if (!rtx_equal_p (x14, operands[3])
                          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1007 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3)))
                        return -1;
                      return 6608; /* *p *ldm2_da_update */

                    case -8L:
                      x14 = XEXP (x7, 0);
                      if (GET_CODE (x14) != PLUS
                          || GET_MODE (x14) != E_SImode)
                        return -1;
                      x29 = XEXP (x14, 1);
                      if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + -4])
                        return -1;
                      x28 = XEXP (x14, 0);
                      if (!rtx_equal_p (x28, operands[3])
                          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1059 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3)))
                        return -1;
                      return 6612; /* *p *ldm2_db_update */

                    default:
                      return -1;
                    }

                case REG:
                  operands[1] = x6;
                  if (!arm_hard_general_register_operand (operands[1], E_SImode))
                    return -1;
                  x10 = XEXP (x3, 0);
                  if (GET_CODE (x10) != MEM
                      || GET_MODE (x10) != E_SImode)
                    return -1;
                  x21 = XEXP (x10, 0);
                  if (GET_CODE (x21) != PLUS
                      || GET_MODE (x21) != E_SImode)
                    return -1;
                  x22 = XEXP (x21, 1);
                  if (GET_CODE (x22) != CONST_INT)
                    return -1;
                  x12 = XEXP (x4, 0);
                  if (GET_CODE (x12) != MEM
                      || GET_MODE (x12) != E_SImode
                      || !store_multiple_operation (operands[0], E_VOIDmode))
                    return -1;
                  x7 = XEXP (x4, 1);
                  operands[2] = x7;
                  if (!arm_hard_general_register_operand (operands[2], E_SImode))
                    return -1;
                  x25 = XEXP (x21, 0);
                  if (!rtx_equal_p (x25, operands[3]))
                    return -1;
                  switch (XWINT (x22, 0))
                    {
                    case -4L:
                      x26 = XEXP (x12, 0);
                      if (!rtx_equal_p (x26, operands[3])
                          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1031 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3)))
                        return -1;
                      return 6610; /* *p *stm2_da_update */

                    case -8L:
                      x26 = XEXP (x12, 0);
                      if (GET_CODE (x26) != PLUS
                          || GET_MODE (x26) != E_SImode)
                        return -1;
                      x31 = XEXP (x26, 1);
                      if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + -4])
                        return -1;
                      x30 = XEXP (x26, 0);
                      if (!rtx_equal_p (x30, operands[3])
                          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1083 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3)))
                        return -1;
                      return 6614; /* *p *stm2_db_update */

                    default:
                      return -1;
                    }

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_341 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24, x25;
  rtx x26, x27, x28, x29, x30, x31, x32, x33;
  rtx x34, x35, x36, x37, x38, x39, x40, x41;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XVECEXP (x2, 0, 0);
  if (GET_CODE (x3) != SET)
    return -1;
  x4 = XVECEXP (x2, 0, 1);
  if (GET_CODE (x4) != SET)
    return -1;
  x5 = XVECEXP (x2, 0, 2);
  if (GET_CODE (x5) != SET)
    return -1;
  x6 = XVECEXP (x2, 0, 3);
  if (GET_CODE (x6) != SET)
    return -1;
  x7 = XEXP (x3, 1);
  switch (GET_CODE (x7))
    {
    case MEM:
      if (GET_MODE (x7) != E_SImode)
        return -1;
      x8 = XEXP (x4, 1);
      if (GET_CODE (x8) != MEM
          || pattern574 (x2) != 0)
        return -1;
      x9 = XEXP (x1, 0);
      operands[6] = x9;
      x10 = XEXP (x9, 0);
      operands[7] = x10;
      if (pattern639 (operands[0]) != 0)
        return -1;
      x11 = XEXP (x6, 0);
      operands[4] = x11;
      if (!arm_hard_general_register_operand (operands[4], E_SImode))
        return -1;
      x12 = XEXP (x7, 0);
      switch (GET_CODE (x12))
        {
        case REG:
        case SUBREG:
          operands[5] = x12;
          if (!s_register_operand (operands[5], E_SImode))
            return -1;
          x13 = XEXP (x8, 0);
          x14 = XEXP (x13, 1);
          if (XWINT (x14, 0) != 4L)
            return -1;
          x15 = XEXP (x5, 1);
          x16 = XEXP (x15, 0);
          x17 = XEXP (x16, 1);
          if (XWINT (x17, 0) != 8L)
            return -1;
          x18 = XEXP (x6, 1);
          x19 = XEXP (x18, 0);
          if (GET_CODE (x19) != PLUS
              || GET_MODE (x19) != E_SImode)
            return -1;
          x20 = XEXP (x19, 1);
          if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
            return -1;
          x21 = XEXP (x13, 0);
          if (!rtx_equal_p (x21, operands[5]))
            return -1;
          x22 = XEXP (x16, 0);
          if (!rtx_equal_p (x22, operands[5]))
            return -1;
          x23 = XEXP (x19, 0);
          if (!rtx_equal_p (x23, operands[5])
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 37 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4)))
            return -1;
          return 6567; /* *p *ldm4_ */

        case PLUS:
          if (GET_MODE (x12) != E_SImode)
            return -1;
          x24 = XEXP (x12, 1);
          if (GET_CODE (x24) != CONST_INT)
            return -1;
          x25 = XEXP (x12, 0);
          operands[5] = x25;
          if (!s_register_operand (operands[5], E_SImode))
            return -1;
          x13 = XEXP (x8, 0);
          x21 = XEXP (x13, 0);
          if (!rtx_equal_p (x21, operands[5]))
            return -1;
          x15 = XEXP (x5, 1);
          x16 = XEXP (x15, 0);
          x22 = XEXP (x16, 0);
          if (!rtx_equal_p (x22, operands[5]))
            return -1;
          switch (XWINT (x24, 0))
            {
            case 4L:
              x14 = XEXP (x13, 1);
              if (XWINT (x14, 0) != 8L)
                return -1;
              x17 = XEXP (x16, 1);
              if (XWINT (x17, 0) != 12L)
                return -1;
              x18 = XEXP (x6, 1);
              x19 = XEXP (x18, 0);
              if (pattern669 (x19, 16) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 160 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4)))
                return -1;
              return 6571; /* *p *ldm4_ib */

            case -12L:
              x14 = XEXP (x13, 1);
              if (XWINT (x14, 0) != -8L)
                return -1;
              x17 = XEXP (x16, 1);
              if (XWINT (x17, 0) != -4L)
                return -1;
              x18 = XEXP (x6, 1);
              x19 = XEXP (x18, 0);
              if (!rtx_equal_p (x19, operands[5])
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 231 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4)))
                return -1;
              return 6575; /* *p *ldm4_da */

            case -16L:
              x14 = XEXP (x13, 1);
              if (XWINT (x14, 0) != -12L)
                return -1;
              x17 = XEXP (x16, 1);
              if (XWINT (x17, 0) != -8L)
                return -1;
              x18 = XEXP (x6, 1);
              x19 = XEXP (x18, 0);
              if (pattern669 (x19, -4) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 302 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4)))
                return -1;
              return 6579; /* *p *ldm4_db */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case REG:
      operands[1] = x7;
      if (!arm_hard_general_register_operand (operands[1], E_SImode))
        return -1;
      x26 = XEXP (x3, 0);
      if (GET_CODE (x26) != MEM
          || GET_MODE (x26) != E_SImode
          || pattern598 (x2) != 0)
        return -1;
      x9 = XEXP (x1, 0);
      operands[6] = x9;
      x10 = XEXP (x9, 0);
      operands[7] = x10;
      if (!store_multiple_operation (operands[0], E_VOIDmode))
        return -1;
      x8 = XEXP (x4, 1);
      operands[2] = x8;
      if (!arm_hard_general_register_operand (operands[2], E_SImode))
        return -1;
      x15 = XEXP (x5, 1);
      operands[3] = x15;
      if (!arm_hard_general_register_operand (operands[3], E_SImode))
        return -1;
      x18 = XEXP (x6, 1);
      operands[4] = x18;
      if (!arm_hard_general_register_operand (operands[4], E_SImode))
        return -1;
      x27 = XEXP (x26, 0);
      switch (GET_CODE (x27))
        {
        case REG:
        case SUBREG:
          operands[5] = x27;
          if (!s_register_operand (operands[5], E_SImode))
            return -1;
          x28 = XEXP (x4, 0);
          x29 = XEXP (x28, 0);
          x30 = XEXP (x29, 1);
          if (XWINT (x30, 0) != 4L)
            return -1;
          x31 = XEXP (x5, 0);
          x32 = XEXP (x31, 0);
          x33 = XEXP (x32, 1);
          if (XWINT (x33, 0) != 8L)
            return -1;
          x11 = XEXP (x6, 0);
          x34 = XEXP (x11, 0);
          if (GET_CODE (x34) != PLUS
              || GET_MODE (x34) != E_SImode)
            return -1;
          x35 = XEXP (x34, 1);
          if (x35 != const_int_rtx[MAX_SAVED_CONST_INT + 12])
            return -1;
          x36 = XEXP (x29, 0);
          if (!rtx_equal_p (x36, operands[5]))
            return -1;
          x37 = XEXP (x32, 0);
          if (!rtx_equal_p (x37, operands[5]))
            return -1;
          x38 = XEXP (x34, 0);
          if (!rtx_equal_p (x38, operands[5])
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 108 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4)))
            return -1;
          return 6569; /* *p *stm4_ */

        case PLUS:
          if (GET_MODE (x27) != E_SImode)
            return -1;
          x39 = XEXP (x27, 1);
          if (GET_CODE (x39) != CONST_INT)
            return -1;
          x40 = XEXP (x27, 0);
          operands[5] = x40;
          if (!s_register_operand (operands[5], E_SImode))
            return -1;
          x28 = XEXP (x4, 0);
          x29 = XEXP (x28, 0);
          x36 = XEXP (x29, 0);
          if (!rtx_equal_p (x36, operands[5]))
            return -1;
          x31 = XEXP (x5, 0);
          x32 = XEXP (x31, 0);
          x37 = XEXP (x32, 0);
          if (!rtx_equal_p (x37, operands[5]))
            return -1;
          switch (XWINT (x39, 0))
            {
            case 4L:
              x30 = XEXP (x29, 1);
              if (XWINT (x30, 0) != 8L)
                return -1;
              x33 = XEXP (x32, 1);
              if (XWINT (x33, 0) != 12L)
                return -1;
              x11 = XEXP (x6, 0);
              x34 = XEXP (x11, 0);
              if (pattern670 (x34, 16) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 196 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4)))
                return -1;
              return 6573; /* *p *stm4_ib */

            case -12L:
              x30 = XEXP (x29, 1);
              if (XWINT (x30, 0) != -8L)
                return -1;
              x33 = XEXP (x32, 1);
              if (XWINT (x33, 0) != -4L)
                return -1;
              x11 = XEXP (x6, 0);
              x34 = XEXP (x11, 0);
              if (!rtx_equal_p (x34, operands[5])
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 266 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4)))
                return -1;
              return 6577; /* *p *stm4_da */

            case -16L:
              x30 = XEXP (x29, 1);
              if (XWINT (x30, 0) != -12L)
                return -1;
              x33 = XEXP (x32, 1);
              if (XWINT (x33, 0) != -8L)
                return -1;
              x11 = XEXP (x6, 0);
              x34 = XEXP (x11, 0);
              if (pattern670 (x34, -4) != 0
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 338 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4)))
                return -1;
              return 6581; /* *p *stm4_db */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case PLUS:
      if (GET_MODE (x7) != E_SImode)
        return -1;
      x41 = XEXP (x7, 1);
      if (GET_CODE (x41) != CONST_INT)
        return -1;
      x9 = XEXP (x1, 0);
      operands[5] = x9;
      x10 = XEXP (x9, 0);
      operands[6] = x10;
      x26 = XEXP (x3, 0);
      operands[4] = x26;
      if (!s_register_operand (operands[4], E_SImode))
        return -1;
      x12 = XEXP (x7, 0);
      if (!rtx_equal_p (x12, operands[4]))
        return -1;
      switch (XWINT (x41, 0))
        {
        case 12L:
          switch (pattern620 (x4))
            {
            case 0:
              if (pattern573 (x2) != 0)
                return -1;
              x18 = XEXP (x6, 1);
              x19 = XEXP (x18, 0);
              if (GET_CODE (x19) != PLUS
                  || GET_MODE (x19) != E_SImode)
                return -1;
              x20 = XEXP (x19, 1);
              if (GET_CODE (x20) != CONST_INT
                  || pattern651 (operands[0]) != 0)
                return -1;
              x15 = XEXP (x5, 1);
              x16 = XEXP (x15, 0);
              x22 = XEXP (x16, 0);
              if (!rtx_equal_p (x22, operands[4]))
                return -1;
              x23 = XEXP (x19, 0);
              if (!rtx_equal_p (x23, operands[4]))
                return -1;
              switch (pattern662 (x2))
                {
                case 0:
                  x8 = XEXP (x4, 1);
                  x13 = XEXP (x8, 0);
                  if (!rtx_equal_p (x13, operands[4]))
                    return -1;
                  x17 = XEXP (x16, 1);
                  if (XWINT (x17, 0) != 4L
                      || XWINT (x20, 0) != 8L
                      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 508 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4)))
                    return -1;
                  return 6584; /* *p *ldm3_ia_update */

                case 1:
                  x8 = XEXP (x4, 1);
                  x13 = XEXP (x8, 0);
                  x21 = XEXP (x13, 0);
                  if (!rtx_equal_p (x21, operands[4])
                      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 600 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4)))
                    return -1;
                  return 6588; /* *p *ldm3_ib_update */

                default:
                  return -1;
                }

            case 1:
              if (pattern597 (x2) != 0)
                return -1;
              x11 = XEXP (x6, 0);
              x34 = XEXP (x11, 0);
              if (GET_CODE (x34) != PLUS
                  || GET_MODE (x34) != E_SImode)
                return -1;
              x35 = XEXP (x34, 1);
              if (GET_CODE (x35) != CONST_INT
                  || !store_multiple_operation (operands[0], E_VOIDmode))
                return -1;
              x15 = XEXP (x5, 1);
              operands[2] = x15;
              if (!arm_hard_general_register_operand (operands[2], E_SImode))
                return -1;
              x18 = XEXP (x6, 1);
              operands[3] = x18;
              if (!arm_hard_general_register_operand (operands[3], E_SImode))
                return -1;
              x31 = XEXP (x5, 0);
              x32 = XEXP (x31, 0);
              x37 = XEXP (x32, 0);
              if (!rtx_equal_p (x37, operands[4]))
                return -1;
              x38 = XEXP (x34, 0);
              if (!rtx_equal_p (x38, operands[4]))
                return -1;
              switch (pattern664 (x2))
                {
                case 0:
                  x28 = XEXP (x4, 0);
                  x29 = XEXP (x28, 0);
                  if (!rtx_equal_p (x29, operands[4]))
                    return -1;
                  x33 = XEXP (x32, 1);
                  if (XWINT (x33, 0) != 4L
                      || XWINT (x35, 0) != 8L
                      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 552 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4)))
                    return -1;
                  return 6586; /* *p *stm3_ia_update */

                case 1:
                  x28 = XEXP (x4, 0);
                  x29 = XEXP (x28, 0);
                  x36 = XEXP (x29, 0);
                  if (!rtx_equal_p (x36, operands[4])
                      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 628 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4)))
                    return -1;
                  return 6590; /* *p *stm3_ib_update */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case -12L:
          x8 = XEXP (x4, 1);
          switch (GET_CODE (x8))
            {
            case MEM:
              if (pattern574 (x2) != 0
                  || pattern651 (operands[0]) != 0)
                return -1;
              x13 = XEXP (x8, 0);
              x21 = XEXP (x13, 0);
              if (!rtx_equal_p (x21, operands[4]))
                return -1;
              x15 = XEXP (x5, 1);
              x16 = XEXP (x15, 0);
              x22 = XEXP (x16, 0);
              if (!rtx_equal_p (x22, operands[4]))
                return -1;
              x14 = XEXP (x13, 1);
              switch (XWINT (x14, 0))
                {
                case -8L:
                  x17 = XEXP (x16, 1);
                  if (XWINT (x17, 0) != -4L)
                    return -1;
                  x18 = XEXP (x6, 1);
                  x19 = XEXP (x18, 0);
                  if (!rtx_equal_p (x19, operands[4])
                      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 660 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4)))
                    return -1;
                  return 6592; /* *p *ldm3_da_update */

                case -12L:
                  x17 = XEXP (x16, 1);
                  if (XWINT (x17, 0) != -8L)
                    return -1;
                  x18 = XEXP (x6, 1);
                  x19 = XEXP (x18, 0);
                  if (GET_CODE (x19) != PLUS
                      || GET_MODE (x19) != E_SImode)
                    return -1;
                  x20 = XEXP (x19, 1);
                  if (x20 != const_int_rtx[MAX_SAVED_CONST_INT + -4])
                    return -1;
                  x23 = XEXP (x19, 0);
                  if (!rtx_equal_p (x23, operands[4])
                      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 722 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4)))
                    return -1;
                  return 6596; /* *p *ldm3_db_update */

                default:
                  return -1;
                }

            case REG:
              operands[1] = x8;
              if (!arm_hard_general_register_operand (operands[1], E_SImode)
                  || pattern598 (x2) != 0
                  || !store_multiple_operation (operands[0], E_VOIDmode))
                return -1;
              x15 = XEXP (x5, 1);
              operands[2] = x15;
              if (!arm_hard_general_register_operand (operands[2], E_SImode))
                return -1;
              x18 = XEXP (x6, 1);
              operands[3] = x18;
              if (!arm_hard_general_register_operand (operands[3], E_SImode))
                return -1;
              x28 = XEXP (x4, 0);
              x29 = XEXP (x28, 0);
              x36 = XEXP (x29, 0);
              if (!rtx_equal_p (x36, operands[4]))
                return -1;
              x31 = XEXP (x5, 0);
              x32 = XEXP (x31, 0);
              x37 = XEXP (x32, 0);
              if (!rtx_equal_p (x37, operands[4]))
                return -1;
              x30 = XEXP (x29, 1);
              switch (XWINT (x30, 0))
                {
                case -8L:
                  x33 = XEXP (x32, 1);
                  if (XWINT (x33, 0) != -4L)
                    return -1;
                  x11 = XEXP (x6, 0);
                  x34 = XEXP (x11, 0);
                  if (!rtx_equal_p (x34, operands[4])
                      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 688 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4)))
                    return -1;
                  return 6594; /* *p *stm3_da_update */

                case -12L:
                  x33 = XEXP (x32, 1);
                  if (XWINT (x33, 0) != -8L)
                    return -1;
                  x11 = XEXP (x6, 0);
                  x34 = XEXP (x11, 0);
                  if (GET_CODE (x34) != PLUS
                      || GET_MODE (x34) != E_SImode)
                    return -1;
                  x35 = XEXP (x34, 1);
                  if (x35 != const_int_rtx[MAX_SAVED_CONST_INT + -4])
                    return -1;
                  x38 = XEXP (x34, 0);
                  if (!rtx_equal_p (x38, operands[4])
                      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 750 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4)))
                    return -1;
                  return 6598; /* *p *stm3_db_update */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_342 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24, x25;
  rtx x26, x27, x28, x29, x30, x31, x32, x33;
  rtx x34, x35, x36, x37, x38, x39, x40, x41;
  rtx x42, x43, x44, x45;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XVECEXP (x2, 0, 0);
  if (GET_CODE (x3) != SET)
    return -1;
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) != PLUS
      || GET_MODE (x4) != E_SImode)
    return -1;
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != CONST_INT)
    return -1;
  x6 = XVECEXP (x2, 0, 1);
  if (GET_CODE (x6) != SET)
    return -1;
  x7 = XVECEXP (x2, 0, 2);
  if (GET_CODE (x7) != SET)
    return -1;
  x8 = XVECEXP (x2, 0, 3);
  if (GET_CODE (x8) != SET)
    return -1;
  x9 = XVECEXP (x2, 0, 4);
  if (GET_CODE (x9) != SET)
    return -1;
  x10 = XEXP (x1, 0);
  operands[6] = x10;
  x11 = XEXP (x10, 0);
  operands[7] = x11;
  x12 = XEXP (x3, 0);
  operands[5] = x12;
  if (!s_register_operand (operands[5], E_SImode))
    return -1;
  x13 = XEXP (x4, 0);
  if (!rtx_equal_p (x13, operands[5]))
    return -1;
  switch (XWINT (x5, 0))
    {
    case 16L:
      switch (pattern620 (x6))
        {
        case 0:
          if (pattern638 (x2) != 0)
            return -1;
          x14 = XEXP (x9, 1);
          x15 = XEXP (x14, 0);
          if (GET_CODE (x15) != PLUS
              || GET_MODE (x15) != E_SImode)
            return -1;
          x16 = XEXP (x15, 1);
          if (GET_CODE (x16) != CONST_INT
              || pattern657 (operands[0]) != 0)
            return -1;
          x17 = XEXP (x7, 1);
          x18 = XEXP (x17, 0);
          x19 = XEXP (x18, 0);
          if (!rtx_equal_p (x19, operands[5]))
            return -1;
          x20 = XEXP (x8, 1);
          x21 = XEXP (x20, 0);
          x22 = XEXP (x21, 0);
          if (!rtx_equal_p (x22, operands[5]))
            return -1;
          x23 = XEXP (x15, 0);
          if (!rtx_equal_p (x23, operands[5]))
            return -1;
          switch (pattern662 (x2))
            {
            case 0:
              x24 = XEXP (x6, 1);
              x25 = XEXP (x24, 0);
              if (!rtx_equal_p (x25, operands[5]))
                return -1;
              x26 = XEXP (x18, 1);
              if (XWINT (x26, 0) != 4L)
                return -1;
              x27 = XEXP (x21, 1);
              if (XWINT (x27, 0) != 8L
                  || XWINT (x16, 0) != 12L
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 74 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 5)))
                return -1;
              return 6568; /* *p *ldm4_ia_update */

            case 1:
              if (XWINT (x16, 0) != 16L)
                return -1;
              x24 = XEXP (x6, 1);
              x25 = XEXP (x24, 0);
              x28 = XEXP (x25, 0);
              if (!rtx_equal_p (x28, operands[5])
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 181 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 5)))
                return -1;
              return 6572; /* *p *ldm4_ib_update */

            default:
              return -1;
            }

        case 1:
          if (pattern641 (x2) != 0)
            return -1;
          x29 = XEXP (x9, 0);
          x30 = XEXP (x29, 0);
          if (GET_CODE (x30) != PLUS
              || GET_MODE (x30) != E_SImode)
            return -1;
          x31 = XEXP (x30, 1);
          if (GET_CODE (x31) != CONST_INT
              || pattern663 (operands[0]) != 0)
            return -1;
          x32 = XEXP (x7, 0);
          x33 = XEXP (x32, 0);
          x34 = XEXP (x33, 0);
          if (!rtx_equal_p (x34, operands[5]))
            return -1;
          x35 = XEXP (x8, 0);
          x36 = XEXP (x35, 0);
          x37 = XEXP (x36, 0);
          if (!rtx_equal_p (x37, operands[5]))
            return -1;
          x38 = XEXP (x30, 0);
          if (!rtx_equal_p (x38, operands[5]))
            return -1;
          switch (pattern664 (x2))
            {
            case 0:
              x39 = XEXP (x6, 0);
              x40 = XEXP (x39, 0);
              if (!rtx_equal_p (x40, operands[5]))
                return -1;
              x41 = XEXP (x33, 1);
              if (XWINT (x41, 0) != 4L)
                return -1;
              x42 = XEXP (x36, 1);
              if (XWINT (x42, 0) != 8L
                  || XWINT (x31, 0) != 12L
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 125 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 5)))
                return -1;
              return 6570; /* *p *stm4_ia_update */

            case 1:
              if (XWINT (x31, 0) != 16L)
                return -1;
              x39 = XEXP (x6, 0);
              x40 = XEXP (x39, 0);
              x43 = XEXP (x40, 0);
              if (!rtx_equal_p (x43, operands[5])
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 213 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 5)))
                return -1;
              return 6574; /* *p *stm4_ib_update */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case -16L:
      x24 = XEXP (x6, 1);
      switch (GET_CODE (x24))
        {
        case MEM:
          if (pattern575 (x24) != 0
              || pattern638 (x2) != 0
              || pattern657 (operands[0]) != 0)
            return -1;
          x25 = XEXP (x24, 0);
          x28 = XEXP (x25, 0);
          if (!rtx_equal_p (x28, operands[5]))
            return -1;
          x17 = XEXP (x7, 1);
          x18 = XEXP (x17, 0);
          x19 = XEXP (x18, 0);
          if (!rtx_equal_p (x19, operands[5]))
            return -1;
          x20 = XEXP (x8, 1);
          x21 = XEXP (x20, 0);
          x22 = XEXP (x21, 0);
          if (!rtx_equal_p (x22, operands[5]))
            return -1;
          x44 = XEXP (x25, 1);
          switch (XWINT (x44, 0))
            {
            case -12L:
              x26 = XEXP (x18, 1);
              if (XWINT (x26, 0) != -8L)
                return -1;
              x27 = XEXP (x21, 1);
              if (XWINT (x27, 0) != -4L)
                return -1;
              x14 = XEXP (x9, 1);
              x15 = XEXP (x14, 0);
              if (!rtx_equal_p (x15, operands[5])
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 251 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 5)))
                return -1;
              return 6576; /* *p *ldm4_da_update */

            case -16L:
              x26 = XEXP (x18, 1);
              if (XWINT (x26, 0) != -12L)
                return -1;
              x27 = XEXP (x21, 1);
              if (XWINT (x27, 0) != -8L)
                return -1;
              x14 = XEXP (x9, 1);
              x15 = XEXP (x14, 0);
              if (GET_CODE (x15) != PLUS
                  || GET_MODE (x15) != E_SImode)
                return -1;
              x16 = XEXP (x15, 1);
              if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + -4])
                return -1;
              x23 = XEXP (x15, 0);
              if (!rtx_equal_p (x23, operands[5])
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 323 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 5)))
                return -1;
              return 6580; /* *p *ldm4_db_update */

            default:
              return -1;
            }

        case REG:
          operands[1] = x24;
          if (!arm_hard_general_register_operand (operands[1], E_SImode))
            return -1;
          x39 = XEXP (x6, 0);
          if (pattern599 (x39) != 0
              || pattern641 (x2) != 0
              || pattern663 (operands[0]) != 0)
            return -1;
          x40 = XEXP (x39, 0);
          x43 = XEXP (x40, 0);
          if (!rtx_equal_p (x43, operands[5]))
            return -1;
          x32 = XEXP (x7, 0);
          x33 = XEXP (x32, 0);
          x34 = XEXP (x33, 0);
          if (!rtx_equal_p (x34, operands[5]))
            return -1;
          x35 = XEXP (x8, 0);
          x36 = XEXP (x35, 0);
          x37 = XEXP (x36, 0);
          if (!rtx_equal_p (x37, operands[5]))
            return -1;
          x45 = XEXP (x40, 1);
          switch (XWINT (x45, 0))
            {
            case -12L:
              x41 = XEXP (x33, 1);
              if (XWINT (x41, 0) != -8L)
                return -1;
              x42 = XEXP (x36, 1);
              if (XWINT (x42, 0) != -4L)
                return -1;
              x29 = XEXP (x9, 0);
              x30 = XEXP (x29, 0);
              if (!rtx_equal_p (x30, operands[5])
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 283 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 5)))
                return -1;
              return 6578; /* *p *stm4_da_update */

            case -16L:
              x41 = XEXP (x33, 1);
              if (XWINT (x41, 0) != -12L)
                return -1;
              x42 = XEXP (x36, 1);
              if (XWINT (x42, 0) != -8L)
                return -1;
              x29 = XEXP (x9, 0);
              x30 = XEXP (x29, 0);
              if (GET_CODE (x30) != PLUS
                  || GET_MODE (x30) != E_SImode)
                return -1;
              x31 = XEXP (x30, 1);
              if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + -4])
                return -1;
              x38 = XEXP (x30, 0);
              if (!rtx_equal_p (x38, operands[5])
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 355 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 5)))
                return -1;
              return 6582; /* *p *stm4_db_update */

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_343 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24, x25;
  rtx x26, x27, x28, x29, x30, x31;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XVECEXP (x2, 0, 0);
  if (GET_CODE (x3) != SET)
    return -1;
  x4 = XVECEXP (x2, 0, 1);
  if (GET_CODE (x4) != SET)
    return -1;
  x5 = XVECEXP (x2, 0, 2);
  if (GET_CODE (x5) != SET)
    return -1;
  x6 = XEXP (x1, 0);
  operands[5] = x6;
  x7 = XEXP (x6, 0);
  operands[6] = x7;
  x8 = XEXP (x3, 1);
  switch (GET_CODE (x8))
    {
    case MEM:
      if (GET_MODE (x8) != E_SImode)
        return -1;
      x9 = XEXP (x4, 1);
      if (GET_CODE (x9) != MEM
          || GET_MODE (x9) != E_SImode)
        return -1;
      x10 = XEXP (x9, 0);
      if (GET_CODE (x10) != PLUS
          || GET_MODE (x10) != E_SImode)
        return -1;
      x11 = XEXP (x10, 1);
      if (GET_CODE (x11) != CONST_INT)
        return -1;
      x12 = XEXP (x5, 1);
      if (pattern621 (x12) != 0
          || pattern639 (operands[0]) != 0)
        return -1;
      x13 = XEXP (x8, 0);
      switch (GET_CODE (x13))
        {
        case REG:
        case SUBREG:
          operands[4] = x13;
          if (!s_register_operand (operands[4], E_SImode)
              || XWINT (x11, 0) != 4L)
            return -1;
          x14 = XEXP (x12, 0);
          x15 = XEXP (x14, 1);
          if (XWINT (x15, 0) != 8L)
            return -1;
          x16 = XEXP (x10, 0);
          if (!rtx_equal_p (x16, operands[4]))
            return -1;
          x17 = XEXP (x14, 0);
          if (!rtx_equal_p (x17, operands[4])
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 477 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3)))
            return -1;
          return 6583; /* *p *ldm3_ */

        case PLUS:
          if (GET_MODE (x13) != E_SImode)
            return -1;
          x18 = XEXP (x13, 1);
          if (GET_CODE (x18) != CONST_INT)
            return -1;
          x19 = XEXP (x13, 0);
          operands[4] = x19;
          if (!s_register_operand (operands[4], E_SImode))
            return -1;
          x16 = XEXP (x10, 0);
          if (!rtx_equal_p (x16, operands[4]))
            return -1;
          x14 = XEXP (x12, 0);
          x17 = XEXP (x14, 0);
          if (!rtx_equal_p (x17, operands[4]))
            return -1;
          switch (XWINT (x18, 0))
            {
            case 4L:
              if (XWINT (x11, 0) != 8L)
                return -1;
              x15 = XEXP (x14, 1);
              if (XWINT (x15, 0) != 12L
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 582 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3)))
                return -1;
              return 6587; /* *p *ldm3_ib */

            case -12L:
              if (XWINT (x11, 0) != -8L)
                return -1;
              x15 = XEXP (x14, 1);
              if (XWINT (x15, 0) != -4L
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 704 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3)))
                return -1;
              return 6595; /* *p *ldm3_db */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case REG:
      operands[1] = x8;
      if (!arm_hard_general_register_operand (operands[1], E_SImode))
        return -1;
      x20 = XEXP (x3, 0);
      if (GET_CODE (x20) != MEM
          || GET_MODE (x20) != E_SImode)
        return -1;
      x21 = XEXP (x4, 0);
      if (GET_CODE (x21) != MEM
          || GET_MODE (x21) != E_SImode)
        return -1;
      x22 = XEXP (x21, 0);
      if (GET_CODE (x22) != PLUS
          || GET_MODE (x22) != E_SImode)
        return -1;
      x23 = XEXP (x22, 1);
      if (GET_CODE (x23) != CONST_INT)
        return -1;
      x24 = XEXP (x5, 0);
      if (pattern630 (x24) != 0
          || !store_multiple_operation (operands[0], E_VOIDmode))
        return -1;
      x9 = XEXP (x4, 1);
      operands[2] = x9;
      if (!arm_hard_general_register_operand (operands[2], E_SImode))
        return -1;
      x12 = XEXP (x5, 1);
      operands[3] = x12;
      if (!arm_hard_general_register_operand (operands[3], E_SImode))
        return -1;
      x25 = XEXP (x20, 0);
      switch (GET_CODE (x25))
        {
        case REG:
        case SUBREG:
          operands[4] = x25;
          if (!s_register_operand (operands[4], E_SImode)
              || XWINT (x23, 0) != 4L)
            return -1;
          x26 = XEXP (x24, 0);
          x27 = XEXP (x26, 1);
          if (XWINT (x27, 0) != 8L)
            return -1;
          x28 = XEXP (x22, 0);
          if (!rtx_equal_p (x28, operands[4]))
            return -1;
          x29 = XEXP (x26, 0);
          if (!rtx_equal_p (x29, operands[4])
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 537 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3)))
            return -1;
          return 6585; /* *p *stm3_ */

        case PLUS:
          if (GET_MODE (x25) != E_SImode)
            return -1;
          x30 = XEXP (x25, 1);
          if (GET_CODE (x30) != CONST_INT)
            return -1;
          x31 = XEXP (x25, 0);
          operands[4] = x31;
          if (!s_register_operand (operands[4], E_SImode))
            return -1;
          x28 = XEXP (x22, 0);
          if (!rtx_equal_p (x28, operands[4]))
            return -1;
          x26 = XEXP (x24, 0);
          x29 = XEXP (x26, 0);
          if (!rtx_equal_p (x29, operands[4]))
            return -1;
          switch (XWINT (x30, 0))
            {
            case 4L:
              if (XWINT (x23, 0) != 8L)
                return -1;
              x27 = XEXP (x26, 1);
              if (XWINT (x27, 0) != 12L
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 613 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3)))
                return -1;
              return 6589; /* *p *stm3_ib */

            case -12L:
              if (XWINT (x23, 0) != -8L)
                return -1;
              x27 = XEXP (x26, 1);
              if (XWINT (x27, 0) != -4L
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 735 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3)))
                return -1;
              return 6597; /* *p *stm3_db */

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_344 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XVECEXP (x2, 0, 0);
  if (GET_CODE (x3) != SET)
    return -1;
  x4 = XVECEXP (x2, 0, 1);
  if (GET_CODE (x4) != SET)
    return -1;
  x5 = XEXP (x1, 0);
  operands[4] = x5;
  x6 = XEXP (x5, 0);
  operands[5] = x6;
  x7 = XEXP (x3, 1);
  switch (GET_CODE (x7))
    {
    case MEM:
      if (GET_MODE (x7) != E_SImode)
        return -1;
      x8 = XEXP (x4, 1);
      if (GET_CODE (x8) != MEM
          || pattern575 (x8) != 0
          || !load_multiple_operation (operands[0], E_VOIDmode))
        return -1;
      x9 = XEXP (x3, 0);
      operands[1] = x9;
      if (!arm_hard_general_register_operand (operands[1], E_SImode))
        return -1;
      x10 = XEXP (x4, 0);
      operands[2] = x10;
      if (!arm_hard_general_register_operand (operands[2], E_SImode))
        return -1;
      x11 = XEXP (x7, 0);
      switch (GET_CODE (x11))
        {
        case REG:
        case SUBREG:
          operands[3] = x11;
          if (!s_register_operand (operands[3], E_SImode))
            return -1;
          x12 = XEXP (x8, 0);
          x13 = XEXP (x12, 1);
          if (XWINT (x13, 0) != 4L)
            return -1;
          x14 = XEXP (x12, 0);
          if (!rtx_equal_p (x14, operands[3])
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 855 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 2)))
            return -1;
          return 6599; /* *p *ldm2_ */

        case PLUS:
          if (GET_MODE (x11) != E_SImode)
            return -1;
          x15 = XEXP (x11, 1);
          if (GET_CODE (x15) != CONST_INT)
            return -1;
          x16 = XEXP (x11, 0);
          operands[3] = x16;
          if (!s_register_operand (operands[3], E_SImode))
            return -1;
          x12 = XEXP (x8, 0);
          x14 = XEXP (x12, 0);
          if (!rtx_equal_p (x14, operands[3]))
            return -1;
          switch (XWINT (x15, 0))
            {
            case 4L:
              x13 = XEXP (x12, 1);
              if (XWINT (x13, 0) != 8L
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 942 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 2)))
                return -1;
              return 6603; /* *p *ldm2_ib */

            case -8L:
              x13 = XEXP (x12, 1);
              if (XWINT (x13, 0) != -4L
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1044 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 2)))
                return -1;
              return 6611; /* *p *ldm2_db */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case REG:
      operands[1] = x7;
      if (!arm_hard_general_register_operand (operands[1], E_SImode))
        return -1;
      x9 = XEXP (x3, 0);
      if (GET_CODE (x9) != MEM
          || GET_MODE (x9) != E_SImode)
        return -1;
      x10 = XEXP (x4, 0);
      if (pattern599 (x10) != 0
          || !store_multiple_operation (operands[0], E_VOIDmode))
        return -1;
      x8 = XEXP (x4, 1);
      operands[2] = x8;
      if (!arm_hard_general_register_operand (operands[2], E_SImode))
        return -1;
      x17 = XEXP (x9, 0);
      switch (GET_CODE (x17))
        {
        case REG:
        case SUBREG:
          operands[3] = x17;
          if (!s_register_operand (operands[3], E_SImode))
            return -1;
          x18 = XEXP (x10, 0);
          x19 = XEXP (x18, 1);
          if (XWINT (x19, 0) != 4L)
            return -1;
          x20 = XEXP (x18, 0);
          if (!rtx_equal_p (x20, operands[3])
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 904 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 2)))
            return -1;
          return 6601; /* *p *stm2_ */

        case PLUS:
          if (GET_MODE (x17) != E_SImode)
            return -1;
          x21 = XEXP (x17, 1);
          if (GET_CODE (x21) != CONST_INT)
            return -1;
          x22 = XEXP (x17, 0);
          operands[3] = x22;
          if (!s_register_operand (operands[3], E_SImode))
            return -1;
          x18 = XEXP (x10, 0);
          x20 = XEXP (x18, 0);
          if (!rtx_equal_p (x20, operands[3]))
            return -1;
          switch (XWINT (x21, 0))
            {
            case 4L:
              x19 = XEXP (x18, 1);
              if (XWINT (x19, 0) != 8L
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 968 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 2)))
                return -1;
              return 6605; /* *p *stm2_ib */

            case -8L:
              x19 = XEXP (x18, 1);
              if (XWINT (x19, 0) != -4L
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1070 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 2)))
                return -1;
              return 6613; /* *p *stm2_db */

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_345 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  switch (GET_CODE (x3))
    {
    case CONST_INT:
    case CONST_WIDE_INT:
    case CONST_POLY_INT:
    case CONST_FIXED:
    case CONST_DOUBLE:
    case CONST_VECTOR:
    case CONST:
    case REG:
    case SUBREG:
    case MEM:
    case LABEL_REF:
    case SYMBOL_REF:
    case HIGH:
      return recog_323 (x1, insn, pnum_clobbers);

    case PLUS:
      return recog_311 (x1, insn, pnum_clobbers);

    case COMPARE:
      return recog_317 (x1, insn, pnum_clobbers);

    case MINUS:
      return recog_310 (x1, insn, pnum_clobbers);

    case MULT:
    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      return recog_314 (x1, insn, pnum_clobbers);

    case UNSPEC:
      return recog_308 (x1, insn, pnum_clobbers);

    case AND:
      return recog_319 (x1, insn, pnum_clobbers);

    case IOR:
      return recog_315 (x1, insn, pnum_clobbers);

    case XOR:
      x4 = XEXP (x2, 0);
      operands[0] = x4;
      x5 = XEXP (x3, 0);
      switch (GET_CODE (x5))
        {
        case REG:
        case SUBREG:
          switch (pattern417 (x1))
            {
            case 0:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3829 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return -1;
              return 6410; /* *p *arm_xorsi3 */

            case 1:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 72 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6620; /* *p iwmmxt_xordi3 */

            case 2:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 328 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6632; /* *p *xorv2si3_iwmmxt */

            case 3:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 328 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6633; /* *p *xorv4hi3_iwmmxt */

            case 4:
              if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 328 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6634; /* *p *xorv8qi3_iwmmxt */

            default:
              return -1;
            }

        case MULT:
          if (pattern414 (x1) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9669 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 6541; /* *p *eor_multsi */

        case ASHIFT:
        case ROTATE:
        case ASHIFTRT:
        case LSHIFTRT:
        case ROTATERT:
          operands[2] = x5;
          if (pattern445 (x1) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9683 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && GET_CODE (operands[2]) != MULT)))
            return -1;
          return 6546; /* *p *eor_shiftsi */

        default:
          return -1;
        }

    case SMAX:
      return recog_325 (x1, insn, pnum_clobbers);

    case SMIN:
      return recog_326 (x1, insn, pnum_clobbers);

    case SS_PLUS:
      switch (pattern346 (x1))
        {
        case 0:
          if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4346 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY && !ARM_Q_BIT_READ)))
            return 6415; /* *p arm_qadd_insn */
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4346 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY && ARM_Q_BIT_READ)))
            return -1;
          return 6416; /* *p arm_qadd_setq_insn */

        case 1:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 351 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6638; /* *p ssaddv8qi3 */

        case 2:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 361 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6639; /* *p ssaddv4hi3 */

        case 3:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 371 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6640; /* *p ssaddv2si3 */

        case 4:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 75 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0)))
            return -1;
          return 6990; /* *p *arm_ssaddv4qq3 */

        case 5:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 75 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0)))
            return -1;
          return 6991; /* *p *arm_ssaddv2hq3 */

        case 6:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 75 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0)))
            return -1;
          return 6992; /* *p *arm_ssaddqq3 */

        case 7:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 75 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0)))
            return -1;
          return 6993; /* *p *arm_ssaddhq3 */

        case 8:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 75 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0)))
            return -1;
          return 6994; /* *p *arm_ssaddv2ha3 */

        case 9:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 75 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0)))
            return -1;
          return 6995; /* *p *arm_ssaddha3 */

        case 10:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 75 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ)))
            return -1;
          return 6996; /* *p *arm_ssaddsq3 */

        case 11:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 75 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ)))
            return -1;
          return 6997; /* *p *arm_ssaddsa3 */

        default:
          return -1;
        }

    case SS_MINUS:
      switch (pattern346 (x1))
        {
        case 0:
          if ((
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4346 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY && !ARM_Q_BIT_READ)))
            return 6417; /* *p arm_qsub_insn */
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4346 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY && ARM_Q_BIT_READ)))
            return -1;
          return 6418; /* *p arm_qsub_setq_insn */

        case 1:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 421 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6647; /* *p sssubv8qi3 */

        case 2:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 431 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6648; /* *p sssubv4hi3 */

        case 3:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 441 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6649; /* *p sssubv2si3 */

        case 4:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 135 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0)))
            return -1;
          return 7017; /* *p *arm_sssubv4qq3 */

        case 5:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 135 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0)))
            return -1;
          return 7018; /* *p *arm_sssubv2hq3 */

        case 6:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 135 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0)))
            return -1;
          return 7019; /* *p *arm_sssubqq3 */

        case 7:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 135 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0)))
            return -1;
          return 7020; /* *p *arm_sssubhq3 */

        case 8:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 135 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0)))
            return -1;
          return 7021; /* *p *arm_sssubv2ha3 */

        case 9:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 135 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0)))
            return -1;
          return 7022; /* *p *arm_sssubha3 */

        case 10:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 135 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ)))
            return -1;
          return 7023; /* *p *arm_sssubsq3 */

        case 11:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 135 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ)))
            return -1;
          return 7024; /* *p *arm_sssubsa3 */

        default:
          return -1;
        }

    case UNSPEC_VOLATILE:
      return recog_313 (x1, insn, pnum_clobbers);

    case NOT:
      if (GET_MODE (x3) != E_SImode)
        return -1;
      x4 = XEXP (x2, 0);
      operands[0] = x4;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x5 = XEXP (x3, 0);
      switch (GET_CODE (x5))
        {
        case MULT:
        case ASHIFT:
        case ROTATE:
        case ASHIFTRT:
        case LSHIFTRT:
        case ROTATERT:
          operands[3] = x5;
          if (!shift_operator (operands[3], E_SImode))
            return -1;
          x6 = XEXP (x1, 0);
          operands[4] = x6;
          x7 = XEXP (x6, 0);
          operands[5] = x7;
          x8 = XEXP (x5, 0);
          operands[1] = x8;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x9 = XEXP (x5, 1);
          operands[2] = x9;
          if (!shift_amount_operand (operands[2], E_SImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4783 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 6428; /* *p *not_shiftsi */

        case REG:
        case SUBREG:
          operands[1] = x5;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x6 = XEXP (x1, 0);
          operands[2] = x6;
          x7 = XEXP (x6, 0);
          operands[3] = x7;
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5388 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 6441; /* *p *arm_one_cmplsi2 */

        default:
          return -1;
        }

    case SIGN_EXTEND:
      return recog_320 (x1, insn, pnum_clobbers);

    case ZERO_EXTEND:
      return recog_318 (x1, insn, pnum_clobbers);

    case SIGN_EXTRACT:
      if (pattern347 (x1) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5090 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_arch_thumb2
   && IN_RANGE (INTVAL (operands[3]), 0, 31)
   && IN_RANGE (INTVAL (operands[2]), 1, 32 - INTVAL (operands[3])))))
        return -1;
      return 6434; /* *p *extv_reg */

    case ZERO_EXTRACT:
      if (pattern347 (x1) != 0
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5104 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_arch_thumb2
   && IN_RANGE (INTVAL (operands[3]), 0, 31)
   && IN_RANGE (INTVAL (operands[2]), 1, 32 - INTVAL (operands[3])))))
        return -1;
      return 6435; /* *p extzv_t2 */

    case DIV:
      x6 = XEXP (x1, 0);
      operands[3] = x6;
      x7 = XEXP (x6, 0);
      operands[4] = x7;
      x4 = XEXP (x2, 0);
      operands[0] = x4;
      x5 = XEXP (x3, 0);
      operands[1] = x5;
      x10 = XEXP (x3, 1);
      operands[2] = x10;
      switch (GET_MODE (operands[0]))
        {
        case E_SImode:
          if (pattern344 (x3, E_SImode) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5119 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_IDIV)))
            return -1;
          return 6436; /* *p divsi3 */

        case E_SFmode:
          if (pattern344 (x3, E_SFmode) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1077 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 6864; /* *p *divsf3_vfp */

        case E_DFmode:
          if (pattern344 (x3, E_DFmode) != 0
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1088 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 6865; /* *p *divdf3_vfp */

        default:
          return -1;
        }

    case UDIV:
      if (GET_MODE (x3) != E_SImode)
        return -1;
      x6 = XEXP (x1, 0);
      operands[3] = x6;
      x7 = XEXP (x6, 0);
      operands[4] = x7;
      x4 = XEXP (x2, 0);
      operands[0] = x4;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x5 = XEXP (x3, 0);
      operands[1] = x5;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      x10 = XEXP (x3, 1);
      operands[2] = x10;
      if (!s_register_operand (operands[2], E_SImode)
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5132 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_IDIV)))
        return -1;
      return 6437; /* *p udivsi3 */

    case NEG:
      return recog_324 (x1, insn, pnum_clobbers);

    case LO_SUM:
      if (GET_MODE (x3) != E_SImode)
        return -1;
      x6 = XEXP (x1, 0);
      operands[3] = x6;
      x7 = XEXP (x6, 0);
      operands[4] = x7;
      x4 = XEXP (x2, 0);
      operands[0] = x4;
      if (!nonimmediate_operand (operands[0], E_SImode))
        return -1;
      x5 = XEXP (x3, 0);
      operands[1] = x5;
      if (!nonimmediate_operand (operands[1], E_SImode))
        return -1;
      x10 = XEXP (x3, 1);
      operands[2] = x10;
      if (!general_operand (operands[2], E_SImode)
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6530 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_HAVE_MOVT && arm_valid_symbolic_address_p (operands[2]))))
        return -1;
      return 6520; /* *p *arm_movt */

    case CLZ:
      if (GET_MODE (x3) != E_SImode)
        return -1;
      x6 = XEXP (x1, 0);
      operands[2] = x6;
      x7 = XEXP (x6, 0);
      operands[3] = x7;
      x4 = XEXP (x2, 0);
      operands[0] = x4;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x5 = XEXP (x3, 0);
      operands[1] = x5;
      if (!s_register_operand (operands[1], E_SImode)
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 12178 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch5t)))
        return -1;
      return 6554; /* *p clzsi2 */

    case BSWAP:
      if (GET_MODE (x3) != E_SImode)
        return -1;
      x6 = XEXP (x1, 0);
      operands[2] = x6;
      x7 = XEXP (x6, 0);
      operands[3] = x7;
      x4 = XEXP (x2, 0);
      operands[0] = x4;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x5 = XEXP (x3, 0);
      operands[1] = x5;
      if (!s_register_operand (operands[1], E_SImode)
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 12369 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_arch6)))
        return -1;
      return 6558; /* *p *arm_rev */

    case VEC_DUPLICATE:
      x6 = XEXP (x1, 0);
      operands[2] = x6;
      x7 = XEXP (x6, 0);
      operands[3] = x7;
      x4 = XEXP (x2, 0);
      operands[0] = x4;
      x5 = XEXP (x3, 0);
      operands[1] = x5;
      switch (GET_MODE (operands[0]))
        {
        case E_V8QImode:
          if (!register_operand (operands[0], E_V8QImode)
              || GET_MODE (x3) != E_V8QImode
              || !s_register_operand (operands[1], E_QImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 33 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6616; /* *p tbcstv8qi */

        case E_V4HImode:
          if (!register_operand (operands[0], E_V4HImode)
              || GET_MODE (x3) != E_V4HImode
              || !s_register_operand (operands[1], E_HImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 42 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6617; /* *p tbcstv4hi */

        case E_V2SImode:
          if (!register_operand (operands[0], E_V2SImode)
              || GET_MODE (x3) != E_V2SImode
              || !s_register_operand (operands[1], E_SImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 51 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6618; /* *p tbcstv2si */

        default:
          return -1;
        }

    case US_PLUS:
      switch (pattern348 (x1))
        {
        case 0:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 381 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6641; /* *p usaddv8qi3 */

        case 1:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 391 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6642; /* *p usaddv4hi3 */

        case 2:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 401 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6643; /* *p usaddv2si3 */

        case 3:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 55 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 6984; /* *p usaddv4uqq3 */

        case 4:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 55 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 6985; /* *p usaddv2uhq3 */

        case 5:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 55 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 6986; /* *p usadduqq3 */

        case 6:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 55 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 6987; /* *p usadduhq3 */

        case 7:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 55 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 6988; /* *p usaddv2uha3 */

        case 8:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 55 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 6989; /* *p usadduha3 */

        default:
          return -1;
        }

    case US_MINUS:
      switch (pattern348 (x1))
        {
        case 0:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 451 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6650; /* *p ussubv8qi3 */

        case 1:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 461 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6651; /* *p ussubv4hi3 */

        case 2:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 471 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6652; /* *p ussubv2si3 */

        case 3:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 115 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 7011; /* *p ussubv4uqq3 */

        case 4:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 115 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 7012; /* *p ussubv2uhq3 */

        case 5:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 115 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 7013; /* *p ussubuqq3 */

        case 6:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 115 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 7014; /* *p ussubuhq3 */

        case 7:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 115 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 7015; /* *p ussubv2uha3 */

        case 8:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 115 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 7016; /* *p ussubuha3 */

        default:
          return -1;
        }

    case TRUNCATE:
      return recog_309 (x1, insn, pnum_clobbers);

    case VEC_MERGE:
      return recog_312 (x1, insn, pnum_clobbers);

    case VEC_SELECT:
      return recog_322 (x1, insn, pnum_clobbers);

    case UMAX:
      switch (pattern349 (x1))
        {
        case 0:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 913 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6689; /* *p *umaxv2si3_iwmmxt */

        case 1:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 913 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6690; /* *p *umaxv4hi3_iwmmxt */

        case 2:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 913 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6691; /* *p *umaxv8qi3_iwmmxt */

        default:
          return -1;
        }

    case UMIN:
      switch (pattern349 (x1))
        {
        case 0:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 933 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6695; /* *p *uminv2si3_iwmmxt */

        case 1:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 933 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6696; /* *p *uminv4hi3_iwmmxt */

        case 2:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 933 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6697; /* *p *uminv8qi3_iwmmxt */

        default:
          return -1;
        }

    case VEC_CONCAT:
      return recog_316 (x1, insn, pnum_clobbers);

    case ABS:
      switch (pattern350 (x1))
        {
        case 0:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 872 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 6856; /* *p *abssf2_vfp */

        case 1:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 881 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 6857; /* *p *absdf2_vfp */

        default:
          return -1;
        }

    case FMA:
      return recog_321 (x1, insn, pnum_clobbers);

    case FLOAT_EXTEND:
      x6 = XEXP (x1, 0);
      operands[2] = x6;
      x7 = XEXP (x6, 0);
      operands[3] = x7;
      x4 = XEXP (x2, 0);
      operands[0] = x4;
      x5 = XEXP (x3, 0);
      operands[1] = x5;
      switch (GET_MODE (operands[0]))
        {
        case E_DFmode:
          if (!s_register_operand (operands[0], E_DFmode)
              || GET_MODE (x3) != E_DFmode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case E_SFmode:
              if (!s_register_operand (operands[1], E_SFmode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1458 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
                return -1;
              return 6888; /* *p *extendsfdf2_vfp */

            case E_HFmode:
              if (!s_register_operand (operands[1], E_HFmode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1494 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_FP16_TO_DOUBLE)))
                return -1;
              return 6892; /* *p *extendhfdf2 */

            default:
              return -1;
            }

        case E_SFmode:
          if (!s_register_operand (operands[0], E_SFmode)
              || GET_MODE (x3) != E_SFmode
              || !s_register_operand (operands[1], E_HFmode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1476 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && (TARGET_FP16 || TARGET_VFP_FP16INST))))
            return -1;
          return 6890; /* *p extendhfsf2 */

        default:
          return -1;
        }

    case FLOAT_TRUNCATE:
      x6 = XEXP (x1, 0);
      operands[2] = x6;
      x7 = XEXP (x6, 0);
      operands[3] = x7;
      x4 = XEXP (x2, 0);
      operands[0] = x4;
      x5 = XEXP (x3, 0);
      operands[1] = x5;
      switch (GET_MODE (operands[0]))
        {
        case E_SFmode:
          if (!s_register_operand (operands[0], E_SFmode)
              || GET_MODE (x3) != E_SFmode
              || !s_register_operand (operands[1], E_DFmode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1467 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 6889; /* *p *truncdfsf2_vfp */

        case E_HFmode:
          if (!s_register_operand (operands[0], E_HFmode)
              || GET_MODE (x3) != E_HFmode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case E_DFmode:
              if (!s_register_operand (operands[1], E_DFmode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1485 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_FP16_TO_DOUBLE)))
                return -1;
              return 6891; /* *p *truncdfhf2 */

            case E_SFmode:
              if (!s_register_operand (operands[1], E_SFmode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1503 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && (TARGET_FP16 || TARGET_VFP_FP16INST))))
                return -1;
              return 6893; /* *p truncsfhf2 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case FIX:
      return recog_327 (x1, insn, pnum_clobbers);

    case UNSIGNED_FIX:
      if (GET_MODE (x3) != E_SImode)
        return -1;
      x5 = XEXP (x3, 0);
      if (GET_CODE (x5) != FIX)
        return -1;
      x6 = XEXP (x1, 0);
      operands[2] = x6;
      x7 = XEXP (x6, 0);
      operands[3] = x7;
      x4 = XEXP (x2, 0);
      operands[0] = x4;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x8 = XEXP (x5, 0);
      operands[1] = x8;
      switch (GET_MODE (x5))
        {
        case E_SFmode:
          if (!s_register_operand (operands[1], E_SFmode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1531 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 6896; /* *p fixuns_truncsfsi2 */

        case E_DFmode:
          if (!s_register_operand (operands[1], E_DFmode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1540 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 6897; /* *p fixuns_truncdfsi2 */

        default:
          return -1;
        }

    case FLOAT:
      switch (pattern351 (x1))
        {
        case 0:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1550 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 6898; /* *p *floatsisf2_vfp */

        case 1:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1559 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 6899; /* *p *floatsidf2_vfp */

        default:
          return -1;
        }

    case UNSIGNED_FLOAT:
      switch (pattern351 (x1))
        {
        case 0:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1569 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 6900; /* *p floatunssisf2 */

        case 1:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1578 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 6901; /* *p floatunssidf2 */

        default:
          return -1;
        }

    case SQRT:
      switch (pattern350 (x1))
        {
        case 0:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1614 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 6902; /* *p *sqrtsf2_vfp */

        case 1:
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1624 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 6903; /* *p *sqrtdf2_vfp */

        default:
          return -1;
        }

    case SS_TRUNCATE:
      if (GET_MODE (x3) != E_HImode)
        return -1;
      x5 = XEXP (x3, 0);
      if (!sat_shift_operator (x5, E_SImode))
        return -1;
      operands[1] = x5;
      x6 = XEXP (x1, 0);
      operands[4] = x6;
      x7 = XEXP (x6, 0);
      operands[5] = x7;
      x4 = XEXP (x2, 0);
      operands[0] = x4;
      if (!s_register_operand (operands[0], E_HImode))
        return -1;
      x8 = XEXP (x5, 0);
      operands[2] = x8;
      if (!s_register_operand (operands[2], E_SImode))
        return -1;
      x9 = XEXP (x5, 1);
      operands[3] = x9;
      if (!immediate_operand (operands[3], E_SImode)
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 481 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT && arm_arch6 && !ARM_Q_BIT_READ)))
        return -1;
      return 7025; /* *p arm_ssatsihi_shift */

    case US_TRUNCATE:
      if (GET_MODE (x3) != E_HImode)
        return -1;
      x6 = XEXP (x1, 0);
      operands[2] = x6;
      x7 = XEXP (x6, 0);
      operands[3] = x7;
      x4 = XEXP (x2, 0);
      operands[0] = x4;
      if (!s_register_operand (operands[0], E_HImode))
        return -1;
      x5 = XEXP (x3, 0);
      operands[1] = x5;
      if (!s_register_operand (operands[1], E_SImode)
          || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 490 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ)))
        return -1;
      return 7026; /* *p arm_usatsihi */

    case US_ASHIFT:
      x6 = XEXP (x1, 0);
      operands[3] = x6;
      x7 = XEXP (x6, 0);
      operands[4] = x7;
      x4 = XEXP (x2, 0);
      operands[0] = x4;
      x5 = XEXP (x3, 0);
      operands[1] = x5;
      x10 = XEXP (x3, 1);
      operands[2] = x10;
      if (!immediate_operand (operands[2], E_SImode))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case E_DImode:
          if (!arm_low_register_operand (operands[0], E_DImode)
              || GET_MODE (x3) != E_DImode
              || !arm_low_register_operand (operands[1], E_DImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 10228 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE)))
            return -1;
          return 7033; /* *p mve_uqshll_di */

        case E_SImode:
          if (!arm_general_register_operand (operands[0], E_SImode)
              || GET_MODE (x3) != E_SImode
              || !arm_general_register_operand (operands[1], E_SImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 10251 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE)))
            return -1;
          return 7035; /* *p mve_uqshl_si */

        default:
          return -1;
        }

    case SS_ASHIFT:
      x6 = XEXP (x1, 0);
      operands[3] = x6;
      x7 = XEXP (x6, 0);
      operands[4] = x7;
      x4 = XEXP (x2, 0);
      operands[0] = x4;
      x5 = XEXP (x3, 0);
      operands[1] = x5;
      x10 = XEXP (x3, 1);
      operands[2] = x10;
      if (!immediate_operand (operands[2], E_SImode))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case E_SImode:
          if (!arm_general_register_operand (operands[0], E_SImode)
              || GET_MODE (x3) != E_SImode
              || !arm_general_register_operand (operands[1], E_DImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 10274 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE)))
            return -1;
          return 7037; /* *p mve_sqshl_si */

        case E_DImode:
          if (!arm_low_register_operand (operands[0], E_DImode)
              || GET_MODE (x3) != E_DImode
              || !arm_low_register_operand (operands[1], E_DImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 10309 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE)))
            return -1;
          return 7040; /* *p mve_sqshll_di */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_346 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    case COMPARE:
      return recog_278 (x1, insn, pnum_clobbers);

    case MULT:
    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      return recog_279 (x1, insn, pnum_clobbers);

    case TRUNCATE:
      return recog_272 (x1, insn, pnum_clobbers);

    case UNSPEC:
      return recog_289 (x1, insn, pnum_clobbers);

    case NE:
    case EQ:
    case GE:
    case GT:
    case LE:
    case LT:
    case GEU:
    case GTU:
    case LEU:
    case LTU:
    case UNORDERED:
    case ORDERED:
    case UNGE:
    case UNGT:
    case UNLE:
    case UNLT:
      return recog_280 (x1, insn, pnum_clobbers);

    case IF_THEN_ELSE:
      x3 = XEXP (x2, 0);
      switch (GET_CODE (x3))
        {
        case NE:
        case EQ:
        case GE:
        case GT:
        case LE:
        case LT:
        case LTGT:
        case GEU:
        case GTU:
        case LEU:
        case LTU:
        case UNORDERED:
        case ORDERED:
        case UNEQ:
        case UNGE:
        case UNGT:
        case UNLE:
        case UNLT:
          switch (GET_CODE (x3))
            {
            case NE:
            case EQ:
            case GE:
            case GT:
            case LE:
            case LT:
            case GEU:
            case GTU:
            case LEU:
            case LTU:
            case UNORDERED:
            case ORDERED:
            case UNGE:
            case UNGT:
            case UNLE:
            case UNLT:
              res = recog_250 (x1, insn, pnum_clobbers);
              if (res >= 0)
                return res;
              break;

            default:
              break;
            }
          if (pnum_clobbers == NULL)
            return -1;
          operands[5] = x3;
          if (!comparison_operator (operands[5], E_VOIDmode))
            return -1;
          x4 = XEXP (x3, 0);
          if (GET_CODE (x4) != PLUS
              || GET_MODE (x4) != E_SImode)
            return -1;
          x5 = XEXP (x3, 1);
          if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x6 = XEXP (x1, 0);
          operands[0] = x6;
          if (!s_register_operand (operands[0], E_SImode)
              || GET_MODE (x2) != E_SImode)
            return -1;
          x7 = XEXP (x4, 0);
          operands[3] = x7;
          if (!s_register_operand (operands[3], E_SImode))
            return -1;
          x8 = XEXP (x4, 1);
          operands[4] = x8;
          if (!arm_add_operand (operands[4], E_SImode))
            return -1;
          x9 = XEXP (x2, 1);
          operands[1] = x9;
          if (!arm_rhs_operand (operands[1], E_SImode))
            return -1;
          x10 = XEXP (x2, 2);
          operands[2] = x10;
          if (!arm_rhs_operand (operands[2], E_SImode)
              || !
#line 10750 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          *pnum_clobbers = 1;
          return 350; /* movcond_addsi */

        default:
          return -1;
        }

    case SMIN:
    case SMAX:
    case UMIN:
    case UMAX:
      return recog_283 (x1, insn, pnum_clobbers);

    case PLUS:
    case MINUS:
    case AND:
    case IOR:
    case XOR:
      x6 = XEXP (x1, 0);
      operands[0] = x6;
      switch (GET_CODE (x2))
        {
        case PLUS:
          res = recog_256 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        case MINUS:
          res = recog_259 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        case AND:
          res = recog_260 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        case IOR:
          res = recog_261 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        case XOR:
          res = recog_262 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        default:
          break;
        }
      if (pnum_clobbers != NULL)
        {
          res = recog_263 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      if (GET_MODE (x2) == E_SImode)
        {
          res = recog_264 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      if (pnum_clobbers == NULL)
        return -1;
      if (s_register_operand (operands[0], E_SImode))
        {
          res = recog_265 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      switch (GET_CODE (x2))
        {
        case PLUS:
        case AND:
          operands[5] = x2;
          if (shiftable_operator_strict_it (operands[5], E_SImode))
            {
              x3 = XEXP (x2, 0);
              if (arm_comparison_operator (x3, E_SImode))
                {
                  operands[4] = x3;
                  if (s_register_operand (operands[0], E_SImode))
                    {
                      x4 = XEXP (x3, 0);
                      operands[2] = x4;
                      if (s_register_operand (operands[2], E_SImode))
                        {
                          x5 = XEXP (x3, 1);
                          operands[3] = x5;
                          if (arm_rhs_operand (operands[3], E_SImode))
                            {
                              x9 = XEXP (x2, 1);
                              operands[1] = x9;
                              if (s_register_operand (operands[1], E_SImode)
                                  && 
#line 798 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_restrict_it))
                                {
                                  *pnum_clobbers = 1;
                                  return 1030; /* *thumb2_cond_arith_strict_it */
                                }
                            }
                        }
                    }
                }
            }
          if (GET_CODE (x2) != PLUS
              || GET_MODE (x2) != E_SImode
              || !low_register_operand (operands[0], E_SImode))
            return -1;
          x3 = XEXP (x2, 0);
          operands[1] = x3;
          if (!low_register_operand (operands[1], E_SImode))
            return -1;
          x9 = XEXP (x2, 1);
          operands[2] = x9;
          if (!low_reg_or_int_operand (operands[2], E_SImode)
              || !
#line 1301 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
            return -1;
          *pnum_clobbers = 1;
          return 1050; /* *thumb2_addsi_short */

        case MINUS:
          if (GET_MODE (x2) != E_SImode
              || !low_register_operand (operands[0], E_SImode))
            return -1;
          x3 = XEXP (x2, 0);
          operands[1] = x3;
          if (!low_register_operand (operands[1], E_SImode))
            return -1;
          x9 = XEXP (x2, 1);
          operands[2] = x9;
          if (!low_register_operand (operands[2], E_SImode)
              || !
#line 1330 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
            return -1;
          *pnum_clobbers = 1;
          return 1051; /* *thumb2_subsi_short */

        default:
          return -1;
        }

    case SS_PLUS:
      return recog_290 (x1, insn, pnum_clobbers);

    case SS_MINUS:
      return recog_291 (x1, insn, pnum_clobbers);

    case UNSPEC_VOLATILE:
      return recog_275 (x1, insn, pnum_clobbers);

    case NOT:
      return recog_284 (x1, insn, pnum_clobbers);

    case SIGN_EXTEND:
      return recog_288 (x1, insn, pnum_clobbers);

    case ZERO_EXTEND:
      return recog_285 (x1, insn, pnum_clobbers);

    case SIGN_EXTRACT:
      if (GET_MODE (x2) != E_SImode)
        return -1;
      x9 = XEXP (x2, 1);
      if (GET_CODE (x9) != CONST_INT)
        return -1;
      operands[2] = x9;
      if (const_int_operand (operands[2], E_SImode))
        {
          x6 = XEXP (x1, 0);
          operands[0] = x6;
          if (s_register_operand (operands[0], E_SImode))
            {
              x3 = XEXP (x2, 0);
              operands[1] = x3;
              if (s_register_operand (operands[1], E_SImode))
                {
                  x10 = XEXP (x2, 2);
                  operands[3] = x10;
                  if (const_int_operand (operands[3], E_SImode)
                      && 
#line 5090 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_arch_thumb2
   && IN_RANGE (INTVAL (operands[3]), 0, 31)
   && IN_RANGE (INTVAL (operands[2]), 1, 32 - INTVAL (operands[3]))))
                    return 164; /* *extv_reg */
                }
            }
        }
      if (pnum_clobbers == NULL
          || XWINT (x9, 0) != 1L)
        return -1;
      x6 = XEXP (x1, 0);
      operands[0] = x6;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x3 = XEXP (x2, 0);
      operands[1] = x3;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      x10 = XEXP (x2, 2);
      operands[2] = x10;
      if (!const_int_operand (operands[2], E_SImode)
          || !
#line 11822 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      *pnum_clobbers = 1;
      return 382; /* *sign_extract_onebit */

    case ZERO_EXTRACT:
      if (pattern3 (x1) != 0
          || !
#line 5104 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_arch_thumb2
   && IN_RANGE (INTVAL (operands[3]), 0, 31)
   && IN_RANGE (INTVAL (operands[2]), 1, 32 - INTVAL (operands[3]))))
        return -1;
      return 165; /* extzv_t2 */

    case DIV:
      x6 = XEXP (x1, 0);
      operands[0] = x6;
      x3 = XEXP (x2, 0);
      operands[1] = x3;
      x9 = XEXP (x2, 1);
      operands[2] = x9;
      switch (GET_MODE (operands[0]))
        {
        case E_SImode:
          if (pattern1 (x2, E_SImode) != 0
              || !
#line 5119 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_IDIV))
            return -1;
          return 166; /* divsi3 */

        case E_HFmode:
          if (pattern1 (x2, E_HFmode) != 0
              || !
#line 1064 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 794; /* divhf3 */

        case E_SFmode:
          if (pattern1 (x2, E_SFmode) != 0
              || !
#line 1077 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
            return -1;
          return 795; /* *divsf3_vfp */

        case E_DFmode:
          if (pattern1 (x2, E_DFmode) != 0
              || !
#line 1088 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
            return -1;
          return 796; /* *divdf3_vfp */

        default:
          return -1;
        }

    case UDIV:
      if (pattern4 (x1, E_SImode) != 0
          || !
#line 5132 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_IDIV))
        return -1;
      return 167; /* udivsi3 */

    case NEG:
      return recog_281 (x1, insn, pnum_clobbers);

    case ABS:
      return recog_282 (x1, insn, pnum_clobbers);

    case CONST_INT:
    case CONST_WIDE_INT:
    case CONST_POLY_INT:
    case CONST_FIXED:
    case CONST_DOUBLE:
    case CONST_VECTOR:
    case CONST:
    case REG:
    case SUBREG:
    case MEM:
    case LABEL_REF:
    case SYMBOL_REF:
    case HIGH:
      return recog_273 (x1, insn, pnum_clobbers);

    case LO_SUM:
      if (GET_MODE (x2) != E_SImode)
        return -1;
      x6 = XEXP (x1, 0);
      operands[0] = x6;
      if (!nonimmediate_operand (operands[0], E_SImode))
        return -1;
      x3 = XEXP (x2, 0);
      operands[1] = x3;
      if (!nonimmediate_operand (operands[1], E_SImode))
        return -1;
      x9 = XEXP (x2, 1);
      operands[2] = x9;
      if (!general_operand (operands[2], E_SImode)
          || !
#line 6530 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_HAVE_MOVT && arm_valid_symbolic_address_p (operands[2])))
        return -1;
      return 256; /* *arm_movt */

    case CLZ:
      return recog_294 (x1, insn, pnum_clobbers);

    case CTZ:
      if (GET_MODE (x2) != E_SImode)
        return -1;
      x6 = XEXP (x1, 0);
      operands[0] = x6;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x3 = XEXP (x2, 0);
      operands[1] = x3;
      if (!s_register_operand (operands[1], E_SImode)
          || !
#line 12198 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch_thumb2))
        return -1;
      return 401; /* ctzsi2 */

    case BSWAP:
      return recog_296 (x1, insn, pnum_clobbers);

    case VEC_DUPLICATE:
      return recog_274 (x1, insn, pnum_clobbers);

    case US_PLUS:
      return recog_292 (x1, insn, pnum_clobbers);

    case US_MINUS:
      return recog_293 (x1, insn, pnum_clobbers);

    case VEC_MERGE:
      return recog_276 (x1, insn, pnum_clobbers);

    case VEC_SELECT:
      return recog_286 (x1, insn, pnum_clobbers);

    case VEC_CONCAT:
      return recog_287 (x1, insn, pnum_clobbers);

    case FMA:
      return recog_277 (x1, insn, pnum_clobbers);

    case FLOAT_EXTEND:
      x6 = XEXP (x1, 0);
      operands[0] = x6;
      x3 = XEXP (x2, 0);
      operands[1] = x3;
      switch (GET_MODE (operands[0]))
        {
        case E_DFmode:
          if (!s_register_operand (operands[0], E_DFmode)
              || GET_MODE (x2) != E_DFmode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case E_SFmode:
              if (!s_register_operand (operands[1], E_SFmode)
                  || !
#line 1458 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
                return -1;
              return 830; /* *extendsfdf2_vfp */

            case E_HFmode:
              if (!s_register_operand (operands[1], E_HFmode)
                  || !
#line 1494 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_FP16_TO_DOUBLE))
                return -1;
              return 834; /* *extendhfdf2 */

            default:
              return -1;
            }

        case E_SFmode:
          if (!s_register_operand (operands[0], E_SFmode)
              || GET_MODE (x2) != E_SFmode
              || !s_register_operand (operands[1], E_HFmode)
              || !
#line 1476 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && (TARGET_FP16 || TARGET_VFP_FP16INST)))
            return -1;
          return 832; /* extendhfsf2 */

        default:
          return -1;
        }

    case FLOAT_TRUNCATE:
      x6 = XEXP (x1, 0);
      operands[0] = x6;
      x3 = XEXP (x2, 0);
      operands[1] = x3;
      switch (GET_MODE (operands[0]))
        {
        case E_SFmode:
          if (!s_register_operand (operands[0], E_SFmode)
              || GET_MODE (x2) != E_SFmode
              || !s_register_operand (operands[1], E_DFmode)
              || !
#line 1467 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
            return -1;
          return 831; /* *truncdfsf2_vfp */

        case E_HFmode:
          if (!s_register_operand (operands[0], E_HFmode)
              || GET_MODE (x2) != E_HFmode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case E_DFmode:
              if (!s_register_operand (operands[1], E_DFmode)
                  || !
#line 1485 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_FP16_TO_DOUBLE))
                return -1;
              return 833; /* *truncdfhf2 */

            case E_SFmode:
              if (!s_register_operand (operands[1], E_SFmode)
                  || !
#line 1503 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && (TARGET_FP16 || TARGET_VFP_FP16INST)))
                return -1;
              return 835; /* truncsfhf2 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case FIX:
      return recog_295 (x1, insn, pnum_clobbers);

    case UNSIGNED_FIX:
      x6 = XEXP (x1, 0);
      operands[0] = x6;
      x3 = XEXP (x2, 0);
      switch (GET_CODE (x3))
        {
        case FIX:
          if (!s_register_operand (operands[0], E_SImode)
              || GET_MODE (x2) != E_SImode)
            return -1;
          x4 = XEXP (x3, 0);
          operands[1] = x4;
          switch (GET_MODE (x3))
            {
            case E_SFmode:
              if (!s_register_operand (operands[1], E_SFmode)
                  || !
#line 1531 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
                return -1;
              return 838; /* fixuns_truncsfsi2 */

            case E_DFmode:
              if (!s_register_operand (operands[1], E_DFmode)
                  || !
#line 1540 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
                return -1;
              return 839; /* fixuns_truncdfsi2 */

            default:
              return -1;
            }

        case UNSPEC:
          switch (pattern288 (x2))
            {
            case 0:
              if (!
#line 2053 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
                return -1;
              return 899; /* lceilusfsi2 */

            case 1:
              if (!(
#line 2053 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
                return -1;
              return 905; /* lceiludfsi2 */

            case 2:
              if (!
#line 2053 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
                return -1;
              return 900; /* lfloorusfsi2 */

            case 3:
              if (!(
#line 2053 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
                return -1;
              return 906; /* lfloorudfsi2 */

            case 4:
              if (!
#line 2053 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
                return -1;
              return 901; /* lroundusfsi2 */

            case 5:
              if (!(
#line 2053 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
                return -1;
              return 907; /* lroundudfsi2 */

            case 6:
              if (!
#line 668 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
                return -1;
              return 1217; /* neon_vcvtpuv2sfv2si */

            case 7:
              if (!
#line 668 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
                return -1;
              return 1223; /* neon_vcvtpuv4sfv4si */

            case 8:
              if (!
#line 668 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
                return -1;
              return 1218; /* neon_vcvtmuv2sfv2si */

            case 9:
              if (!
#line 668 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
                return -1;
              return 1224; /* neon_vcvtmuv4sfv4si */

            case 10:
              if (!
#line 668 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
                return -1;
              return 1219; /* neon_vcvtauv2sfv2si */

            case 11:
              if (!
#line 668 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
                return -1;
              return 1225; /* neon_vcvtauv4sfv4si */

            default:
              return -1;
            }

        case REG:
        case SUBREG:
          switch (pattern289 (x2))
            {
            case 0:
              if (!
#line 3671 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2093; /* fixuns_truncv2sfv2si2 */

            case 1:
              if (!
#line 3671 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2094; /* fixuns_truncv4sfv4si2 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case FLOAT:
      switch (pattern6 (x1))
        {
        case 0:
          if (!
#line 1550 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
            return -1;
          return 840; /* *floatsisf2_vfp */

        case 1:
          if (!
#line 1559 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
            return -1;
          return 841; /* *floatsidf2_vfp */

        case 2:
          if (!
#line 3647 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !flag_rounding_math))
            return -1;
          return 2087; /* floatv2siv2sf2 */

        case 3:
          if (!
#line 3647 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !flag_rounding_math))
            return -1;
          return 2088; /* floatv4siv4sf2 */

        default:
          return -1;
        }

    case UNSIGNED_FLOAT:
      switch (pattern6 (x1))
        {
        case 0:
          if (!
#line 1569 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
            return -1;
          return 842; /* floatunssisf2 */

        case 1:
          if (!
#line 1578 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
            return -1;
          return 843; /* floatunssidf2 */

        case 2:
          if (!
#line 3655 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !flag_rounding_math))
            return -1;
          return 2089; /* floatunsv2siv2sf2 */

        case 3:
          if (!
#line 3655 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && !flag_rounding_math))
            return -1;
          return 2090; /* floatunsv4siv4sf2 */

        default:
          return -1;
        }

    case SQRT:
      x6 = XEXP (x1, 0);
      operands[0] = x6;
      x3 = XEXP (x2, 0);
      operands[1] = x3;
      switch (GET_MODE (operands[0]))
        {
        case E_HFmode:
          if (!s_register_operand (operands[0], E_HFmode)
              || GET_MODE (x2) != E_HFmode
              || !s_register_operand (operands[1], E_HFmode)
              || !
#line 1590 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 844; /* neon_vsqrthf */

        case E_SFmode:
          if (!s_register_operand (operands[0], E_SFmode)
              || GET_MODE (x2) != E_SFmode
              || !s_register_operand (operands[1], E_SFmode)
              || !
#line 1614 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
            return -1;
          return 846; /* *sqrtsf2_vfp */

        case E_DFmode:
          if (!s_register_operand (operands[0], E_DFmode)
              || GET_MODE (x2) != E_DFmode
              || !s_register_operand (operands[1], E_DFmode)
              || !
#line 1624 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
            return -1;
          return 847; /* *sqrtdf2_vfp */

        default:
          return -1;
        }

    case POPCOUNT:
      x6 = XEXP (x1, 0);
      operands[0] = x6;
      x3 = XEXP (x2, 0);
      operands[1] = x3;
      switch (GET_MODE (operands[0]))
        {
        case E_V8QImode:
          if (!s_register_operand (operands[0], E_V8QImode)
              || GET_MODE (x2) != E_V8QImode
              || !s_register_operand (operands[1], E_V8QImode)
              || !
#line 3128 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2011; /* popcountv8qi2 */

        case E_V16QImode:
          if (!s_register_operand (operands[0], E_V16QImode)
              || GET_MODE (x2) != E_V16QImode
              || !s_register_operand (operands[1], E_V16QImode)
              || !
#line 3128 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2012; /* popcountv16qi2 */

        default:
          return -1;
        }

    case SS_MULT:
      if (pnum_clobbers == NULL
          || pattern4 (x1, E_SAmode) != 0
          || !
#line 264 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT && arm_arch6 && !ARM_Q_BIT_READ))
        return -1;
      *pnum_clobbers = 3;
      return 3034; /* *arm_ssmulsa3 */

    case US_MULT:
      if (pnum_clobbers == NULL
          || pattern4 (x1, E_USAmode) != 0
          || !
#line 336 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT && arm_arch6 && !ARM_Q_BIT_READ))
        return -1;
      *pnum_clobbers = 3;
      return 3035; /* *arm_usmulusa3 */

    case SS_TRUNCATE:
      if (GET_MODE (x2) != E_HImode)
        return -1;
      x3 = XEXP (x2, 0);
      if (!sat_shift_operator (x3, E_SImode))
        return -1;
      operands[1] = x3;
      x6 = XEXP (x1, 0);
      operands[0] = x6;
      if (!s_register_operand (operands[0], E_HImode))
        return -1;
      x4 = XEXP (x3, 0);
      operands[2] = x4;
      if (!s_register_operand (operands[2], E_SImode))
        return -1;
      x5 = XEXP (x3, 1);
      operands[3] = x5;
      if (!immediate_operand (operands[3], E_SImode)
          || !
#line 481 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT && arm_arch6 && !ARM_Q_BIT_READ))
        return -1;
      return 3036; /* arm_ssatsihi_shift */

    case US_TRUNCATE:
      if (GET_MODE (x2) != E_HImode)
        return -1;
      x6 = XEXP (x1, 0);
      operands[0] = x6;
      if (!s_register_operand (operands[0], E_HImode))
        return -1;
      x3 = XEXP (x2, 0);
      operands[1] = x3;
      if (!s_register_operand (operands[1], E_SImode)
          || !
#line 490 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ))
        return -1;
      return 3037; /* arm_usatsihi */

    case US_ASHIFT:
      x6 = XEXP (x1, 0);
      operands[0] = x6;
      x3 = XEXP (x2, 0);
      operands[1] = x3;
      x9 = XEXP (x2, 1);
      operands[2] = x9;
      if (!immediate_operand (operands[2], E_SImode))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case E_DImode:
          if (!arm_low_register_operand (operands[0], E_DImode)
              || GET_MODE (x2) != E_DImode
              || !arm_low_register_operand (operands[1], E_DImode)
              || !
#line 10228 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4928; /* mve_uqshll_di */

        case E_SImode:
          if (!arm_general_register_operand (operands[0], E_SImode)
              || GET_MODE (x2) != E_SImode
              || !arm_general_register_operand (operands[1], E_SImode)
              || !
#line 10251 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4930; /* mve_uqshl_si */

        default:
          return -1;
        }

    case SS_ASHIFT:
      x6 = XEXP (x1, 0);
      operands[0] = x6;
      x3 = XEXP (x2, 0);
      operands[1] = x3;
      x9 = XEXP (x2, 1);
      operands[2] = x9;
      if (!immediate_operand (operands[2], E_SImode))
        return -1;
      switch (GET_MODE (operands[0]))
        {
        case E_SImode:
          if (!arm_general_register_operand (operands[0], E_SImode)
              || GET_MODE (x2) != E_SImode
              || !arm_general_register_operand (operands[1], E_DImode)
              || !
#line 10274 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4932; /* mve_sqshl_si */

        case E_DImode:
          if (!arm_low_register_operand (operands[0], E_DImode)
              || GET_MODE (x2) != E_DImode
              || !arm_low_register_operand (operands[1], E_DImode)
              || !
#line 10309 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4935; /* mve_sqshll_di */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_347 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24;
  int res ATTRIBUTE_UNUSED;
  switch (XVECLEN (x1, 0))
    {
    case 2:
      res = recog_34 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    case 3:
      res = recog_38 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    case 4:
      res = recog_39 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    case 5:
      res = recog_40 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    case 8:
      res = recog_41 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    case 6:
      res = recog_42 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    default:
      break;
    }
  if (XVECLEN (x1, 0) >= 1)
    {
      res = recog_43 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  operands[0] = x1;
  if (XVECLEN (operands[0], 0) >= 2)
    {
      res = recog_44 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  if (XVECLEN (operands[0], 0) >= 3)
    {
      res = recog_45 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  if (XVECLEN (operands[0], 0) >= 4)
    {
      res = recog_46 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  if (XVECLEN (operands[0], 0) >= 5)
    {
      res = recog_47 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  if (XVECLEN (operands[0], 0) >= 3)
    {
      res = recog_48 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  if (XVECLEN (operands[0], 0) >= 2)
    {
      res = recog_49 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  if (XVECLEN (operands[0], 0) >= 1
      && load_multiple_operation (operands[0], E_VOIDmode))
    {
      x2 = XVECEXP (x1, 0, 0);
      if (GET_CODE (x2) == SET)
        {
          x3 = XEXP (x2, 1);
          if (GET_CODE (x3) == MEM
              && GET_MODE (x3) == E_SImode)
            {
              x4 = XEXP (x2, 0);
              operands[2] = x4;
              if (s_register_operand (operands[2], E_SImode))
                {
                  x5 = XEXP (x3, 0);
                  operands[1] = x5;
                  if (s_register_operand (operands[1], E_SImode)
                      && 
#line 12722 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed))
                    return 487; /* *load_multiple */
                }
            }
        }
    }
  switch (XVECLEN (x1, 0))
    {
    case 3:
      x2 = XVECEXP (x1, 0, 0);
      if (GET_CODE (x2) != SET)
        return -1;
      x3 = XEXP (x2, 1);
      if (GET_CODE (x3) != PLUS
          || GET_MODE (x3) != E_SImode)
        return -1;
      x6 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x6) != SET)
        return -1;
      x7 = XEXP (x6, 0);
      if (GET_CODE (x7) != MEM
          || GET_MODE (x7) != E_SImode)
        return -1;
      x8 = XEXP (x7, 0);
      if (GET_CODE (x8) != PLUS
          || GET_MODE (x8) != E_SImode)
        return -1;
      x9 = XVECEXP (x1, 0, 2);
      if (GET_CODE (x9) != SET)
        return -1;
      x10 = XEXP (x9, 0);
      if (GET_CODE (x10) != MEM
          || GET_MODE (x10) != E_SImode)
        return -1;
      x11 = XEXP (x10, 0);
      if (GET_CODE (x11) != PLUS
          || GET_MODE (x11) != E_SImode)
        return -1;
      x4 = XEXP (x2, 0);
      operands[0] = x4;
      if (!register_operand (operands[0], E_SImode))
        return -1;
      x5 = XEXP (x3, 0);
      operands[1] = x5;
      if (!register_operand (operands[1], E_SImode))
        return -1;
      x12 = XEXP (x3, 1);
      operands[2] = x12;
      if (!const_int_operand (operands[2], E_SImode))
        return -1;
      x13 = XEXP (x6, 1);
      operands[3] = x13;
      if (!register_operand (operands[3], E_SImode))
        return -1;
      x14 = XEXP (x11, 1);
      operands[5] = x14;
      if (!const_int_operand (operands[5], E_SImode))
        return -1;
      x15 = XEXP (x9, 1);
      operands[4] = x15;
      if (!register_operand (operands[4], E_SImode))
        return -1;
      x16 = XEXP (x8, 0);
      if (!rtx_equal_p (x16, operands[0]))
        return -1;
      x17 = XEXP (x8, 1);
      if (!rtx_equal_p (x17, operands[2]))
        return -1;
      x18 = XEXP (x11, 0);
      if (!rtx_equal_p (x18, operands[0])
          || !
#line 316 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2
   && INTVAL (operands[5]) == INTVAL (operands[2]) + 4))
        return -1;
      return 1010; /* *thumb2_storewb_pairsi */

    case 4:
      if (pattern0 (x1, 18) != 0
          || pattern295 (x1) != 0)
        return -1;
      x2 = XVECEXP (x1, 0, 0);
      x4 = XEXP (x2, 0);
      operands[0] = x4;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x3 = XEXP (x2, 1);
      operands[1] = x3;
      if (!mem_noofs_operand (operands[1], E_SImode))
        return -1;
      x6 = XVECEXP (x1, 0, 1);
      x13 = XEXP (x6, 1);
      x19 = XVECEXP (x13, 0, 0);
      operands[2] = x19;
      if (!s_register_operand (operands[2], E_SImode))
        return -1;
      x20 = XVECEXP (x13, 0, 1);
      operands[3] = x20;
      if (!const_int_operand (operands[3], E_SImode))
        return -1;
      x21 = XVECEXP (x1, 0, 3);
      x22 = XEXP (x21, 0);
      operands[4] = x22;
      if (!scratch_operand (operands[4], E_SImode))
        return -1;
      x7 = XEXP (x6, 0);
      if (!rtx_equal_p (x7, operands[1])
          || !
#line 255 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
        return -1;
      return 2890; /* atomic_exchangesi */

    case 2:
      if (pnum_clobbers == NULL)
        return -1;
      x2 = XVECEXP (x1, 0, 0);
      if (GET_CODE (x2) != SET)
        return -1;
      x6 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x6) != SET)
        return -1;
      x13 = XEXP (x6, 1);
      if (GET_CODE (x13) != UNSPEC_VOLATILE
          || XVECLEN (x13, 0) != 2)
        return -1;
      x4 = XEXP (x2, 0);
      operands[0] = x4;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x3 = XEXP (x2, 1);
      operands[1] = x3;
      if (!mem_noofs_operand (operands[1], E_SImode)
          || GET_MODE (x13) != E_SImode)
        return -1;
      x20 = XVECEXP (x13, 0, 1);
      operands[3] = x20;
      if (!const_int_operand (operands[3], E_SImode))
        return -1;
      x7 = XEXP (x6, 0);
      if (!rtx_equal_p (x7, operands[1]))
        return -1;
      switch (XINT (x13, 1))
        {
        case 18:
          x19 = XVECEXP (x13, 0, 0);
          operands[2] = x19;
          if (!s_register_operand (operands[2], E_SImode)
              || !
#line 255 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          *pnum_clobbers = 2;
          return 2890; /* atomic_exchangesi */

        case 19:
          x19 = XVECEXP (x13, 0, 0);
          if (GET_MODE (x19) != E_SImode)
            return -1;
          switch (pattern604 (x19))
            {
            case 0:
              if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2926; /* atomic_fetch_addsi */

            case 1:
              if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2927; /* atomic_fetch_subsi */

            case 2:
              if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2928; /* atomic_fetch_orsi */

            case 3:
              if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2929; /* atomic_fetch_xorsi */

            case 4:
              if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2930; /* atomic_fetch_andsi */

            case 5:
              if (!
#line 386 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2938; /* atomic_fetch_nandsi */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 5:
      if (pattern0 (x1, 19) != 0)
        return -1;
      x9 = XVECEXP (x1, 0, 2);
      if (pattern353 (x9, E_CCmode, 100) != 0)
        return -1;
      x21 = XVECEXP (x1, 0, 3);
      if (GET_CODE (x21) != CLOBBER)
        return -1;
      x23 = XVECEXP (x1, 0, 4);
      if (GET_CODE (x23) != CLOBBER)
        return -1;
      x2 = XVECEXP (x1, 0, 0);
      x4 = XEXP (x2, 0);
      operands[0] = x4;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x3 = XEXP (x2, 1);
      operands[1] = x3;
      if (!mem_noofs_operand (operands[1], E_SImode))
        return -1;
      x6 = XVECEXP (x1, 0, 1);
      x13 = XEXP (x6, 1);
      x19 = XVECEXP (x13, 0, 0);
      if (GET_MODE (x19) != E_SImode)
        return -1;
      x20 = XVECEXP (x13, 0, 1);
      operands[3] = x20;
      if (!const_int_operand (operands[3], E_SImode))
        return -1;
      x22 = XEXP (x21, 0);
      operands[4] = x22;
      if (!scratch_operand (operands[4], E_SImode))
        return -1;
      x24 = XEXP (x23, 0);
      operands[5] = x24;
      if (!scratch_operand (operands[5], E_SImode))
        return -1;
      x7 = XEXP (x6, 0);
      if (!rtx_equal_p (x7, operands[1]))
        return -1;
      switch (pattern604 (x19))
        {
        case 0:
          if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2926; /* atomic_fetch_addsi */

        case 1:
          if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2927; /* atomic_fetch_subsi */

        case 2:
          if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2928; /* atomic_fetch_orsi */

        case 3:
          if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2929; /* atomic_fetch_xorsi */

        case 4:
          if (!
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2930; /* atomic_fetch_andsi */

        case 5:
          if (!
#line 386 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2938; /* atomic_fetch_nandsi */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

int
recog (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18;
  int res ATTRIBUTE_UNUSED;
  recog_data.insn = NULL;
  switch (GET_CODE (x1))
    {
    case PARALLEL:
      return recog_347 (x1, insn, pnum_clobbers);

    case SET:
      return recog_346 (x1, insn, pnum_clobbers);

    case RETURN:
      if (!
#line 9008 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && USE_RETURN_INSN (FALSE)))
        return -1;
      return 298; /* *arm_return */

    case SIMPLE_RETURN:
      if (
#line 9069 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
        return 303; /* *arm_simple_return */
      if (
#line 1210 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !IS_CMSE_ENTRY (arm_current_func_type ())))
        return 1042; /* *thumb2_return */
      if (!
#line 1218 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && IS_CMSE_ENTRY (arm_current_func_type ())))
        return -1;
      return 1043; /* *thumb2_cmse_entry_return */

    case UNSPEC_VOLATILE:
      switch (XVECLEN (x1, 0))
        {
        case 1:
          switch (XINT (x1, 1))
            {
            case 0:
              x2 = XVECEXP (x1, 0, 0);
              if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              return 305; /* blockage */

            case 3:
              x2 = XVECEXP (x1, 0, 0);
              if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              return 391; /* align_4 */

            case 12:
              x2 = XVECEXP (x1, 0, 0);
              if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              return 392; /* align_8 */

            case 4:
              x2 = XVECEXP (x1, 0, 0);
              if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              return 393; /* consttable_end */

            case 5:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              return 394; /* consttable_1 */

            case 6:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              return 395; /* consttable_2 */

            case 7:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              return 396; /* consttable_4 */

            case 8:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              return 397; /* consttable_8 */

            case 9:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              return 398; /* consttable_16 */

            case 16:
              if (pnum_clobbers == NULL)
                return -1;
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              if (!s_register_operand (operands[0], E_SImode))
                return -1;
              if (
#line 12260 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                {
                  *pnum_clobbers = 1;
                  return 404; /* arm_eh_return */
                }
              if (
#line 2032 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                {
                  *pnum_clobbers = 1;
                  return 998; /* thumb_eh_return */
                }
              if (!
#line 1239 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
                return -1;
              *pnum_clobbers = 1;
              return 1044; /* thumb2_eh_return */

            case 49:
              x2 = XVECEXP (x1, 0, 0);
              if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
                  || !
#line 12984 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_arch7 || arm_arch8))
                return -1;
              return 506; /* *speculation_barrier_insn */

            case 58:
              x2 = XVECEXP (x1, 0, 0);
              if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
                  || !
#line 13015 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_arch8m_main))
                return -1;
              return 510; /* bti_nop */

            case 54:
              x2 = XVECEXP (x1, 0, 0);
              if (GET_CODE (x2) != MEM
                  || GET_MODE (x2) != E_BLKmode)
                return -1;
              x3 = XEXP (x2, 0);
              operands[0] = x3;
              if (!s_register_operand (operands[0], E_SImode)
                  || !
#line 1725 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(use_cmse && reload_completed))
                return -1;
              return 852; /* lazy_store_multiple_insn */

            case 55:
              x2 = XVECEXP (x1, 0, 0);
              if (GET_CODE (x2) != MEM
                  || GET_MODE (x2) != E_BLKmode)
                return -1;
              x3 = XEXP (x2, 0);
              operands[0] = x3;
              if (!s_register_operand (operands[0], E_SImode)
                  || !
#line 1735 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(use_cmse && reload_completed))
                return -1;
              return 853; /* lazy_load_multiple_insn */

            case 28:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              if (!register_operand (operands[0], E_SImode)
                  || !
#line 2116 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_VFP_BASE))
                return -1;
              return 918; /* set_fpscr */

            case 2:
              x2 = XVECEXP (x1, 0, 0);
              if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
                  || !
#line 1964 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                return -1;
              return 994; /* prologue_thumb1_interwork */

            case 1:
              x2 = XVECEXP (x1, 0, 0);
              if (GET_CODE (x2) != RETURN
                  || !
#line 1972 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                return -1;
              return 995; /* *epilogue_insns */

            case 52:
              if (pnum_clobbers == NULL
                  || GET_MODE (x1) != E_SImode)
                return -1;
              x2 = XVECEXP (x1, 0, 0);
              if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
                  || !
#line 1665 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && TARGET_HAVE_FPCXT_CMSE && use_cmse))
                return -1;
              *pnum_clobbers = 1;
              return 1063; /* *clear_apsr */

            default:
              return -1;
            }

        case 6:
          x2 = XVECEXP (x1, 0, 0);
          operands[0] = x2;
          if (!immediate_operand (operands[0], E_SImode))
            return -1;
          x4 = XVECEXP (x1, 0, 1);
          operands[1] = x4;
          if (!immediate_operand (operands[1], E_SImode))
            return -1;
          x5 = XVECEXP (x1, 0, 2);
          operands[2] = x5;
          if (!immediate_operand (operands[2], E_SImode))
            return -1;
          x6 = XVECEXP (x1, 0, 3);
          operands[3] = x6;
          if (!immediate_operand (operands[3], E_SImode))
            return -1;
          x7 = XVECEXP (x1, 0, 4);
          operands[4] = x7;
          if (!immediate_operand (operands[4], E_SImode))
            return -1;
          x8 = XVECEXP (x1, 0, 5);
          operands[5] = x8;
          if (!immediate_operand (operands[5], E_SImode))
            return -1;
          switch (XINT (x1, 1))
            {
            case 31:
              if (!
#line 12842 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_CDP)))
                return -1;
              return 488; /* arm_cdp */

            case 32:
              if (!
#line 12842 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_CDP2)))
                return -1;
              return 489; /* arm_cdp2 */

            default:
              return -1;
            }

        case 3:
          switch (XINT (x1, 1))
            {
            case 33:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              if (!immediate_operand (operands[0], E_SImode))
                return -1;
              x4 = XVECEXP (x1, 0, 1);
              operands[1] = x4;
              if (!immediate_operand (operands[1], E_SImode))
                return -1;
              x5 = XVECEXP (x1, 0, 2);
              operands[2] = x5;
              if (!memory_operand (operands[2], E_SImode)
                  || !
#line 12859 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_LDC)))
                return -1;
              return 490; /* *ldc */

            case 34:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              if (!immediate_operand (operands[0], E_SImode))
                return -1;
              x4 = XVECEXP (x1, 0, 1);
              operands[1] = x4;
              if (!immediate_operand (operands[1], E_SImode))
                return -1;
              x5 = XVECEXP (x1, 0, 2);
              operands[2] = x5;
              if (!memory_operand (operands[2], E_SImode)
                  || !
#line 12859 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_LDC2)))
                return -1;
              return 491; /* *ldc */

            case 35:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              if (!immediate_operand (operands[0], E_SImode))
                return -1;
              x4 = XVECEXP (x1, 0, 1);
              operands[1] = x4;
              if (!immediate_operand (operands[1], E_SImode))
                return -1;
              x5 = XVECEXP (x1, 0, 2);
              operands[2] = x5;
              if (!memory_operand (operands[2], E_SImode)
                  || !
#line 12859 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_LDCL)))
                return -1;
              return 492; /* *ldc */

            case 36:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              if (!immediate_operand (operands[0], E_SImode))
                return -1;
              x4 = XVECEXP (x1, 0, 1);
              operands[1] = x4;
              if (!immediate_operand (operands[1], E_SImode))
                return -1;
              x5 = XVECEXP (x1, 0, 2);
              operands[2] = x5;
              if (!memory_operand (operands[2], E_SImode)
                  || !
#line 12859 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_LDC2L)))
                return -1;
              return 493; /* *ldc */

            case 37:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              if (!immediate_operand (operands[0], E_SImode))
                return -1;
              x4 = XVECEXP (x1, 0, 1);
              operands[1] = x4;
              if (!immediate_operand (operands[1], E_SImode))
                return -1;
              x5 = XVECEXP (x1, 0, 2);
              operands[2] = x5;
              if (!memory_operand (operands[2], E_SImode)
                  || !
#line 12872 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_STC)))
                return -1;
              return 494; /* *stc */

            case 38:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              if (!immediate_operand (operands[0], E_SImode))
                return -1;
              x4 = XVECEXP (x1, 0, 1);
              operands[1] = x4;
              if (!immediate_operand (operands[1], E_SImode))
                return -1;
              x5 = XVECEXP (x1, 0, 2);
              operands[2] = x5;
              if (!memory_operand (operands[2], E_SImode)
                  || !
#line 12872 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_STC2)))
                return -1;
              return 495; /* *stc */

            case 39:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              if (!immediate_operand (operands[0], E_SImode))
                return -1;
              x4 = XVECEXP (x1, 0, 1);
              operands[1] = x4;
              if (!immediate_operand (operands[1], E_SImode))
                return -1;
              x5 = XVECEXP (x1, 0, 2);
              operands[2] = x5;
              if (!memory_operand (operands[2], E_SImode)
                  || !
#line 12872 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_STCL)))
                return -1;
              return 496; /* *stc */

            case 40:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              if (!immediate_operand (operands[0], E_SImode))
                return -1;
              x4 = XVECEXP (x1, 0, 1);
              operands[1] = x4;
              if (!immediate_operand (operands[1], E_SImode))
                return -1;
              x5 = XVECEXP (x1, 0, 2);
              operands[2] = x5;
              if (!memory_operand (operands[2], E_SImode)
                  || !
#line 12872 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_STC2L)))
                return -1;
              return 497; /* *stc */

            case 57:
              if (GET_MODE (x1) != E_SImode)
                return -1;
              x2 = XVECEXP (x1, 0, 0);
              if (GET_CODE (x2) != REG
                  || REGNO (x2) != 12
                  || GET_MODE (x2) != E_SImode)
                return -1;
              x4 = XVECEXP (x1, 0, 1);
              if (GET_CODE (x4) != REG
                  || REGNO (x4) != 13
                  || GET_MODE (x4) != E_SImode)
                return -1;
              x5 = XVECEXP (x1, 0, 2);
              if (GET_CODE (x5) != REG
                  || REGNO (x5) != 14
                  || GET_MODE (x5) != E_SImode
                  || !
#line 13009 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_arch8m_main))
                return -1;
              return 509; /* aut_nop */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case CONST_INT:
      if (XWINT (x1, 0) != 0L)
        return -1;
      return 317; /* nop */

    case TRAP_IF:
      x9 = XEXP (x1, 0);
      if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x10 = XEXP (x1, 1);
      if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      return 318; /* trap */

    case PREFETCH:
      x9 = XEXP (x1, 0);
      operands[0] = x9;
      if (!address_operand (operands[0], E_SImode))
        return -1;
      x10 = XEXP (x1, 1);
      operands[1] = x10;
      x11 = XEXP (x1, 2);
      operands[2] = x11;
      if (!
#line 12214 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch5te))
        return -1;
      return 402; /* prefetch */

    case UNSPEC:
      if (XVECLEN (x1, 0) != 1
          || XINT (x1, 1) != 4
          || GET_MODE (x1) != E_SImode)
        return -1;
      x2 = XVECEXP (x1, 0, 0);
      operands[0] = x2;
      if (!register_operand (operands[0], E_SImode))
        return -1;
      return 403; /* force_register_use */

    case COND_EXEC:
      x9 = XEXP (x1, 0);
      if (!arm_comparison_operator (x9, E_VOIDmode))
        return -1;
      x12 = XEXP (x9, 1);
      if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x13 = XEXP (x9, 0);
      if (!cc_register (x13, E_VOIDmode))
        return -1;
      x10 = XEXP (x1, 1);
      switch (GET_CODE (x10))
        {
        case SET:
          return recog_345 (x1, insn, pnum_clobbers);

        case PARALLEL:
          if (XVECLEN (x10, 0) == 2)
            {
              res = recog_338 (x1, insn, pnum_clobbers);
              if (res >= 0)
                return res;
            }
          operands[0] = x10;
          if (XVECLEN (operands[0], 0) >= 2)
            {
              res = recog_339 (x1, insn, pnum_clobbers);
              if (res >= 0)
                return res;
            }
          if (XVECLEN (operands[0], 0) >= 3)
            {
              res = recog_340 (x1, insn, pnum_clobbers);
              if (res >= 0)
                return res;
            }
          if (XVECLEN (operands[0], 0) >= 4)
            {
              res = recog_341 (x1, insn, pnum_clobbers);
              if (res >= 0)
                return res;
            }
          if (XVECLEN (operands[0], 0) >= 5)
            {
              res = recog_342 (x1, insn, pnum_clobbers);
              if (res >= 0)
                return res;
            }
          if (XVECLEN (operands[0], 0) >= 3)
            {
              res = recog_343 (x1, insn, pnum_clobbers);
              if (res >= 0)
                return res;
            }
          if (XVECLEN (operands[0], 0) >= 2)
            {
              res = recog_344 (x1, insn, pnum_clobbers);
              if (res >= 0)
                return res;
            }
          if (XVECLEN (operands[0], 0) < 1)
            return -1;
          x14 = XVECEXP (x10, 0, 0);
          switch (GET_CODE (x14))
            {
            case SET:
              x15 = XEXP (x14, 1);
              switch (GET_CODE (x15))
                {
                case MEM:
                  if (GET_MODE (x15) != E_SImode)
                    return -1;
                  operands[3] = x9;
                  operands[4] = x13;
                  if (!load_multiple_operation (operands[0], E_VOIDmode))
                    return -1;
                  x16 = XEXP (x14, 0);
                  operands[2] = x16;
                  if (!s_register_operand (operands[2], E_SImode))
                    return -1;
                  x17 = XEXP (x15, 0);
                  operands[1] = x17;
                  if (!s_register_operand (operands[1], E_SImode)
                      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 12722 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed)))
                    return -1;
                  return 6615; /* *p *load_multiple */

                case CONST_INT:
                  if (XWINT (x15, 0) != 0L)
                    return -1;
                  operands[2] = x9;
                  operands[3] = x13;
                  if (!clear_multiple_operation (operands[0], E_VOIDmode))
                    return -1;
                  x16 = XEXP (x14, 0);
                  operands[1] = x16;
                  if (!register_operand (operands[1], E_SImode)
                      || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1677 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && TARGET_HAVE_FPCXT_CMSE && use_cmse && reload_completed)))
                    return -1;
                  return 6944; /* *p *clear_multiple */

                default:
                  return -1;
                }

            case UNSPEC_VOLATILE:
              if (XVECLEN (x14, 0) != 1
                  || XINT (x14, 1) != 53)
                return -1;
              x18 = XVECEXP (x14, 0, 0);
              if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              operands[1] = x9;
              operands[2] = x13;
              if (!clear_vfp_multiple_operation (operands[0], E_VOIDmode)
                  || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1688 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_HAVE_FPCXT_CMSE && use_cmse && reload_completed)))
                return -1;
              return 6906; /* *p *clear_vfp_multiple */

            default:
              return -1;
            }

        case RETURN:
          operands[0] = x9;
          operands[1] = x13;
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9008 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && USE_RETURN_INSN (FALSE))))
            return -1;
          return 6533; /* *p *arm_return */

        case SIMPLE_RETURN:
          operands[0] = x9;
          operands[1] = x13;
          if (!(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9069 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM)))
            return -1;
          return 6534; /* *p *arm_simple_return */

        case UNSPEC_VOLATILE:
          if (XVECLEN (x10, 0) != 1
              || XINT (x10, 1) != 54)
            return -1;
          x14 = XVECEXP (x10, 0, 0);
          if (GET_CODE (x14) != MEM
              || GET_MODE (x14) != E_BLKmode)
            return -1;
          operands[1] = x9;
          operands[2] = x13;
          x16 = XEXP (x14, 0);
          operands[0] = x16;
          if (!s_register_operand (operands[0], E_SImode)
              || !(
#line 12225 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1725 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(use_cmse && reload_completed)))
            return -1;
          return 6907; /* *p lazy_store_multiple_insn */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static rtx_insn *
split_1 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  rtx_insn *res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    case CONST_INT:
      if (XWINT (x2, 0) == 0L)
        {
          x3 = XEXP (x1, 0);
          if (GET_CODE (x3) == ZERO_EXTRACT
              && pattern283 (x3) == 0)
            return gen_split_13 (insn, operands);
        }
      operands[1] = x2;
      if (const_int_operand (operands[1], E_SImode))
        {
          x3 = XEXP (x1, 0);
          operands[0] = x3;
          if (arm_general_register_operand (operands[0], E_SImode)
              && 
#line 6563 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
((TARGET_32BIT || TARGET_HAVE_MOVT)
  && (!(const_ok_for_arm (INTVAL (operands[1]))
        || const_ok_for_arm (~INTVAL (operands[1]))))))
            return gen_split_63 (insn, operands);
        }
      break;

    case CONST:
      if (GET_MODE (x2) == E_SImode)
        {
          x4 = XEXP (x2, 0);
          if (GET_CODE (x4) == PLUS
              && GET_MODE (x4) == E_SImode)
            {
              x3 = XEXP (x1, 0);
              operands[0] = x3;
              if (arm_general_register_operand (operands[0], E_SImode))
                {
                  x5 = XEXP (x4, 0);
                  operands[1] = x5;
                  if (general_operand (operands[1], E_SImode))
                    {
                      x6 = XEXP (x4, 1);
                      operands[2] = x6;
                      if (const_int_operand (operands[2], E_SImode)
                          && 
#line 6592 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_THUMB
   && TARGET_HAVE_MOVT
   && arm_disable_literal_pool
   && reload_completed
   && GET_CODE (operands[1]) == SYMBOL_REF))
                        return gen_split_64 (insn, operands);
                    }
                }
            }
        }
      break;

    default:
      break;
    }
  operands[1] = x2;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  switch (GET_MODE (operands[0]))
    {
    case E_DImode:
      if (!arm_general_register_operand (operands[0], E_DImode))
        return NULL;
      if (immediate_operand (operands[1], E_DImode)
          && 
#line 6364 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && reload_completed
   && (arm_disable_literal_pool
       || (arm_const_double_inline_cost (operands[1])
	   <= arm_max_const_double_inline_cost ()))))
        return gen_split_40 (insn, operands);
      if (const_double_operand (operands[1], E_DImode)
          && 
#line 6394 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && reload_completed
   && arm_const_double_by_parts (operands[1])))
        return gen_split_47 (insn, operands);
      if (!immediate_operand (operands[1], E_DImode)
          || !
#line 716 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && reload_completed && !satisfies_constraint_J (operands[1])))
        return NULL;
      return gen_split_119 (insn, operands);

    case E_DFmode:
      if (arm_general_register_operand (operands[0], E_DFmode))
        {
          if (immediate_operand (operands[1], E_DFmode)
              && 
#line 6364 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && reload_completed
   && (arm_disable_literal_pool
       || (arm_const_double_inline_cost (operands[1])
	   <= arm_max_const_double_inline_cost ()))))
            return gen_split_41 (insn, operands);
          if (const_double_operand (operands[1], E_DFmode)
              && 
#line 6394 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && reload_completed
   && arm_const_double_by_parts (operands[1])))
            return gen_split_48 (insn, operands);
        }
      if (s_register_operand (operands[0], E_DFmode)
          && const_double_operand (operands[1], E_DFmode)
          && 
#line 7644 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_disable_literal_pool && TARGET_SOFT_FLOAT))
        return gen_split_70 (insn, operands);
      if (!arm_general_register_operand (operands[0], E_DFmode)
          || !immediate_operand (operands[1], E_DFmode)
          || !
#line 716 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && reload_completed && !satisfies_constraint_J (operands[1])))
        return NULL;
      return gen_split_120 (insn, operands);

    case E_V8QImode:
      if (!arm_general_register_operand (operands[0], E_V8QImode))
        return NULL;
      if (immediate_operand (operands[1], E_V8QImode)
          && 
#line 6364 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && reload_completed
   && (arm_disable_literal_pool
       || (arm_const_double_inline_cost (operands[1])
	   <= arm_max_const_double_inline_cost ()))))
        return gen_split_42 (insn, operands);
      if (const_double_operand (operands[1], E_V8QImode)
          && 
#line 6394 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && reload_completed
   && arm_const_double_by_parts (operands[1])))
        return gen_split_49 (insn, operands);
      if (!immediate_operand (operands[1], E_V8QImode)
          || !
#line 716 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && reload_completed && !satisfies_constraint_J (operands[1])))
        return NULL;
      return gen_split_121 (insn, operands);

    case E_V4HImode:
      if (!arm_general_register_operand (operands[0], E_V4HImode))
        return NULL;
      if (immediate_operand (operands[1], E_V4HImode)
          && 
#line 6364 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && reload_completed
   && (arm_disable_literal_pool
       || (arm_const_double_inline_cost (operands[1])
	   <= arm_max_const_double_inline_cost ()))))
        return gen_split_43 (insn, operands);
      if (const_double_operand (operands[1], E_V4HImode)
          && 
#line 6394 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && reload_completed
   && arm_const_double_by_parts (operands[1])))
        return gen_split_50 (insn, operands);
      if (!immediate_operand (operands[1], E_V4HImode)
          || !
#line 716 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && reload_completed && !satisfies_constraint_J (operands[1])))
        return NULL;
      return gen_split_122 (insn, operands);

    case E_V4HFmode:
      if (!arm_general_register_operand (operands[0], E_V4HFmode))
        return NULL;
      if (immediate_operand (operands[1], E_V4HFmode)
          && 
#line 6364 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && reload_completed
   && (arm_disable_literal_pool
       || (arm_const_double_inline_cost (operands[1])
	   <= arm_max_const_double_inline_cost ()))))
        return gen_split_44 (insn, operands);
      if (const_double_operand (operands[1], E_V4HFmode)
          && 
#line 6394 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && reload_completed
   && arm_const_double_by_parts (operands[1])))
        return gen_split_51 (insn, operands);
      if (!immediate_operand (operands[1], E_V4HFmode)
          || !
#line 716 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && reload_completed && !satisfies_constraint_J (operands[1])))
        return NULL;
      return gen_split_123 (insn, operands);

    case E_V2SImode:
      if (!arm_general_register_operand (operands[0], E_V2SImode))
        return NULL;
      if (immediate_operand (operands[1], E_V2SImode)
          && 
#line 6364 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && reload_completed
   && (arm_disable_literal_pool
       || (arm_const_double_inline_cost (operands[1])
	   <= arm_max_const_double_inline_cost ()))))
        return gen_split_45 (insn, operands);
      if (const_double_operand (operands[1], E_V2SImode)
          && 
#line 6394 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && reload_completed
   && arm_const_double_by_parts (operands[1])))
        return gen_split_52 (insn, operands);
      if (!immediate_operand (operands[1], E_V2SImode)
          || !
#line 716 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && reload_completed && !satisfies_constraint_J (operands[1])))
        return NULL;
      return gen_split_124 (insn, operands);

    case E_V2SFmode:
      if (!arm_general_register_operand (operands[0], E_V2SFmode))
        return NULL;
      if (immediate_operand (operands[1], E_V2SFmode)
          && 
#line 6364 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && reload_completed
   && (arm_disable_literal_pool
       || (arm_const_double_inline_cost (operands[1])
	   <= arm_max_const_double_inline_cost ()))))
        return gen_split_46 (insn, operands);
      if (const_double_operand (operands[1], E_V2SFmode)
          && 
#line 6394 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && reload_completed
   && arm_const_double_by_parts (operands[1])))
        return gen_split_53 (insn, operands);
      if (!immediate_operand (operands[1], E_V2SFmode)
          || !
#line 716 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && reload_completed && !satisfies_constraint_J (operands[1])))
        return NULL;
      return gen_split_125 (insn, operands);

    case E_SFmode:
      if (arm_general_register_operand (operands[0], E_SFmode)
          && immediate_operand (operands[1], E_SFmode)
          && 
#line 7473 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_EITHER
   && reload_completed
   && CONST_DOUBLE_P (operands[1])))
        return gen_split_68 (insn, operands);
      if (!s_register_operand (operands[0], E_SFmode)
          || !const_double_operand (operands[1], E_SFmode)
          || !
#line 7517 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_disable_literal_pool && TARGET_SOFT_FLOAT))
        return NULL;
      return gen_split_69 (insn, operands);

    default:
      return NULL;
    }
}

static rtx_insn *
split_2 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  rtx_insn *res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    case CONST_INT:
    case CONST_WIDE_INT:
    case CONST_POLY_INT:
    case CONST_FIXED:
    case CONST_DOUBLE:
    case CONST_VECTOR:
    case CONST:
    case LABEL_REF:
    case SYMBOL_REF:
    case HIGH:
      res = split_1 (x1, insn);
      if (res != NULL_RTX)
        return res;
      break;

    case REG:
    case SUBREG:
      operands[1] = x2;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      switch (GET_MODE (operands[0]))
        {
        case E_DImode:
          if (arm_general_register_operand (operands[0], E_DImode)
              && arm_general_register_operand (operands[1], E_DImode)
              && 
#line 6410 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_EITHER && reload_completed))
            return gen_split_54 (insn, operands);
          break;

        case E_DFmode:
          if (arm_general_register_operand (operands[0], E_DFmode)
              && arm_general_register_operand (operands[1], E_DFmode)
              && 
#line 6410 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_EITHER && reload_completed))
            return gen_split_55 (insn, operands);
          break;

        case E_V8QImode:
          if (arm_general_register_operand (operands[0], E_V8QImode)
              && arm_general_register_operand (operands[1], E_V8QImode)
              && 
#line 6410 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_EITHER && reload_completed))
            return gen_split_56 (insn, operands);
          break;

        case E_V4HImode:
          if (arm_general_register_operand (operands[0], E_V4HImode)
              && arm_general_register_operand (operands[1], E_V4HImode)
              && 
#line 6410 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_EITHER && reload_completed))
            return gen_split_57 (insn, operands);
          break;

        case E_V4BFmode:
          if (arm_general_register_operand (operands[0], E_V4BFmode)
              && arm_general_register_operand (operands[1], E_V4BFmode)
              && 
#line 6410 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_EITHER && reload_completed))
            return gen_split_58 (insn, operands);
          break;

        case E_V4HFmode:
          if (arm_general_register_operand (operands[0], E_V4HFmode)
              && arm_general_register_operand (operands[1], E_V4HFmode)
              && 
#line 6410 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_EITHER && reload_completed))
            return gen_split_59 (insn, operands);
          break;

        case E_V2SImode:
          if (arm_general_register_operand (operands[0], E_V2SImode)
              && arm_general_register_operand (operands[1], E_V2SImode)
              && 
#line 6410 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_EITHER && reload_completed))
            return gen_split_60 (insn, operands);
          break;

        case E_V2SFmode:
          if (arm_general_register_operand (operands[0], E_V2SFmode)
              && arm_general_register_operand (operands[1], E_V2SFmode)
              && 
#line 6410 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_EITHER && reload_completed))
            return gen_split_61 (insn, operands);
          break;

        case E_EImode:
          if (s_register_operand (operands[0], E_EImode)
              && s_register_operand (operands[1], E_EImode)
              && 
#line 201 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
            return gen_split_150 (insn, operands);
          break;

        case E_OImode:
          if (s_register_operand (operands[0], E_OImode)
              && s_register_operand (operands[1], E_OImode)
              && 
#line 220 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
((TARGET_NEON || TARGET_HAVE_MVE)&& reload_completed))
            return gen_split_151 (insn, operands);
          break;

        case E_CImode:
          if (s_register_operand (operands[0], E_CImode)
              && s_register_operand (operands[1], E_CImode)
              && 
#line 239 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
            return gen_split_152 (insn, operands);
          break;

        case E_XImode:
          if (s_register_operand (operands[0], E_XImode)
              && s_register_operand (operands[1], E_XImode)
              && 
#line 261 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
((TARGET_NEON || TARGET_HAVE_MVE) && reload_completed))
            return gen_split_153 (insn, operands);
          break;

        default:
          break;
        }
      break;

    case MEM:
      if (GET_MODE (x2) == E_DImode)
        {
          x4 = XEXP (x2, 0);
          if (GET_CODE (x4) == PLUS
              && GET_MODE (x4) == E_SImode)
            {
              x3 = XEXP (x1, 0);
              operands[0] = x3;
              if (s_register_operand (operands[0], E_DImode))
                {
                  x5 = XEXP (x4, 0);
                  operands[1] = x5;
                  if (s_register_operand (operands[1], E_SImode))
                    {
                      x6 = XEXP (x4, 1);
                      operands[2] = x6;
                      if (s_register_operand (operands[2], E_SImode)
                          && 
#line 6440 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_LDRD
  && reg_overlap_mentioned_p (operands[0], operands[1])
  && reg_overlap_mentioned_p (operands[0], operands[2])))
                        return gen_split_62 (insn, operands);
                    }
                }
            }
        }
      break;

    default:
      break;
    }
  operands[1] = x2;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (arm_general_register_operand (operands[0], E_SImode)
      && general_operand (operands[1], E_SImode)
      && 
#line 6624 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_USE_MOVT && GET_CODE (operands[1]) == SYMBOL_REF
   && !target_word_relocations
   && !arm_tls_referenced_p (operands[1])))
    return gen_split_65 (insn, operands);
  if (register_operand (operands[0], E_SImode)
      && const_int_operand (operands[1], E_SImode))
    {
      if (
#line 731 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && satisfies_constraint_J (operands[1])))
        return gen_split_126 (insn, operands);
      if (
#line 744 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && satisfies_constraint_K (operands[1])
   && !(TARGET_HAVE_MOVT && satisfies_constraint_j (operands[1]))))
        return gen_split_127 (insn, operands);
      if (
#line 772 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && satisfies_constraint_Pe (operands[1])
   && !(TARGET_HAVE_MOVT && satisfies_constraint_j (operands[1]))))
        return gen_split_128 (insn, operands);
      if (
#line 787 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1
   && arm_disable_literal_pool
   && GET_CODE (operands[1]) == CONST_INT
   && !TARGET_HAVE_MOVT
   && !satisfies_constraint_K (operands[1])))
        return gen_split_129 (insn, operands);
    }
  if (GET_CODE (x2) != MEM
      || GET_MODE (x2) != E_SImode)
    return NULL;
  x4 = XEXP (x2, 0);
  if (GET_CODE (x4) != PLUS
      || GET_MODE (x4) != E_SImode)
    return NULL;
  x6 = XEXP (x4, 1);
  if (pattern352 (x6, 1) != 0)
    return NULL;
  operands[0] = x3;
  if (!register_operand (operands[0], E_SImode))
    return NULL;
  x5 = XEXP (x4, 0);
  operands[1] = x5;
  if (!register_operand (operands[1], E_SImode))
    return NULL;
  x7 = XVECEXP (x6, 0, 0);
  operands[2] = x7;
  if (!
#line 6660 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(flag_pic))
    return NULL;
  return gen_split_66 (insn, operands);
}

static rtx_insn *
split_3 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx_insn *res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != E_SImode)
    return NULL;
  x4 = XEXP (x3, 1);
  if (!minmax_operator (x4, E_SImode))
    return NULL;
  operands[4] = x4;
  x5 = XVECEXP (x1, 0, 1);
  x6 = XEXP (x5, 0);
  if (GET_CODE (x6) != REG
      || REGNO (x6) != 100
      || GET_MODE (x6) != E_CCmode)
    return NULL;
  x7 = XEXP (x3, 0);
  operands[1] = x7;
  if (!s_register_operand (operands[1], E_SImode))
    return NULL;
  x8 = XEXP (x4, 0);
  operands[2] = x8;
  if (!s_register_operand (operands[2], E_SImode))
    return NULL;
  x9 = XEXP (x4, 1);
  operands[3] = x9;
  if (!arm_rhs_operand (operands[3], E_SImode)
      || !
#line 4290 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && !arm_eliminable_register (operands[1]) && reload_completed))
    return NULL;
  return gen_split_26 (insn, operands);
}

static rtx_insn *
split_4 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx_insn *res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != E_SImode)
    return NULL;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != ASHIFT
      || GET_MODE (x4) != E_SImode)
    return NULL;
  x5 = XEXP (x3, 1);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + -1])
    return NULL;
  x6 = XEXP (x4, 0);
  operands[1] = x6;
  if (!const_int_operand (operands[1], E_SImode))
    return NULL;
  x7 = XEXP (x4, 1);
  operands[2] = x7;
  if (!s_register_operand (operands[2], E_SImode))
    return NULL;
  x8 = XVECEXP (x1, 0, 1);
  x9 = XEXP (x8, 0);
  operands[3] = x9;
  if (!s_register_operand (operands[3], E_SImode)
      || !
#line 1881 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
    return NULL;
  return gen_split_2 (insn, operands);
}

static rtx_insn *
split_5 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14;
  rtx_insn *res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  switch (GET_CODE (x3))
    {
    case IOR:
      x4 = XEXP (x3, 0);
      switch (GET_CODE (x4))
        {
        case AND:
          if (GET_MODE (x4) != E_SImode)
            return NULL;
          x5 = XEXP (x4, 0);
          if (GET_CODE (x5) != NOT
              || GET_MODE (x5) != E_SImode)
            return NULL;
          x6 = XEXP (x4, 1);
          if (GET_CODE (x6) != NOT
              || GET_MODE (x6) != E_SImode)
            return NULL;
          x7 = XEXP (x5, 0);
          operands[1] = x7;
          if (!s_register_operand (operands[1], E_SImode))
            return NULL;
          x8 = XEXP (x6, 0);
          operands[2] = x8;
          if (!arm_rhs_operand (operands[2], E_SImode))
            return NULL;
          x9 = XEXP (x3, 1);
          operands[3] = x9;
          if (!arm_rhs_operand (operands[3], E_SImode))
            return NULL;
          x10 = XVECEXP (x1, 0, 1);
          x11 = XEXP (x10, 0);
          operands[4] = x11;
          if (!s_register_operand (operands[4], E_SImode)
              || !
#line 3884 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return NULL;
          return gen_split_16 (insn, operands);

        case NE:
        case EQ:
        case GE:
        case GT:
        case LE:
        case LT:
        case GEU:
        case GTU:
        case LEU:
        case LTU:
        case UNORDERED:
        case ORDERED:
        case UNGE:
        case UNGT:
        case UNLE:
        case UNLT:
          operands[3] = x4;
          if (pattern556 (x1) != 0
              || !
#line 10481 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed))
            return NULL;
          return gen_split_87 (insn, operands);

        default:
          return NULL;
        }

    case AND:
      x4 = XEXP (x3, 0);
      switch (GET_CODE (x4))
        {
        case NE:
        case EQ:
        case GE:
        case GT:
        case LE:
        case LT:
        case GEU:
        case GTU:
        case LEU:
        case LTU:
        case UNORDERED:
        case ORDERED:
        case UNGE:
        case UNGT:
        case UNLE:
        case UNLT:
          operands[3] = x4;
          if (pattern556 (x1) == 0)
            {
              if (
#line 10543 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed
   && (arm_select_dominance_cc_mode (operands[3], operands[6], DOM_CC_X_AND_Y)
       != CCmode)))
                return gen_split_89 (insn, operands);
              if (
#line 10611 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed))
                return gen_split_91 (insn, operands);
            }
          if (GET_CODE (x4) != GE
              || GET_MODE (x4) != E_SImode)
            return NULL;
          x6 = XEXP (x4, 1);
          if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return NULL;
          x9 = XEXP (x3, 1);
          if (GET_CODE (x9) != NEG
              || GET_MODE (x9) != E_SImode)
            return NULL;
          x12 = XEXP (x9, 0);
          if (!arm_comparison_operator (x12, E_SImode))
            return NULL;
          operands[2] = x12;
          x5 = XEXP (x4, 0);
          operands[1] = x5;
          if (!s_register_operand (operands[1], E_SImode))
            return NULL;
          x13 = XEXP (x12, 0);
          operands[3] = x13;
          if (!s_register_operand (operands[3], E_SImode))
            return NULL;
          x14 = XEXP (x12, 1);
          operands[4] = x14;
          if (!arm_rhs_operand (operands[4], E_SImode))
            return NULL;
          x10 = XVECEXP (x1, 0, 1);
          x11 = XEXP (x10, 0);
          operands[5] = x11;
          if (!s_register_operand (operands[5], E_SImode)
              || !
#line 11574 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return NULL;
          return gen_split_98 (insn, operands);

        default:
          return NULL;
        }

    default:
      return NULL;
    }
}

static rtx_insn *
split_6 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx_insn *res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) == E_SImode)
    {
      res = split_5 (x1, insn);
      if (res != NULL_RTX)
        return res;
    }
  operands[1] = x3;
  if (!logical_binary_operator (operands[1], E_SImode))
    return NULL;
  x4 = XVECEXP (x1, 0, 1);
  x5 = XEXP (x4, 0);
  operands[8] = x5;
  if (!s_register_operand (operands[8], E_SImode))
    return NULL;
  x6 = XEXP (x3, 0);
  switch (GET_CODE (x6))
    {
    case ZERO_EXTRACT:
      if (pattern576 (x3, LSHIFTRT) != 0
          || !
#line 3935 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && GET_CODE (operands[1]) == GET_CODE (operands[9])
   && INTVAL (operands[3]) == 32 - INTVAL (operands[6])))
        return NULL;
      return gen_split_18 (insn, operands);

    case AND:
    case IOR:
    case XOR:
      operands[9] = x6;
      if (!logical_binary_operator (operands[9], E_SImode))
        return NULL;
      x7 = XEXP (x6, 0);
      if (GET_MODE (x7) != E_SImode)
        return NULL;
      x8 = XEXP (x6, 1);
      operands[7] = x8;
      if (!s_register_operand (operands[7], E_SImode))
        return NULL;
      x9 = XEXP (x3, 1);
      if (GET_MODE (x9) != E_SImode)
        return NULL;
      switch (GET_CODE (x7))
        {
        case LSHIFTRT:
          if (pattern628 (x3, ZERO_EXTRACT) != 0
              || !
#line 3961 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && GET_CODE (operands[1]) == GET_CODE (operands[9])
   && INTVAL (operands[3]) == 32 - INTVAL (operands[6])))
            return NULL;
          return gen_split_19 (insn, operands);

        case ASHIFTRT:
          if (pattern628 (x3, SIGN_EXTRACT) != 0
              || !
#line 4013 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && GET_CODE (operands[1]) == GET_CODE (operands[9])
   && INTVAL (operands[3]) == 32 - INTVAL (operands[6])))
            return NULL;
          return gen_split_21 (insn, operands);

        default:
          return NULL;
        }

    case SIGN_EXTRACT:
      if (pattern576 (x3, ASHIFTRT) != 0
          || !
#line 3987 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && GET_CODE (operands[1]) == GET_CODE (operands[9])
   && INTVAL (operands[3]) == 32 - INTVAL (operands[6])))
        return NULL;
      return gen_split_20 (insn, operands);

    default:
      return NULL;
    }
}

static rtx_insn *
split_7 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx_insn *res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  switch (GET_CODE (x3))
    {
    case PLUS:
      res = split_4 (x1, insn);
      if (res != NULL_RTX)
        return res;
      break;

    case AND:
    case IOR:
    case XOR:
      res = split_6 (x1, insn);
      if (res != NULL_RTX)
        return res;
      break;

    default:
      break;
    }
  if (!shiftable_operator_strict_it (x3, E_SImode))
    return NULL;
  operands[5] = x3;
  x4 = XEXP (x3, 0);
  if (!arm_comparison_operator (x4, E_SImode))
    return NULL;
  operands[4] = x4;
  x5 = XVECEXP (x1, 0, 1);
  x6 = XEXP (x5, 0);
  if (GET_CODE (x6) != REG
      || REGNO (x6) != 100
      || GET_MODE (x6) != E_CCmode)
    return NULL;
  x7 = XEXP (x4, 0);
  operands[2] = x7;
  if (!s_register_operand (operands[2], E_SImode))
    return NULL;
  x8 = XEXP (x4, 1);
  operands[3] = x8;
  if (!arm_rhs_operand (operands[3], E_SImode))
    return NULL;
  x9 = XEXP (x3, 1);
  operands[1] = x9;
  if (!s_register_operand (operands[1], E_SImode)
      || !(
#line 798 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_restrict_it) && 
#line 800 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
( reload_completed)))
    return NULL;
  return gen_split_147 (insn, operands);
}

static rtx_insn *
split_8 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  rtx_insn *res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != NE)
    return NULL;
  x5 = XEXP (x4, 0);
  x6 = XEXP (x5, 2);
  if (GET_CODE (x6) != CONST_INT)
    return NULL;
  operands[3] = x6;
  if (const_int_operand (operands[3], E_SImode))
    {
      x7 = XEXP (x3, 2);
      if (x7 == const_int_rtx[MAX_SAVED_CONST_INT + 0])
        {
          x8 = XEXP (x5, 0);
          operands[1] = x8;
          if (s_register_operand (operands[1], E_SImode))
            {
              x9 = XEXP (x5, 1);
              operands[2] = x9;
              if (const_int_operand (operands[2], E_SImode))
                {
                  x10 = XEXP (x3, 1);
                  operands[4] = x10;
                  if (arm_not_operand (operands[4], E_SImode)
                      && 
#line 3175 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM
   && (INTVAL (operands[3]) >= 0 && INTVAL (operands[3]) < 32
       && INTVAL (operands[2]) > 0 
       && INTVAL (operands[2]) + (INTVAL (operands[3]) & 1) <= 8
       && INTVAL (operands[2]) + INTVAL (operands[3]) <= 32)
   && !reg_overlap_mentioned_p (operands[0], operands[4])))
                    return gen_split_9 (insn, operands);
                }
            }
        }
    }
  if (XWINT (x6, 0) != 0L)
    return NULL;
  x7 = XEXP (x3, 2);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return NULL;
  x8 = XEXP (x5, 0);
  operands[1] = x8;
  if (!s_register_operand (operands[1], E_SImode))
    return NULL;
  x9 = XEXP (x5, 1);
  operands[2] = x9;
  if (!const_int_operand (operands[2], E_SImode))
    return NULL;
  x10 = XEXP (x3, 1);
  operands[3] = x10;
  if (!arm_not_operand (operands[3], E_SImode)
      || !
#line 3209 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && !reg_overlap_mentioned_p (operands[0], operands[3])))
    return NULL;
  return gen_split_10 (insn, operands);
}

static rtx_insn *
split_9 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  rtx_insn *res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  switch (GET_CODE (x3))
    {
    case NE:
      x4 = XEXP (x3, 0);
      switch (GET_CODE (x4))
        {
        case ZERO_EXTRACT:
          if (GET_MODE (x4) != E_SImode)
            return NULL;
          x5 = XEXP (x4, 2);
          if (GET_CODE (x5) != CONST_INT)
            return NULL;
          operands[3] = x5;
          if (const_int_operand (operands[3], E_SImode))
            {
              x6 = XEXP (x3, 1);
              if (x6 == const_int_rtx[MAX_SAVED_CONST_INT + 0])
                {
                  x7 = XEXP (x4, 0);
                  operands[1] = x7;
                  if (s_register_operand (operands[1], E_SImode))
                    {
                      x8 = XEXP (x4, 1);
                      operands[2] = x8;
                      if (const_int_operand (operands[2], E_SImode)
                          && 
#line 3108 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (INTVAL (operands[3]) >= 0 && INTVAL (operands[3]) < 32
       && INTVAL (operands[2]) > 0 
       && INTVAL (operands[2]) + (INTVAL (operands[3]) & 1) <= 8
       && INTVAL (operands[2]) + INTVAL (operands[3]) <= 32)))
                        return gen_split_7 (insn, operands);
                    }
                }
            }
          if (XWINT (x5, 0) != 0L)
            return NULL;
          x6 = XEXP (x3, 1);
          if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return NULL;
          x7 = XEXP (x4, 0);
          operands[1] = x7;
          if (!s_register_operand (operands[1], E_SImode))
            return NULL;
          x8 = XEXP (x4, 1);
          operands[2] = x8;
          if (!const_int_operand (operands[2], E_SImode)
              || !
#line 3142 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return NULL;
          return gen_split_8 (insn, operands);

        case REG:
        case SUBREG:
          operands[1] = x4;
          if (!s_register_operand (operands[1], E_SImode))
            return NULL;
          x6 = XEXP (x3, 1);
          operands[2] = x6;
          if (const_int_operand (operands[2], E_SImode)
              && 
#line 9904 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed))
            return gen_split_84 (insn, operands);
          if (!arm_add_operand (operands[2], E_SImode)
              || !
#line 9920 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed))
            return NULL;
          return gen_split_85 (insn, operands);

        default:
          return NULL;
        }

    case LT:
      x6 = XEXP (x3, 1);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return NULL;
      x4 = XEXP (x3, 0);
      operands[1] = x4;
      if (!s_register_operand (operands[1], E_SImode)
          || !
#line 9863 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed))
        return NULL;
      return gen_split_80 (insn, operands);

    case GE:
      x6 = XEXP (x3, 1);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return NULL;
      x4 = XEXP (x3, 0);
      operands[1] = x4;
      if (!s_register_operand (operands[1], E_SImode)
          || !
#line 9871 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed))
        return NULL;
      return gen_split_81 (insn, operands);

    case EQ:
      x6 = XEXP (x3, 1);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return NULL;
      x4 = XEXP (x3, 0);
      operands[1] = x4;
      if (!s_register_operand (operands[1], E_SImode))
        return NULL;
      if (
#line 9880 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_arch5t && TARGET_32BIT))
        return gen_split_82 (insn, operands);
      if (!
#line 9890 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed))
        return NULL;
      return gen_split_83 (insn, operands);

    default:
      return NULL;
    }
}

static rtx_insn *
split_10 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20;
  rtx_insn *res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  switch (GET_CODE (x2))
    {
    case SET:
      x3 = XEXP (x2, 1);
      switch (GET_CODE (x3))
        {
        case PLUS:
        case MINUS:
        case AND:
        case IOR:
        case XOR:
          x4 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x4) != CLOBBER)
            return NULL;
          x5 = XEXP (x2, 0);
          operands[0] = x5;
          if (!s_register_operand (operands[0], E_SImode))
            return NULL;
          switch (GET_CODE (x3))
            {
            case MINUS:
              res = split_3 (x1, insn);
              if (res != NULL_RTX)
                return res;
              break;

            case PLUS:
            case AND:
            case IOR:
            case XOR:
              res = split_7 (x1, insn);
              if (res != NULL_RTX)
                return res;
              break;

            default:
              break;
            }
          operands[1] = x3;
          if (!shiftable_operator (operands[1], E_SImode))
            return NULL;
          x6 = XEXP (x4, 0);
          if (!s_register_operand (x6, E_SImode))
            return NULL;
          x7 = XEXP (x3, 0);
          switch (GET_CODE (x7))
            {
            case ZERO_EXTRACT:
              if (pattern507 (x1) != 0
                  || !
#line 3234 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return NULL;
              return gen_split_11 (insn, operands);

            case SIGN_EXTRACT:
              if (pattern507 (x1) != 0
                  || !
#line 3256 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return NULL;
              return gen_split_12 (insn, operands);

            case PLUS:
            case MINUS:
            case AND:
            case IOR:
            case XOR:
              operands[2] = x7;
              if (!shiftable_operator (operands[2], E_SImode))
                return NULL;
              x8 = XEXP (x7, 0);
              if (!shift_operator (x8, E_SImode))
                return NULL;
              operands[3] = x8;
              x9 = XEXP (x8, 0);
              operands[4] = x9;
              if (!s_register_operand (operands[4], E_SImode))
                return NULL;
              x10 = XEXP (x8, 1);
              operands[5] = x10;
              if (!reg_or_int_operand (operands[5], E_SImode))
                return NULL;
              x11 = XEXP (x7, 1);
              operands[6] = x11;
              if (!s_register_operand (operands[6], E_SImode))
                return NULL;
              x12 = XEXP (x3, 1);
              operands[7] = x12;
              if (!arm_rhs_operand (operands[7], E_SImode))
                return NULL;
              operands[8] = x6;
              if (!
#line 9700 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return NULL;
              return gen_split_77 (insn, operands);

            default:
              return NULL;
            }

        case IF_THEN_ELSE:
          if (GET_MODE (x3) != E_SImode)
            return NULL;
          x7 = XEXP (x3, 0);
          switch (GET_CODE (x7))
            {
            case NE:
            case EQ:
            case GE:
            case GT:
            case LE:
            case LT:
            case LTGT:
            case GEU:
            case GTU:
            case LEU:
            case LTU:
            case UNORDERED:
            case ORDERED:
            case UNEQ:
            case UNGE:
            case UNGT:
            case UNLE:
            case UNLT:
              x11 = XEXP (x7, 1);
              if (x11 == const_int_rtx[MAX_SAVED_CONST_INT + 0]
                  && pattern291 (x1) == 0)
                {
                  x8 = XEXP (x7, 0);
                  if (GET_MODE (x8) == E_SImode)
                    {
                      if (GET_CODE (x8) == ZERO_EXTRACT)
                        {
                          res = split_8 (x1, insn);
                          if (res != NULL_RTX)
                            return res;
                        }
                      if (GET_CODE (x8) == PLUS)
                        {
                          operands[5] = x7;
                          if (comparison_operator (operands[5], E_VOIDmode)
                              && pattern601 (x3) == 0
                              && (
#line 10750 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT) && 
#line 10752 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
( reload_completed)))
                            return gen_split_95 (insn, operands);
                        }
                    }
                }
              if (!arm_comparison_operator (x7, E_VOIDmode))
                return NULL;
              operands[1] = x7;
              if (pattern291 (x1) != 0)
                return NULL;
              x8 = XEXP (x7, 0);
              operands[2] = x8;
              operands[3] = x11;
              x13 = XEXP (x3, 2);
              operands[4] = x13;
              x12 = XEXP (x3, 1);
              if (rtx_equal_p (x12, operands[0])
                  && 
#line 11693 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && reload_completed))
                return gen_split_100 (insn, operands);
              operands[4] = x12;
              if (rtx_equal_p (x13, operands[0])
                  && 
#line 11721 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && reload_completed))
                return gen_split_101 (insn, operands);
              operands[5] = x13;
              if (
#line 11742 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && reload_completed))
                return gen_split_102 (insn, operands);
              if (!arm_rhs_operand (operands[4], E_SImode)
                  || GET_CODE (x13) != NOT
                  || GET_MODE (x13) != E_SImode
                  || !s_register_operand (operands[2], E_SImode)
                  || !arm_add_operand (operands[3], E_SImode))
                return NULL;
              x14 = XEXP (x13, 0);
              operands[5] = x14;
              if (!s_register_operand (operands[5], E_SImode)
                  || !
#line 11774 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && reload_completed))
                return NULL;
              return gen_split_103 (insn, operands);

            default:
              return NULL;
            }

        case SMAX:
          if (pattern290 (x1) != 0)
            return NULL;
          if (
#line 4078 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return gen_split_22 (insn, operands);
          if (!
#line 37 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
            return NULL;
          return gen_split_132 (insn, operands);

        case SMIN:
          if (pattern290 (x1) != 0)
            return NULL;
          if (
#line 4128 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return gen_split_23 (insn, operands);
          if (!
#line 58 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
            return NULL;
          return gen_split_133 (insn, operands);

        case UMAX:
          if (pattern290 (x1) != 0)
            return NULL;
          if (
#line 4161 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return gen_split_24 (insn, operands);
          if (!
#line 79 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
            return NULL;
          return gen_split_134 (insn, operands);

        case UMIN:
          if (pattern290 (x1) != 0)
            return NULL;
          if (
#line 4194 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return gen_split_25 (insn, operands);
          if (!
#line 100 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
            return NULL;
          return gen_split_135 (insn, operands);

        case ABS:
          if (pattern15 (x1) != 0)
            return NULL;
          x4 = XVECEXP (x1, 0, 1);
          x6 = XEXP (x4, 0);
          if (GET_CODE (x6) == REG
              && REGNO (x6) == 100
              && GET_MODE (x6) == E_CCmode)
            {
              if ((
#line 5241 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM) && 
#line 5243 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
( reload_completed)))
                return gen_split_27 (insn, operands);
              if ((
#line 117 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2) && 
#line 122 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
( reload_completed)))
                return gen_split_136 (insn, operands);
            }
          operands[2] = x6;
          if (!scratch_operand (operands[2], E_SImode)
              || !
#line 336 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && reload_completed))
            return NULL;
          return gen_split_116 (insn, operands);

        case NEG:
          if (GET_MODE (x3) != E_SImode)
            return NULL;
          x4 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x4) != CLOBBER)
            return NULL;
          x5 = XEXP (x2, 0);
          operands[0] = x5;
          if (!s_register_operand (operands[0], E_SImode))
            return NULL;
          x7 = XEXP (x3, 0);
          switch (GET_CODE (x7))
            {
            case ABS:
              if (GET_MODE (x7) != E_SImode)
                return NULL;
              x8 = XEXP (x7, 0);
              operands[1] = x8;
              if (!s_register_operand (operands[1], E_SImode))
                return NULL;
              x6 = XEXP (x4, 0);
              if (GET_CODE (x6) == REG
                  && REGNO (x6) == 100
                  && GET_MODE (x6) == E_CCmode)
                {
                  if ((
#line 5305 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM) && 
#line 5307 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
( reload_completed)))
                    return gen_split_28 (insn, operands);
                  if ((
#line 170 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2) && 
#line 175 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
( reload_completed)))
                    return gen_split_137 (insn, operands);
                }
              operands[2] = x6;
              if (!scratch_operand (operands[2], E_SImode)
                  || !
#line 351 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && reload_completed))
                return NULL;
              return gen_split_117 (insn, operands);

            case NE:
            case EQ:
            case GE:
            case GT:
            case LE:
            case LT:
            case GEU:
            case GTU:
            case LEU:
            case LTU:
            case UNORDERED:
            case ORDERED:
            case UNGE:
            case UNGT:
            case UNLE:
            case UNLT:
              operands[3] = x7;
              if (!arm_comparison_operator (operands[3], E_VOIDmode))
                return NULL;
              x6 = XEXP (x4, 0);
              if (GET_CODE (x6) != REG
                  || REGNO (x6) != 100
                  || GET_MODE (x6) != E_CCmode)
                return NULL;
              x8 = XEXP (x7, 0);
              operands[1] = x8;
              if (!s_register_operand (operands[1], E_SImode))
                return NULL;
              x11 = XEXP (x7, 1);
              operands[2] = x11;
              if (!arm_rhs_operand (operands[2], E_SImode))
                return NULL;
              if ((
#line 10675 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM) && 
#line 10677 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
( reload_completed)))
                return gen_split_94 (insn, operands);
              if (!(
#line 899 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !TARGET_COND_ARITH) && 
#line 901 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
( reload_completed)))
                return NULL;
              return gen_split_148 (insn, operands);

            default:
              return NULL;
            }

        case ZERO_EXTEND:
          if (GET_MODE (x3) != E_SImode)
            return NULL;
          x7 = XEXP (x3, 0);
          if (GET_CODE (x7) != SUBREG)
            return NULL;
          x4 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x4) != CLOBBER)
            return NULL;
          x5 = XEXP (x2, 0);
          operands[0] = x5;
          if (!s_register_operand (operands[0], E_SImode)
              || GET_MODE (x7) != E_QImode)
            return NULL;
          x8 = XEXP (x7, 0);
          operands[1] = x8;
          x6 = XEXP (x4, 0);
          operands[2] = x6;
          if (!s_register_operand (operands[2], E_SImode))
            return NULL;
          switch (SUBREG_BYTE (x7))
            {
            case 0:
              if (!
#line 5777 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && (!MEM_P (operands[1])) && ! BYTES_BIG_ENDIAN))
                return NULL;
              return gen_split_33 (insn, operands);

            case 3:
              if (!
#line 5787 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && (!MEM_P (operands[1])) && BYTES_BIG_ENDIAN))
                return NULL;
              return gen_split_34 (insn, operands);

            default:
              return NULL;
            }

        case SIGN_EXTEND:
          if (GET_MODE (x3) != E_SImode)
            return NULL;
          x4 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x4) != CLOBBER)
            return NULL;
          x5 = XEXP (x2, 0);
          operands[0] = x5;
          if (!register_operand (operands[0], E_SImode))
            return NULL;
          x7 = XEXP (x3, 0);
          operands[1] = x7;
          if (!register_operand (operands[1], E_HImode))
            return NULL;
          x6 = XEXP (x4, 0);
          operands[2] = x6;
          if (!scratch_operand (operands[2], E_SImode)
              || !
#line 5856 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(!arm_arch6))
            return NULL;
          return gen_split_37 (insn, operands);

        case NE:
        case EQ:
        case GE:
        case GT:
        case LE:
        case LT:
        case GEU:
        case GTU:
        case LEU:
        case LTU:
        case UNORDERED:
        case ORDERED:
        case UNGE:
        case UNGT:
        case UNLE:
        case UNLT:
          if (pattern291 (x1) != 0)
            return NULL;
          if (GET_MODE (x3) == E_SImode)
            {
              res = split_9 (x1, insn);
              if (res != NULL_RTX)
                return res;
            }
          operands[1] = x3;
          if (!arm_comparison_operator (operands[1], E_SImode))
            return NULL;
          x7 = XEXP (x3, 0);
          operands[2] = x7;
          if (!s_register_operand (operands[2], E_SImode))
            return NULL;
          x12 = XEXP (x3, 1);
          operands[3] = x12;
          if (!arm_add_operand (operands[3], E_SImode)
              || !(
#line 9935 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT) && 
#line 9937 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
( reload_completed)))
            return NULL;
          return gen_split_86 (insn, operands);

        case COMPARE:
          x7 = XEXP (x3, 0);
          if (GET_MODE (x7) != E_SImode)
            return NULL;
          switch (GET_CODE (x7))
            {
            case IOR:
              x12 = XEXP (x3, 1);
              if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return NULL;
              x8 = XEXP (x7, 0);
              switch (GET_CODE (x8))
                {
                case NE:
                case EQ:
                case GE:
                case GT:
                case LE:
                case LT:
                case GEU:
                case GTU:
                case LEU:
                case LTU:
                case UNORDERED:
                case ORDERED:
                case UNGE:
                case UNGT:
                case UNLE:
                case UNLT:
                  if (!arm_comparison_operator (x8, E_SImode))
                    return NULL;
                  x9 = XEXP (x8, 0);
                  if (!s_register_operand (x9, E_SImode))
                    return NULL;
                  x10 = XEXP (x8, 1);
                  if (!arm_add_operand (x10, E_SImode))
                    return NULL;
                  x11 = XEXP (x7, 1);
                  switch (GET_CODE (x11))
                    {
                    case NE:
                    case EQ:
                    case GE:
                    case GT:
                    case LE:
                    case LT:
                    case GEU:
                    case GTU:
                    case LEU:
                    case LTU:
                    case UNORDERED:
                    case ORDERED:
                    case UNGE:
                    case UNGT:
                    case UNLE:
                    case UNLT:
                      operands[6] = x11;
                      if (!arm_comparison_operator (operands[6], E_SImode))
                        return NULL;
                      x4 = XVECEXP (x1, 0, 1);
                      if (GET_CODE (x4) != SET)
                        return NULL;
                      x15 = XEXP (x4, 1);
                      if (GET_CODE (x15) != IOR
                          || GET_MODE (x15) != E_SImode)
                        return NULL;
                      x16 = XEXP (x15, 0);
                      switch (GET_CODE (x16))
                        {
                        case NE:
                        case EQ:
                        case GE:
                        case GT:
                        case LE:
                        case LT:
                        case GEU:
                        case GTU:
                        case LEU:
                        case LTU:
                        case UNORDERED:
                        case ORDERED:
                        case UNGE:
                        case UNGT:
                        case UNLE:
                        case UNLT:
                          x17 = XEXP (x15, 1);
                          switch (GET_CODE (x17))
                            {
                            case NE:
                            case EQ:
                            case GE:
                            case GT:
                            case LE:
                            case LT:
                            case GEU:
                            case GTU:
                            case LEU:
                            case LTU:
                            case UNORDERED:
                            case ORDERED:
                            case UNGE:
                            case UNGT:
                            case UNLE:
                            case UNLT:
                              if (!rtx_equal_p (x17, operands[6]))
                                return NULL;
                              x5 = XEXP (x2, 0);
                              operands[0] = x5;
                              if (!dominant_cc_register (operands[0], E_VOIDmode))
                                return NULL;
                              operands[3] = x8;
                              operands[1] = x9;
                              operands[2] = x10;
                              x18 = XEXP (x11, 0);
                              operands[4] = x18;
                              if (!s_register_operand (operands[4], E_SImode))
                                return NULL;
                              x19 = XEXP (x11, 1);
                              operands[5] = x19;
                              if (!arm_add_operand (operands[5], E_SImode))
                                return NULL;
                              x6 = XEXP (x4, 0);
                              operands[7] = x6;
                              if (!s_register_operand (operands[7], E_SImode)
                                  || !rtx_equal_p (x16, operands[3])
                                  || !
#line 10515 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed))
                                return NULL;
                              return gen_split_88 (insn, operands);

                            default:
                              return NULL;
                            }

                        default:
                          return NULL;
                        }

                    case AND:
                      if (GET_MODE (x11) != E_SImode)
                        return NULL;
                      x19 = XEXP (x11, 1);
                      if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
                        return NULL;
                      x5 = XEXP (x2, 0);
                      if (GET_CODE (x5) != REG
                          || REGNO (x5) != 100
                          || GET_MODE (x5) != E_CC_NZmode)
                        return NULL;
                      x4 = XVECEXP (x1, 0, 1);
                      if (GET_CODE (x4) != CLOBBER
                          || GET_MODE (x3) != E_CC_NZmode)
                        return NULL;
                      operands[1] = x8;
                      operands[2] = x9;
                      operands[3] = x10;
                      x18 = XEXP (x11, 0);
                      operands[0] = x18;
                      if (!s_register_operand (operands[0], E_SImode))
                        return NULL;
                      x6 = XEXP (x4, 0);
                      operands[4] = x6;
                      if (!s_register_operand (operands[4], E_SImode)
                          || !
#line 10659 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                        return NULL;
                      return gen_split_93 (insn, operands);

                    default:
                      return NULL;
                    }

                case AND:
                  if (GET_MODE (x8) != E_SImode)
                    return NULL;
                  x10 = XEXP (x8, 1);
                  if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
                    return NULL;
                  x11 = XEXP (x7, 1);
                  if (!arm_comparison_operator (x11, E_SImode))
                    return NULL;
                  operands[1] = x11;
                  if (pattern478 (x1, E_CC_NZmode) != 0
                      || !s_register_operand (operands[0], E_SImode))
                    return NULL;
                  x18 = XEXP (x11, 0);
                  operands[2] = x18;
                  if (!s_register_operand (operands[2], E_SImode))
                    return NULL;
                  x19 = XEXP (x11, 1);
                  operands[3] = x19;
                  if (!arm_add_operand (operands[3], E_SImode))
                    return NULL;
                  x4 = XVECEXP (x1, 0, 1);
                  x6 = XEXP (x4, 0);
                  operands[4] = x6;
                  if (!s_register_operand (operands[4], E_SImode)
                      || !
#line 10640 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                    return NULL;
                  return gen_split_92 (insn, operands);

                default:
                  return NULL;
                }

            case AND:
              x8 = XEXP (x7, 0);
              if (!arm_comparison_operator (x8, E_SImode))
                return NULL;
              operands[3] = x8;
              x11 = XEXP (x7, 1);
              if (!arm_comparison_operator (x11, E_SImode))
                return NULL;
              operands[6] = x11;
              x12 = XEXP (x3, 1);
              if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
                  || pattern423 (x1, AND) != 0
                  || !
#line 10579 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed))
                return NULL;
              return gen_split_90 (insn, operands);

            case ASHIFT:
              x8 = XEXP (x7, 0);
              if (GET_CODE (x8) != SUBREG
                  || maybe_ne (SUBREG_BYTE (x8), 0)
                  || GET_MODE (x8) != E_SImode)
                return NULL;
              x11 = XEXP (x7, 1);
              if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 24]
                  || pattern478 (x1, E_CC_Zmode) != 0
                  || !memory_operand (operands[0], E_QImode))
                return NULL;
              x12 = XEXP (x3, 1);
              operands[1] = x12;
              if (!const_int_operand (operands[1], E_VOIDmode))
                return NULL;
              x4 = XVECEXP (x1, 0, 1);
              x6 = XEXP (x4, 0);
              operands[2] = x6;
              if (!scratch_operand (operands[2], E_SImode)
                  || !
#line 11592 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM
   && ((UINTVAL (operands[1]))
       == ((UINTVAL (operands[1])) >> 24) << 24)))
                return NULL;
              return gen_split_99 (insn, operands);

            default:
              return NULL;
            }

        case CONST_DOUBLE:
          switch (pattern16 (x1))
            {
            case 0:
              if (!(
#line 2142 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(arm_disable_literal_pool
   && TARGET_VFP_BASE
   && !arm_const_double_rtx (operands[1])
   && !(TARGET_VFP_DOUBLE && vfp3_const_double_rtx (operands[1]))) && 
#line 2147 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
( 1)))
                return NULL;
              return gen_split_111 (insn, operands);

            case 1:
              if (!(
#line 2169 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(arm_disable_literal_pool
   && TARGET_VFP_BASE
   && !vfp3_const_double_rtx (operands[1])) && 
#line 2173 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
( 1)))
                return NULL;
              return gen_split_112 (insn, operands);

            default:
              return NULL;
            }

        case ZERO_EXTRACT:
          if (pattern15 (x1) != 0)
            return NULL;
          x12 = XEXP (x3, 1);
          operands[2] = x12;
          if (!const_int_operand (operands[2], E_SImode))
            return NULL;
          x13 = XEXP (x3, 2);
          operands[3] = x13;
          if (!const_int_operand (operands[3], E_SImode))
            return NULL;
          x4 = XVECEXP (x1, 0, 1);
          x6 = XEXP (x4, 0);
          operands[4] = x6;
          if (!s_register_operand (operands[4], E_SImode)
              || !
#line 204 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return NULL;
          return gen_split_114 (insn, operands);

        default:
          return NULL;
        }

    case UNSPEC_VOLATILE:
      if (XVECLEN (x2, 0) != 1
          || XINT (x2, 1) != 16)
        return NULL;
      x4 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x4) != CLOBBER)
        return NULL;
      x20 = XVECEXP (x2, 0, 0);
      operands[0] = x20;
      if (!s_register_operand (operands[0], E_SImode))
        return NULL;
      x6 = XEXP (x4, 0);
      operands[1] = x6;
      if (!scratch_operand (operands[1], E_SImode))
        return NULL;
      if ((
#line 12260 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM) && 
#line 12262 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
( reload_completed)))
        return gen_split_105 (insn, operands);
      if ((
#line 2032 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1) && 
#line 2034 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
( reload_completed)))
        return gen_split_131 (insn, operands);
      if (!(
#line 1239 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2) && 
#line 1241 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
( reload_completed)))
        return NULL;
      return gen_split_149 (insn, operands);

    default:
      return NULL;
    }
}

static rtx_insn *
split_11 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12;
  rtx_insn *res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    case PLUS:
      if (GET_MODE (x2) != E_SImode)
        return NULL;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x4 = XEXP (x2, 0);
      operands[1] = x4;
      if (s_register_operand (operands[1], E_SImode)
          && s_register_operand (operands[0], E_SImode))
        {
          x5 = XEXP (x2, 1);
          operands[2] = x5;
          if (reg_or_int_operand (operands[2], E_SImode)
              && 
#line 948 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && CONST_INT_P (operands[2])
   && !const_ok_for_op (INTVAL (operands[2]), PLUS)
   && (reload_completed || !arm_eliminable_register (operands[1]))))
            return gen_split_1 (insn, operands);
        }
      if (!register_operand (operands[1], E_SImode)
          || !register_operand (operands[0], E_SImode))
        return NULL;
      x5 = XEXP (x2, 1);
      operands[2] = x5;
      if (!nonmemory_operand (operands[2], E_SImode)
          || !(
#line 66 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1) && 
#line 87 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
( reload_completed && CONST_INT_P (operands[2])
   && ((operands[1] != stack_pointer_rtx
        && (INTVAL (operands[2]) > 255 || INTVAL (operands[2]) < -255))
       || (operands[1] == stack_pointer_rtx
 	   && INTVAL (operands[2]) > 1020)))))
        return NULL;
      return gen_split_113 (insn, operands);

    case MINUS:
      if (GET_MODE (x2) != E_SImode)
        return NULL;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!s_register_operand (operands[0], E_SImode))
        return NULL;
      x4 = XEXP (x2, 0);
      operands[1] = x4;
      if (!reg_or_int_operand (operands[1], E_SImode))
        return NULL;
      x5 = XEXP (x2, 1);
      operands[2] = x5;
      if (!reg_or_int_operand (operands[2], E_SImode)
          || !(
#line 2006 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT) && 
#line 2017 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
( (CONST_INT_P (operands[1])
       && !const_ok_for_arm (INTVAL (operands[1]))))))
        return NULL;
      return gen_split_3 (insn, operands);

    case AND:
    case IOR:
    case XOR:
      operands[6] = x2;
      if (logical_binary_operator (operands[6], E_DImode))
        {
          x3 = XEXP (x1, 0);
          operands[0] = x3;
          if (s_register_operand (operands[0], E_DImode))
            {
              x4 = XEXP (x2, 0);
              operands[1] = x4;
              if (s_register_operand (operands[1], E_DImode))
                {
                  x5 = XEXP (x2, 1);
                  operands[2] = x5;
                  if (s_register_operand (operands[2], E_DImode)
                      && 
#line 2888 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed
   && ! IS_IWMMXT_REGNUM (REGNO (operands[0]))))
                    return gen_split_4 (insn, operands);
                }
            }
        }
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!s_register_operand (operands[0], E_SImode)
          || GET_MODE (x2) != E_SImode)
        return NULL;
      switch (GET_CODE (x2))
        {
        case AND:
          x4 = XEXP (x2, 0);
          switch (GET_CODE (x4))
            {
            case REG:
            case SUBREG:
              operands[1] = x4;
              if (!s_register_operand (operands[1], E_SImode))
                return NULL;
              x5 = XEXP (x2, 1);
              operands[2] = x5;
              if (!reg_or_int_operand (operands[2], E_SImode)
                  || !
#line 3017 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && CONST_INT_P (operands[2])
   && !(const_ok_for_arm (INTVAL (operands[2]))
	|| const_ok_for_arm (~INTVAL (operands[2]))
	|| (arm_arch_thumb2
	    && satisfies_constraint_Dj (operands[2])
	    && (rtx_equal_p (operands[0], operands[1])
		|| !reload_completed)))))
                return NULL;
              return gen_split_6 (insn, operands);

            case IOR:
              if (GET_MODE (x4) != E_SImode)
                return NULL;
              x5 = XEXP (x2, 1);
              if (GET_CODE (x5) != NOT
                  || GET_MODE (x5) != E_SImode)
                return NULL;
              x6 = XEXP (x4, 0);
              operands[1] = x6;
              if (!s_register_operand (operands[1], E_SImode))
                return NULL;
              x7 = XEXP (x4, 1);
              operands[2] = x7;
              if (!arm_rhs_operand (operands[2], E_SImode))
                return NULL;
              x8 = XEXP (x5, 0);
              operands[3] = x8;
              if (!arm_rhs_operand (operands[3], E_SImode)
                  || !(
#line 3896 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT) && 
#line 3898 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
( reload_completed)))
                return NULL;
              return gen_split_17 (insn, operands);

            case NE:
            case EQ:
            case GE:
            case GT:
            case LE:
            case LT:
            case GEU:
            case GTU:
            case LEU:
            case LTU:
            case UNORDERED:
            case ORDERED:
            case UNGE:
            case UNGT:
            case UNLE:
            case UNLT:
              operands[1] = x4;
              if (!arm_comparison_operator (operands[1], E_SImode))
                return NULL;
              x7 = XEXP (x4, 1);
              if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return NULL;
              x6 = XEXP (x4, 0);
              operands[2] = x6;
              if (!cc_register (operands[2], E_VOIDmode))
                return NULL;
              x5 = XEXP (x2, 1);
              operands[3] = x5;
              if (!s_register_operand (operands[3], E_SImode))
                return NULL;
              if ((
#line 9798 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM) && 
#line 9800 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
( reload_completed)))
                return gen_split_78 (insn, operands);
              if (!(
#line 618 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2) && 
#line 620 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
( reload_completed)))
                return NULL;
              return gen_split_144 (insn, operands);

            default:
              return NULL;
            }

        case IOR:
          x4 = XEXP (x2, 0);
          switch (GET_CODE (x4))
            {
            case REG:
            case SUBREG:
              operands[1] = x4;
              if (!s_register_operand (operands[1], E_SImode))
                return NULL;
              x5 = XEXP (x2, 1);
              operands[2] = x5;
              if (!reg_or_int_operand (operands[2], E_SImode)
                  || !
#line 3730 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && CONST_INT_P (operands[2])
   && !(const_ok_for_arm (INTVAL (operands[2]))
        || (TARGET_THUMB2 && const_ok_for_arm (~INTVAL (operands[2]))))))
                return NULL;
              return gen_split_14 (insn, operands);

            case AND:
              if (pattern398 (x2) != 0
                  || !
#line 5803 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (UINTVAL (operands[3])
       == (GET_MODE_MASK (GET_MODE (operands[5]))
           & (GET_MODE_MASK (GET_MODE (operands[5]))
	      << (INTVAL (operands[2])))))))
                return NULL;
              return gen_split_35 (insn, operands);

            case NE:
            case EQ:
            case GE:
            case GT:
            case LE:
            case LT:
            case GEU:
            case GTU:
            case LEU:
            case LTU:
            case UNORDERED:
            case ORDERED:
            case UNGE:
            case UNGT:
            case UNLE:
            case UNLT:
              if (!arm_comparison_operator (x4, E_SImode))
                return NULL;
              x7 = XEXP (x4, 1);
              if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return NULL;
              x6 = XEXP (x4, 0);
              if (!cc_register (x6, E_VOIDmode))
                return NULL;
              operands[2] = x6;
              operands[1] = x4;
              x5 = XEXP (x2, 1);
              operands[3] = x5;
              if (s_register_operand (operands[3], E_SImode))
                {
                  if ((
#line 9827 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM) && 
#line 9831 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
( reload_completed
   && REGNO (operands [0]) != REGNO (operands[3]))))
                    return gen_split_79 (insn, operands);
                  if ((
#line 646 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !arm_restrict_it) && 
#line 651 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
( reload_completed
    && REGNO (operands [0]) != REGNO (operands[3]))))
                    return gen_split_145 (insn, operands);
                }
              operands[3] = x6;
              operands[2] = x4;
              operands[1] = x5;
              if (!s_register_operand (operands[1], E_SImode)
                  || !(
#line 677 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_restrict_it) && 
#line 679 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
( reload_completed)))
                return NULL;
              return gen_split_146 (insn, operands);

            default:
              return NULL;
            }

        case XOR:
          x4 = XEXP (x2, 0);
          switch (GET_CODE (x4))
            {
            case REG:
            case SUBREG:
              operands[1] = x4;
              if (!s_register_operand (operands[1], E_SImode))
                return NULL;
              x5 = XEXP (x2, 1);
              operands[2] = x5;
              if (!reg_or_int_operand (operands[2], E_SImode)
                  || !
#line 3835 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && CONST_INT_P (operands[2])
   && !const_ok_for_arm (INTVAL (operands[2]))))
                return NULL;
              return gen_split_15 (insn, operands);

            case AND:
              if (pattern398 (x2) != 0
                  || !
#line 5803 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (UINTVAL (operands[3])
       == (GET_MODE_MASK (GET_MODE (operands[5]))
           & (GET_MODE_MASK (GET_MODE (operands[5]))
	      << (INTVAL (operands[2])))))))
                return NULL;
              return gen_split_36 (insn, operands);

            default:
              return NULL;
            }

        default:
          return NULL;
        }

    case NOT:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x4 = XEXP (x2, 0);
      operands[1] = x4;
      switch (GET_CODE (operands[1]))
        {
        case REG:
        case SUBREG:
          if (!s_register_operand (operands[1], E_DImode)
              || !s_register_operand (operands[0], E_DImode)
              || GET_MODE (x2) != E_DImode
              || !
#line 2908 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return NULL;
          return gen_split_5 (insn, operands);

        case NE:
        case EQ:
        case GE:
        case GT:
        case LE:
        case LT:
        case GEU:
        case GTU:
        case LEU:
        case LTU:
        case UNORDERED:
        case ORDERED:
        case UNGE:
        case UNGT:
        case UNLE:
        case UNLT:
          x7 = XEXP (x4, 1);
          if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
              || GET_MODE (x2) != E_SImode)
            return NULL;
          x6 = XEXP (x4, 0);
          operands[2] = x6;
          if (!cc_register (operands[2], E_VOIDmode))
            return NULL;
          if (s_register_operand (operands[0], E_SImode))
            {
              if (arm_comparison_operator (operands[1], E_SImode)
                  && 
#line 8126 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return gen_split_73 (insn, operands);
              if (arm_comparison_operator_mode (operands[1], E_SImode)
                  && (
#line 396 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !arm_restrict_it) && 
#line 398 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
( true)))
                return gen_split_141 (insn, operands);
            }
          if (!low_register_operand (operands[0], E_SImode)
              || !arm_comparison_operator_mode (operands[1], E_SImode)
              || !(
#line 416 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_restrict_it) && 
#line 418 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
( reload_completed)))
            return NULL;
          return gen_split_142 (insn, operands);

        default:
          return NULL;
        }

    case ZERO_EXTEND:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x4 = XEXP (x2, 0);
      operands[1] = x4;
      switch (GET_MODE (operands[0]))
        {
        case E_DImode:
          if (!s_register_operand (operands[0], E_DImode)
              || GET_MODE (x2) != E_DImode
              || !nonimmediate_operand (operands[1], E_VOIDmode)
              || !
#line 5608 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return NULL;
          return gen_split_29 (insn, operands);

        case E_SImode:
          if (!s_register_operand (operands[0], E_SImode)
              || GET_MODE (x2) != E_SImode)
            return NULL;
          switch (GET_MODE (operands[1]))
            {
            case E_HImode:
              if (!s_register_operand (operands[1], E_HImode)
                  || !
#line 5664 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(!TARGET_THUMB2 && !arm_arch6))
                return NULL;
              return gen_split_31 (insn, operands);

            case E_QImode:
              if (!s_register_operand (operands[1], E_QImode)
                  || !
#line 5728 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(!arm_arch6))
                return NULL;
              return gen_split_32 (insn, operands);

            default:
              return NULL;
            }

        default:
          return NULL;
        }

    case SIGN_EXTEND:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x4 = XEXP (x2, 0);
      operands[1] = x4;
      switch (GET_MODE (operands[0]))
        {
        case E_DImode:
          if (!s_register_operand (operands[0], E_DImode)
              || GET_MODE (x2) != E_DImode
              || !nonimmediate_operand (operands[1], E_VOIDmode)
              || !
#line 5626 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return NULL;
          return gen_split_30 (insn, operands);

        case E_SImode:
          if (!register_operand (operands[0], E_SImode)
              || GET_MODE (x2) != E_SImode)
            return NULL;
          switch (GET_MODE (operands[1]))
            {
            case E_HImode:
              if (!register_operand (operands[1], E_HImode)
                  || !
#line 5903 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(!arm_arch6))
                return NULL;
              return gen_split_38 (insn, operands);

            case E_QImode:
              if (register_operand (operands[1], E_QImode)
                  && 
#line 5997 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(!arm_arch6))
                return gen_split_39 (insn, operands);
              if (!memory_operand (operands[1], E_QImode)
                  || !
#line 512 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && reload_completed))
                return NULL;
              return gen_split_118 (insn, operands);

            default:
              return NULL;
            }

        default:
          return NULL;
        }

    case CONST_INT:
    case CONST_WIDE_INT:
    case CONST_POLY_INT:
    case CONST_FIXED:
    case CONST_DOUBLE:
    case CONST_VECTOR:
    case CONST:
    case REG:
    case SUBREG:
    case MEM:
    case LABEL_REF:
    case SYMBOL_REF:
    case HIGH:
      return split_2 (x1, insn);

    case UNSPEC:
      if (XVECLEN (x2, 0) != 2)
        return NULL;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x9 = XVECEXP (x2, 0, 0);
      operands[1] = x9;
      x10 = XVECEXP (x2, 0, 1);
      operands[2] = x10;
      switch (XINT (x2, 1))
        {
        case 27:
          if (GET_MODE (x2) != E_SImode
              || !s_register_operand (operands[0], E_SImode)
              || !(
#line 6676 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(flag_pic) && 
#line 6678 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
( reload_completed)))
            return NULL;
          return gen_split_67 (insn, operands);

        case 335:
          if (GET_MODE (x2) != E_V16QImode
              || !s_register_operand (operands[0], E_V16QImode))
            return NULL;
          switch (pattern451 ())
            {
            case 0:
              if (!(
#line 4710 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 4712 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
( reload_completed)))
                return NULL;
              return gen_split_161 (insn, operands);

            case 1:
              if (!(
#line 4741 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 4743 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
( reload_completed)))
                return NULL;
              return gen_split_162 (insn, operands);

            default:
              return NULL;
            }

        case 171:
          if (GET_MODE (x2) != E_OImode
              || !s_register_operand (operands[0], E_OImode)
              || !s_register_operand (operands[1], E_V16QImode)
              || !s_register_operand (operands[2], E_V16QImode)
              || !(
#line 4776 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 4778 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
( reload_completed)))
            return NULL;
          return gen_split_163 (insn, operands);

        default:
          return NULL;
        }

    case NE:
    case EQ:
    case GE:
    case GT:
    case LE:
    case LT:
    case GEU:
    case GTU:
    case LEU:
    case LTU:
    case UNORDERED:
    case ORDERED:
    case UNGE:
    case UNGT:
    case UNLE:
    case UNLT:
      operands[1] = x2;
      if (arm_comparison_operator_mode (operands[1], E_SImode))
        {
          x5 = XEXP (x2, 1);
          if (x5 == const_int_rtx[MAX_SAVED_CONST_INT + 0])
            {
              x3 = XEXP (x1, 0);
              operands[0] = x3;
              if (s_register_operand (operands[0], E_SImode))
                {
                  x4 = XEXP (x2, 0);
                  operands[2] = x4;
                  if (cc_register (operands[2], E_VOIDmode)
                      && 
#line 8080 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                    return gen_split_71 (insn, operands);
                }
            }
        }
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!s_register_operand (operands[0], E_SImode))
        return NULL;
      if (GET_CODE (x2) == LTU
          && GET_MODE (x2) == E_SImode)
        {
          x4 = XEXP (x2, 0);
          operands[1] = x4;
          if (s_register_operand (operands[1], E_SImode))
            {
              x5 = XEXP (x2, 1);
              operands[2] = x5;
              if (thumb1_cmp_operand (operands[2], E_SImode)
                  && 
#line 1755 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                return gen_split_130 (insn, operands);
            }
        }
      x5 = XEXP (x2, 1);
      if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return NULL;
      operands[1] = x2;
      if (!arm_comparison_operator_mode (operands[1], E_SImode))
        return NULL;
      x4 = XEXP (x2, 0);
      operands[2] = x4;
      if (!cc_register (operands[2], E_VOIDmode)
          || !
#line 328 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return NULL;
      return gen_split_138 (insn, operands);

    case NEG:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x4 = XEXP (x2, 0);
      operands[1] = x4;
      switch (GET_CODE (operands[1]))
        {
        case NE:
        case EQ:
        case GE:
        case GT:
        case LE:
        case LT:
        case GEU:
        case GTU:
        case LEU:
        case LTU:
        case UNORDERED:
        case ORDERED:
        case UNGE:
        case UNGT:
        case UNLE:
        case UNLT:
          if (!arm_comparison_operator_mode (operands[1], E_SImode))
            return NULL;
          x7 = XEXP (x4, 1);
          if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
              || GET_MODE (x2) != E_SImode)
            return NULL;
          x6 = XEXP (x4, 0);
          operands[2] = x6;
          if (!cc_register (operands[2], E_VOIDmode))
            return NULL;
          if (s_register_operand (operands[0], E_SImode))
            {
              if ((
#line 8105 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && !arm_borrow_operation (operands[1], SImode)) && 
#line 8107 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
( true)))
                return gen_split_72 (insn, operands);
              if ((
#line 344 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2
   && !arm_restrict_it
   && !arm_borrow_operation (operands[1], SImode)) && 
#line 348 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
( true)))
                return gen_split_139 (insn, operands);
            }
          if (!low_register_operand (operands[0], E_SImode)
              || !(
#line 365 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2
   && arm_restrict_it
   && !arm_borrow_operation (operands[1], SImode)) && 
#line 369 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
( reload_completed)))
            return NULL;
          return gen_split_140 (insn, operands);

        case REG:
        case SUBREG:
          if (!s_register_operand (operands[1], E_DFmode)
              || !s_register_operand (operands[0], E_DFmode)
              || GET_MODE (x2) != E_DFmode
              || !
#line 906 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE && reload_completed
   && arm_general_register_operand (operands[0], DFmode)))
            return NULL;
          return gen_split_106 (insn, operands);

        default:
          return NULL;
        }

    case IF_THEN_ELSE:
      if (GET_MODE (x2) != E_SImode)
        return NULL;
      x4 = XEXP (x2, 0);
      if (!arm_comparison_operator (x4, E_VOIDmode))
        return NULL;
      x7 = XEXP (x4, 1);
      if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return NULL;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!s_register_operand (operands[0], E_SImode))
        return NULL;
      x6 = XEXP (x4, 0);
      if (!cc_register (x6, E_VOIDmode))
        return NULL;
      x5 = XEXP (x2, 1);
      switch (GET_CODE (x5))
        {
        case CONST_INT:
        case REG:
        case SUBREG:
          operands[1] = x5;
          x11 = XEXP (x2, 2);
          switch (GET_CODE (x11))
            {
            case CONST_INT:
            case REG:
            case SUBREG:
              operands[2] = x11;
              if (!arm_not_operand (operands[2], E_SImode))
                return NULL;
              operands[3] = x4;
              operands[4] = x6;
              if (!arm_not_operand (operands[1], E_SImode))
                return NULL;
              if ((
#line 8492 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM) && 
#line 8506 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
( reload_completed)))
                return gen_split_74 (insn, operands);
              if (!(
#line 442 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2) && 
#line 462 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
( reload_completed)))
                return NULL;
              return gen_split_143 (insn, operands);

            case NEG:
              if (GET_MODE (x11) != E_SImode)
                return NULL;
              operands[4] = x4;
              operands[3] = x6;
              if (!s_register_operand (operands[1], E_SImode))
                return NULL;
              x12 = XEXP (x11, 0);
              operands[2] = x12;
              if (!s_register_operand (operands[2], E_SImode)
                  || !(
#line 11426 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT) && 
#line 11428 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
( reload_completed)))
                return NULL;
              return gen_split_97 (insn, operands);

            default:
              return NULL;
            }

        case NEG:
          if (GET_MODE (x5) != E_SImode)
            return NULL;
          operands[4] = x4;
          operands[3] = x6;
          x8 = XEXP (x5, 0);
          operands[2] = x8;
          if (!s_register_operand (operands[2], E_SImode))
            return NULL;
          x11 = XEXP (x2, 2);
          operands[1] = x11;
          if (!s_register_operand (operands[1], E_SImode)
              || !(
#line 11390 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && !TARGET_COND_ARITH) && 
#line 11392 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
( reload_completed)))
            return NULL;
          return gen_split_96 (insn, operands);

        default:
          return NULL;
        }

    case CTZ:
      if (GET_MODE (x2) != E_SImode)
        return NULL;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!s_register_operand (operands[0], E_SImode))
        return NULL;
      x4 = XEXP (x2, 0);
      operands[1] = x4;
      if (!s_register_operand (operands[1], E_SImode)
          || !(
#line 12198 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch_thumb2) && 
#line 12200 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
( reload_completed)))
        return NULL;
      return gen_split_104 (insn, operands);

    case COMPARE:
      x3 = XEXP (x1, 0);
      if (GET_CODE (x3) != REG
          || REGNO (x3) != 100)
        return NULL;
      x4 = XEXP (x2, 0);
      operands[0] = x4;
      x5 = XEXP (x2, 1);
      operands[1] = x5;
      switch (GET_MODE (x3))
        {
        case E_CCFPmode:
          switch (pattern399 (x2, E_CCFPmode))
            {
            case 0:
              if (!
#line 1751 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
                return NULL;
              return gen_split_107 (insn, operands);

            case 1:
              if (!
#line 1781 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
                return NULL;
              return gen_split_109 (insn, operands);

            default:
              return NULL;
            }

        case E_CCFPEmode:
          switch (pattern399 (x2, E_CCFPEmode))
            {
            case 0:
              if (!
#line 1766 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
                return NULL;
              return gen_split_108 (insn, operands);

            case 1:
              if (!
#line 1796 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
                return NULL;
              return gen_split_110 (insn, operands);

            default:
              return NULL;
            }

        default:
          return NULL;
        }

    case SIGN_EXTRACT:
      if (pattern3 (x1) != 0
          || !
#line 220 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return NULL;
      return gen_split_115 (insn, operands);

    case VEC_CONCAT:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      switch (pattern12 (x2))
        {
        case 0:
          if (!(
#line 3611 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 3613 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
( reload_completed)))
            return NULL;
          return gen_split_154 (insn, operands);

        case 1:
          if (!(
#line 3611 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 3613 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
( reload_completed)))
            return NULL;
          return gen_split_155 (insn, operands);

        case 2:
          if (!(
#line 3611 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 3613 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
( reload_completed)))
            return NULL;
          return gen_split_156 (insn, operands);

        case 3:
          if (!(
#line 3611 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 3613 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
( reload_completed)))
            return NULL;
          return gen_split_157 (insn, operands);

        case 4:
          if (!(
#line 3611 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 3613 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
( reload_completed)))
            return NULL;
          return gen_split_158 (insn, operands);

        case 5:
          if (!(
#line 3611 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 3613 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
( reload_completed)))
            return NULL;
          return gen_split_159 (insn, operands);

        case 6:
          if (!(
#line 3611 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 3613 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
( reload_completed)))
            return NULL;
          return gen_split_160 (insn, operands);

        default:
          return NULL;
        }

    case VEC_DUPLICATE:
      if (GET_MODE (x2) != E_V2DImode)
        return NULL;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!s_register_operand (operands[0], E_V2DImode))
        return NULL;
      x4 = XEXP (x2, 0);
      operands[1] = x4;
      if (!neon_struct_operand (operands[1], E_DImode)
          || !(
#line 5041 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 5043 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/neon.md"
( reload_completed)))
        return NULL;
      return gen_split_164 (insn, operands);

    default:
      return NULL;
    }
}

static rtx_insn *
split_12 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24;
  rtx_insn *res ATTRIBUTE_UNUSED;
  switch (XVECLEN (x1, 0))
    {
    case 2:
      return split_10 (x1, insn);

    case 3:
      x2 = XVECEXP (x1, 0, 0);
      if (GET_CODE (x2) != SET)
        return NULL;
      x3 = XEXP (x2, 1);
      if (GET_CODE (x3) != UNSPEC
          || XVECLEN (x3, 0) != 1
          || pattern322 (x3) != 0)
        return NULL;
      x4 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x4) != CLOBBER)
        return NULL;
      x5 = XVECEXP (x1, 0, 2);
      if (GET_CODE (x5) != CLOBBER
          || pattern487 (x1) != 0
          || !
#line 9292 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(reload_completed))
        return NULL;
      return gen_split_75 (insn, operands);

    case 4:
      x2 = XVECEXP (x1, 0, 0);
      if (GET_CODE (x2) != SET)
        return NULL;
      x6 = XVECEXP (x1, 0, 3);
      if (GET_CODE (x6) != CLOBBER)
        return NULL;
      x3 = XEXP (x2, 1);
      switch (GET_CODE (x3))
        {
        case IF_THEN_ELSE:
          x7 = XEXP (x3, 0);
          if (GET_CODE (x7) != EQ)
            return NULL;
          x8 = XEXP (x7, 1);
          if (GET_CODE (x8) != UNSPEC
              || XVECLEN (x8, 0) != 1
              || XINT (x8, 1) != 41
              || GET_MODE (x8) != E_SImode)
            return NULL;
          x9 = XVECEXP (x8, 0, 0);
          if (GET_CODE (x9) != MEM
              || GET_MODE (x9) != E_SImode)
            return NULL;
          x10 = XEXP (x3, 1);
          if (GET_CODE (x10) != LABEL_REF)
            return NULL;
          x11 = XEXP (x3, 2);
          if (GET_CODE (x11) != PC)
            return NULL;
          x12 = XEXP (x2, 0);
          if (GET_CODE (x12) != PC)
            return NULL;
          x4 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x4) != CLOBBER)
            return NULL;
          x5 = XVECEXP (x1, 0, 2);
          if (GET_CODE (x5) != CLOBBER)
            return NULL;
          x13 = XEXP (x6, 0);
          if (GET_CODE (x13) != REG
              || REGNO (x13) != 100
              || GET_MODE (x13) != E_CCmode)
            return NULL;
          x14 = XEXP (x7, 0);
          operands[0] = x14;
          if (!memory_operand (operands[0], E_SImode))
            return NULL;
          x15 = XEXP (x9, 0);
          operands[1] = x15;
          if (!guard_addr_operand (operands[1], E_SImode))
            return NULL;
          x16 = XEXP (x10, 0);
          operands[2] = x16;
          x17 = XEXP (x4, 0);
          operands[3] = x17;
          if (!scratch_operand (operands[3], E_SImode))
            return NULL;
          x18 = XEXP (x5, 0);
          operands[4] = x18;
          if (!scratch_operand (operands[4], E_SImode)
              || !
#line 9381 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(reload_completed))
            return NULL;
          return gen_split_76 (insn, operands);

        case UNSPEC_VOLATILE:
          switch (pattern303 (x1))
            {
            case 0:
              if (!((
#line 204 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_32BIT)) && 
#line 206 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_165 (insn, operands);

            case 1:
              if (!((
#line 204 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_32BIT)) && 
#line 206 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_166 (insn, operands);

            case 2:
              if (!((
#line 204 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_THUMB1)) && 
#line 206 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_167 (insn, operands);

            case 3:
              if (!((
#line 204 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_THUMB1)) && 
#line 206 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_168 (insn, operands);

            case 4:
              if (!((
#line 235 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_32BIT)) && 
#line 237 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_169 (insn, operands);

            case 5:
              if (!((
#line 235 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_32BIT)) && 
#line 237 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_170 (insn, operands);

            case 6:
              if (!((
#line 235 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_THUMB1)) && 
#line 237 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_171 (insn, operands);

            case 7:
              if (!((
#line 235 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/iterators.md"
(TARGET_THUMB1)) && 
#line 237 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_172 (insn, operands);

            case 8:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_177 (insn, operands);

            case 9:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_182 (insn, operands);

            case 10:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_187 (insn, operands);

            case 11:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_192 (insn, operands);

            case 12:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_178 (insn, operands);

            case 13:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_183 (insn, operands);

            case 14:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_188 (insn, operands);

            case 15:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_193 (insn, operands);

            case 16:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_179 (insn, operands);

            case 17:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_184 (insn, operands);

            case 18:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_189 (insn, operands);

            case 19:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_194 (insn, operands);

            case 20:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_180 (insn, operands);

            case 21:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_185 (insn, operands);

            case 22:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_190 (insn, operands);

            case 23:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_195 (insn, operands);

            case 24:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_181 (insn, operands);

            case 25:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_186 (insn, operands);

            case 26:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_191 (insn, operands);

            case 27:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_196 (insn, operands);

            case 28:
              if (!(
#line 320 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 322 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_197 (insn, operands);

            case 29:
              if (!(
#line 320 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 322 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_198 (insn, operands);

            case 30:
              if (!(
#line 320 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 322 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_199 (insn, operands);

            case 31:
              if (!(
#line 320 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 322 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_200 (insn, operands);

            default:
              return NULL;
            }

        case MEM:
          operands[1] = x3;
          if (pattern354 (x1, 18, 2) != 0)
            return NULL;
          x12 = XEXP (x2, 0);
          operands[0] = x12;
          x4 = XVECEXP (x1, 0, 1);
          x19 = XEXP (x4, 1);
          x20 = XVECEXP (x19, 0, 0);
          operands[2] = x20;
          x21 = XVECEXP (x19, 0, 1);
          operands[3] = x21;
          if (!const_int_operand (operands[3], E_SImode))
            return NULL;
          x13 = XEXP (x6, 0);
          operands[4] = x13;
          if (!scratch_operand (operands[4], E_SImode))
            return NULL;
          x17 = XEXP (x4, 0);
          if (!rtx_equal_p (x17, operands[1]))
            return NULL;
          switch (GET_MODE (operands[0]))
            {
            case E_QImode:
              if (pattern602 (x19, E_QImode) != 0
                  || !(
#line 255 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 257 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_173 (insn, operands);

            case E_HImode:
              if (pattern602 (x19, E_HImode) != 0
                  || !(
#line 255 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 257 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_174 (insn, operands);

            case E_SImode:
              if (pattern602 (x19, E_SImode) != 0
                  || !(
#line 255 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 257 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_175 (insn, operands);

            case E_DImode:
              if (pattern602 (x19, E_DImode) != 0
                  || !(
#line 255 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 257 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_176 (insn, operands);

            default:
              return NULL;
            }

        case PLUS:
          switch (pattern323 (x1))
            {
            case 0:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_225 (insn, operands);

            case 1:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_230 (insn, operands);

            case 2:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_235 (insn, operands);

            case 3:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_240 (insn, operands);

            default:
              return NULL;
            }

        case MINUS:
          switch (pattern323 (x1))
            {
            case 0:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_226 (insn, operands);

            case 1:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_231 (insn, operands);

            case 2:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_236 (insn, operands);

            case 3:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_241 (insn, operands);

            default:
              return NULL;
            }

        case IOR:
          switch (pattern323 (x1))
            {
            case 0:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_227 (insn, operands);

            case 1:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_232 (insn, operands);

            case 2:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_237 (insn, operands);

            case 3:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_242 (insn, operands);

            default:
              return NULL;
            }

        case XOR:
          switch (pattern323 (x1))
            {
            case 0:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_228 (insn, operands);

            case 1:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_233 (insn, operands);

            case 2:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_238 (insn, operands);

            case 3:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_243 (insn, operands);

            default:
              return NULL;
            }

        case AND:
          switch (pattern323 (x1))
            {
            case 0:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_229 (insn, operands);

            case 1:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_234 (insn, operands);

            case 2:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_239 (insn, operands);

            case 3:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_244 (insn, operands);

            default:
              return NULL;
            }

        case NOT:
          x7 = XEXP (x3, 0);
          if (GET_CODE (x7) != AND
              || pattern354 (x1, 19, 3) != 0)
            return NULL;
          switch (pattern561 (x1))
            {
            case 0:
              if (!(
#line 437 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 439 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_245 (insn, operands);

            case 1:
              if (!(
#line 437 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 439 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_246 (insn, operands);

            case 2:
              if (!(
#line 437 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 439 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_247 (insn, operands);

            case 3:
              if (!(
#line 437 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 439 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_248 (insn, operands);

            default:
              return NULL;
            }

        default:
          return NULL;
        }

    case 5:
      x2 = XVECEXP (x1, 0, 0);
      if (GET_CODE (x2) != SET
          || pattern13 (x1) != 0)
        return NULL;
      x3 = XEXP (x2, 1);
      operands[1] = x3;
      switch (pattern591 (x1))
        {
        case 0:
          x4 = XVECEXP (x1, 0, 1);
          x19 = XEXP (x4, 1);
          switch (pattern633 (x19))
            {
            case 0:
              if (!(
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_201 (insn, operands);

            case 1:
              if (!(
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_206 (insn, operands);

            case 2:
              if (!(
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_211 (insn, operands);

            case 3:
              if (!(
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_216 (insn, operands);

            default:
              return NULL;
            }

        case 1:
          x4 = XVECEXP (x1, 0, 1);
          x19 = XEXP (x4, 1);
          switch (pattern633 (x19))
            {
            case 0:
              if (!(
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_202 (insn, operands);

            case 1:
              if (!(
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_207 (insn, operands);

            case 2:
              if (!(
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_212 (insn, operands);

            case 3:
              if (!(
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_217 (insn, operands);

            default:
              return NULL;
            }

        case 2:
          x4 = XVECEXP (x1, 0, 1);
          x19 = XEXP (x4, 1);
          switch (pattern633 (x19))
            {
            case 0:
              if (!(
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_203 (insn, operands);

            case 1:
              if (!(
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_208 (insn, operands);

            case 2:
              if (!(
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_213 (insn, operands);

            case 3:
              if (!(
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_218 (insn, operands);

            default:
              return NULL;
            }

        case 3:
          x4 = XVECEXP (x1, 0, 1);
          x19 = XEXP (x4, 1);
          switch (pattern633 (x19))
            {
            case 0:
              if (!(
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_204 (insn, operands);

            case 1:
              if (!(
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_209 (insn, operands);

            case 2:
              if (!(
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_214 (insn, operands);

            case 3:
              if (!(
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_219 (insn, operands);

            default:
              return NULL;
            }

        case 4:
          x4 = XVECEXP (x1, 0, 1);
          x19 = XEXP (x4, 1);
          switch (pattern633 (x19))
            {
            case 0:
              if (!(
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_205 (insn, operands);

            case 1:
              if (!(
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_210 (insn, operands);

            case 2:
              if (!(
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_215 (insn, operands);

            case 3:
              if (!(
#line 360 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_220 (insn, operands);

            default:
              return NULL;
            }

        case 5:
          x4 = XVECEXP (x1, 0, 1);
          x19 = XEXP (x4, 1);
          x20 = XVECEXP (x19, 0, 0);
          x22 = XEXP (x20, 0);
          if (GET_CODE (x22) != AND)
            return NULL;
          x23 = XEXP (x22, 1);
          operands[2] = x23;
          x24 = XEXP (x22, 0);
          if (!rtx_equal_p (x24, operands[1]))
            return NULL;
          switch (GET_MODE (operands[0]))
            {
            case E_QImode:
              if (pattern642 (x19, E_QImode) != 0
                  || !(
#line 386 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 388 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_221 (insn, operands);

            case E_HImode:
              if (pattern642 (x19, E_HImode) != 0
                  || !(
#line 386 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 388 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_222 (insn, operands);

            case E_SImode:
              if (pattern642 (x19, E_SImode) != 0
                  || !(
#line 386 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 388 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_223 (insn, operands);

            case E_DImode:
              if (pattern643 (x19) != 0
                  || !(
#line 386 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 388 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_224 (insn, operands);

            default:
              return NULL;
            }

        default:
          return NULL;
        }

    default:
      return NULL;
    }
}

rtx_insn *
split_insns (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20;
  rtx_insn *res ATTRIBUTE_UNUSED;
  recog_data.insn = NULL;
  switch (GET_CODE (x1))
    {
    case SET:
      return split_11 (x1, insn);

    case PARALLEL:
      return split_12 (x1, insn);

    case COND_EXEC:
      x2 = XEXP (x1, 0);
      if (!arm_comparison_operator (x2, E_VOIDmode))
        return NULL;
      x3 = XEXP (x2, 1);
      if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return NULL;
      x4 = XEXP (x2, 0);
      if (!cc_register (x4, E_VOIDmode))
        return NULL;
      x5 = XEXP (x1, 1);
      switch (GET_CODE (x5))
        {
        case SET:
          x6 = XEXP (x5, 1);
          switch (GET_CODE (x6))
            {
            case PLUS:
              if (pattern355 (x1) != 0
                  || !
#line 948 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && CONST_INT_P (operands[2])
   && !const_ok_for_op (INTVAL (operands[2]), PLUS)
   && (reload_completed || !arm_eliminable_register (operands[1]))))
                return NULL;
              return gen_split_249 (insn, operands);

            case MINUS:
              if (GET_MODE (x6) != E_SImode)
                return NULL;
              operands[3] = x2;
              operands[4] = x4;
              x7 = XEXP (x5, 0);
              operands[0] = x7;
              if (!s_register_operand (operands[0], E_SImode))
                return NULL;
              x8 = XEXP (x6, 0);
              operands[1] = x8;
              if (!reg_or_int_operand (operands[1], E_SImode))
                return NULL;
              x9 = XEXP (x6, 1);
              operands[2] = x9;
              if (!reg_or_int_operand (operands[2], E_SImode)
                  || !(
#line 2006 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT) && 
#line 2017 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
( (CONST_INT_P (operands[1])
       && !const_ok_for_arm (INTVAL (operands[1]))))))
                return NULL;
              return gen_split_250 (insn, operands);

            case AND:
              if (GET_MODE (x6) != E_SImode)
                return NULL;
              x7 = XEXP (x5, 0);
              operands[0] = x7;
              if (!s_register_operand (operands[0], E_SImode))
                return NULL;
              x8 = XEXP (x6, 0);
              switch (GET_CODE (x8))
                {
                case REG:
                case SUBREG:
                  operands[1] = x8;
                  if (!s_register_operand (operands[1], E_SImode))
                    return NULL;
                  operands[3] = x2;
                  operands[4] = x4;
                  x9 = XEXP (x6, 1);
                  operands[2] = x9;
                  if (!reg_or_int_operand (operands[2], E_SImode)
                      || !
#line 3017 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && CONST_INT_P (operands[2])
   && !(const_ok_for_arm (INTVAL (operands[2]))
	|| const_ok_for_arm (~INTVAL (operands[2]))
	|| (arm_arch_thumb2
	    && satisfies_constraint_Dj (operands[2])
	    && (rtx_equal_p (operands[0], operands[1])
		|| !reload_completed)))))
                    return NULL;
                  return gen_split_251 (insn, operands);

                case IOR:
                  if (GET_MODE (x8) != E_SImode)
                    return NULL;
                  x9 = XEXP (x6, 1);
                  if (GET_CODE (x9) != NOT
                      || GET_MODE (x9) != E_SImode)
                    return NULL;
                  operands[4] = x2;
                  operands[5] = x4;
                  x10 = XEXP (x8, 0);
                  operands[1] = x10;
                  if (!s_register_operand (operands[1], E_SImode))
                    return NULL;
                  x11 = XEXP (x8, 1);
                  operands[2] = x11;
                  if (!arm_rhs_operand (operands[2], E_SImode))
                    return NULL;
                  x12 = XEXP (x9, 0);
                  operands[3] = x12;
                  if (!arm_rhs_operand (operands[3], E_SImode)
                      || !(
#line 3896 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT) && 
#line 3898 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
( reload_completed)))
                    return NULL;
                  return gen_split_255 (insn, operands);

                default:
                  return NULL;
                }

            case CONST_INT:
              if (XWINT (x6, 0) != 0L)
                return NULL;
              x7 = XEXP (x5, 0);
              if (GET_CODE (x7) != ZERO_EXTRACT
                  || GET_MODE (x7) != E_SImode)
                return NULL;
              operands[3] = x2;
              operands[4] = x4;
              x13 = XEXP (x7, 0);
              operands[0] = x13;
              if (!s_register_operand (operands[0], E_SImode))
                return NULL;
              x14 = XEXP (x7, 1);
              operands[1] = x14;
              if (!const_int_M_operand (operands[1], E_SImode))
                return NULL;
              x15 = XEXP (x7, 2);
              operands[2] = x15;
              if (!const_int_M_operand (operands[2], E_SImode))
                return NULL;
              return gen_split_252 (insn, operands);

            case IOR:
              if (pattern355 (x1) != 0
                  || !
#line 3730 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && CONST_INT_P (operands[2])
   && !(const_ok_for_arm (INTVAL (operands[2]))
        || (TARGET_THUMB2 && const_ok_for_arm (~INTVAL (operands[2]))))))
                return NULL;
              return gen_split_253 (insn, operands);

            case XOR:
              if (pattern355 (x1) != 0
                  || !
#line 3835 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && CONST_INT_P (operands[2])
   && !const_ok_for_arm (INTVAL (operands[2]))))
                return NULL;
              return gen_split_254 (insn, operands);

            case NEG:
              if (GET_MODE (x6) != E_DFmode)
                return NULL;
              operands[2] = x2;
              operands[3] = x4;
              x7 = XEXP (x5, 0);
              operands[0] = x7;
              if (!s_register_operand (operands[0], E_DFmode))
                return NULL;
              x8 = XEXP (x6, 0);
              operands[1] = x8;
              if (!s_register_operand (operands[1], E_DFmode)
                  || !
#line 906 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE && reload_completed
   && arm_general_register_operand (operands[0], DFmode)))
                return NULL;
              return gen_split_258 (insn, operands);

            default:
              return NULL;
            }

        case PARALLEL:
          if (XVECLEN (x5, 0) != 2)
            return NULL;
          x16 = XVECEXP (x5, 0, 0);
          if (GET_CODE (x16) != SET
              || pattern400 (x1) != 0)
            return NULL;
          x17 = XEXP (x16, 0);
          operands[0] = x17;
          if (!s_register_operand (operands[0], E_SImode))
            return NULL;
          x18 = XEXP (x16, 1);
          if (GET_MODE (x18) != E_SImode)
            return NULL;
          switch (GET_CODE (x18))
            {
            case ABS:
              x19 = XEXP (x18, 0);
              operands[1] = x19;
              if (!s_register_operand (operands[1], E_SImode))
                return NULL;
              if ((
#line 5241 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM) && 
#line 5243 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
( reload_completed)))
                return gen_split_256 (insn, operands);
              if (!(
#line 117 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2) && 
#line 122 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
( reload_completed)))
                return NULL;
              return gen_split_259 (insn, operands);

            case NEG:
              x19 = XEXP (x18, 0);
              if (GET_CODE (x19) != ABS
                  || GET_MODE (x19) != E_SImode)
                return NULL;
              x20 = XEXP (x19, 0);
              operands[1] = x20;
              if (!s_register_operand (operands[1], E_SImode))
                return NULL;
              if ((
#line 5305 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM) && 
#line 5307 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
( reload_completed)))
                return gen_split_257 (insn, operands);
              if (!(
#line 170 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2) && 
#line 175 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
( reload_completed)))
                return NULL;
              return gen_split_260 (insn, operands);

            default:
              return NULL;
            }

        default:
          return NULL;
        }

    default:
      return NULL;
    }
}

static rtx_insn *
peephole2_1 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pmatch_len_ ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  rtx_insn *res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  operands[1] = x3;
  if (!const_int_operand (operands[1], E_VOIDmode))
    return NULL;
  x4 = XEXP (x2, 0);
  if (!rtx_equal_p (x4, operands[0]))
    return NULL;
  x5 = PATTERN (peep2_next_insn (1));
  x6 = XEXP (x5, 1);
  if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return NULL;
  x7 = PATTERN (peep2_next_insn (2));
  if (GET_CODE (x7) != SET)
    return NULL;
  x8 = XEXP (x7, 1);
  if (GET_CODE (x8) != SIGN_EXTEND
      || GET_MODE (x8) != E_SImode)
    return NULL;
  x9 = XEXP (x7, 0);
  operands[3] = x9;
  if (!register_operand (operands[3], E_SImode))
    return NULL;
  x10 = XEXP (x8, 0);
  operands[4] = x10;
  if (!memory_operand (operands[4], E_QImode)
      || !
#line 565 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1
   && GET_CODE (XEXP (operands[4], 0)) == PLUS
   && rtx_equal_p (operands[0], XEXP (XEXP (operands[4], 0), 0))
   && rtx_equal_p (operands[2], XEXP (XEXP (operands[4], 0), 1))
   && (peep2_reg_dead_p (3, operands[0])
       || rtx_equal_p (operands[0], operands[3]))
   && (peep2_reg_dead_p (3, operands[2])
       || rtx_equal_p (operands[2], operands[3]))))
    return NULL;
  *pmatch_len_ = 2;
  return gen_peephole2_36 (insn, operands);
}

static rtx_insn *
peephole2_2 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pmatch_len_ ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  rtx_insn *res ATTRIBUTE_UNUSED;
  if (peep2_current_count < 3)
    return NULL;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  operands[1] = x3;
  if (!register_operand (operands[1], E_SImode))
    return NULL;
  x4 = XEXP (x2, 1);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
      || pattern27 (x1, E_CCmode) != 0)
    return NULL;
  x5 = PATTERN (peep2_next_insn (1));
  if (pattern528 (x5) != 0)
    return NULL;
  if (
#line 9973 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_arch5t && TARGET_32BIT && peep2_regno_dead_p (3, CC_REGNUM)))
    {
      *pmatch_len_ = 2;
      res = gen_peephole2_8 (insn, operands);
      if (res != NULL_RTX)
        return res;
    }
  if (!
#line 9990 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && peep2_regno_dead_p (3, CC_REGNUM)))
    return NULL;
  *pmatch_len_ = 2;
  return gen_peephole2_9 (insn, operands);
}

static rtx_insn *
peephole2_3 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pmatch_len_ ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  rtx_insn *res ATTRIBUTE_UNUSED;
  if (peep2_current_count < 3)
    return NULL;
  x2 = XEXP (x1, 0);
  if (REGNO (x2) != 100
      || GET_MODE (x2) != E_CCmode)
    return NULL;
  x3 = XEXP (x1, 1);
  if (GET_MODE (x3) != E_CCmode
      || !register_operand (operands[1], E_SImode))
    return NULL;
  x4 = XEXP (x3, 1);
  operands[2] = x4;
  if (!arm_rhs_operand (operands[2], E_SImode))
    return NULL;
  x5 = PATTERN (peep2_next_insn (1));
  if (pattern528 (x5) != 0)
    return NULL;
  if (
#line 10012 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(arm_arch5t && TARGET_32BIT && peep2_regno_dead_p (3, CC_REGNUM)
  && !(TARGET_THUMB2 && optimize_insn_for_size_p ())))
    {
      *pmatch_len_ = 2;
      res = gen_peephole2_10 (insn, operands);
      if (res != NULL_RTX)
        return res;
    }
  if (!
#line 10033 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && peep2_regno_dead_p (3, CC_REGNUM)))
    return NULL;
  *pmatch_len_ = 2;
  return gen_peephole2_11 (insn, operands);
}

static rtx_insn *
peephole2_4 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pmatch_len_ ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7;
  rtx_insn *res ATTRIBUTE_UNUSED;
  x2 = PATTERN (peep2_next_insn (1));
  if (GET_CODE (x2) != SET)
    return NULL;
  x3 = XEXP (x1, 1);
  operands[1] = x3;
  if (arm_general_register_operand (operands[1], E_SImode))
    {
      x4 = XEXP (x2, 1);
      if (GET_CODE (x4) == COMPARE
          && GET_MODE (x4) == E_CCmode)
        {
          x5 = XEXP (x4, 1);
          if (x5 == const_int_rtx[MAX_SAVED_CONST_INT + 0])
            {
              x6 = XEXP (x2, 0);
              if (GET_CODE (x6) == REG
                  && REGNO (x6) == 100
                  && GET_MODE (x6) == E_CCmode)
                {
                  x7 = XEXP (x4, 0);
                  if (rtx_equal_p (x7, operands[1])
                      && 
#line 11560 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                    {
                      *pmatch_len_ = 1;
                      res = gen_peephole2_12 (insn, operands);
                      if (res != NULL_RTX)
                        return res;
                    }
                }
            }
        }
    }
  operands[2] = x3;
  if (!memory_operand (operands[2], E_SImode))
    return NULL;
  x6 = XEXP (x2, 0);
  operands[1] = x6;
  if (!arm_general_register_operand (operands[1], E_SImode))
    return NULL;
  x4 = XEXP (x2, 1);
  operands[3] = x4;
  if (!memory_operand (operands[3], E_SImode)
      || !
#line 36 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldrdstrd.md"
(TARGET_LDRD))
    return NULL;
  *pmatch_len_ = 1;
  return gen_peephole2_13 (insn, operands);
}

static rtx_insn *
peephole2_5 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pmatch_len_ ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12;
  rtx_insn *res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  operands[4] = x2;
  x3 = PATTERN (peep2_next_insn (1));
  x4 = XVECEXP (x3, 0, 0);
  if (GET_CODE (x4) != SET)
    return NULL;
  x5 = XVECEXP (x3, 0, 1);
  if (GET_CODE (x5) != SET)
    return NULL;
  x6 = XVECEXP (x3, 0, 2);
  if (GET_CODE (x6) != SET)
    return NULL;
  x7 = XEXP (x4, 0);
  operands[1] = x7;
  if (!s_register_operand (operands[1], E_SImode))
    return NULL;
  x8 = XEXP (x4, 1);
  operands[5] = x8;
  if (!memory_operand (operands[5], E_SImode))
    return NULL;
  x9 = XEXP (x5, 0);
  operands[2] = x9;
  if (!s_register_operand (operands[2], E_SImode))
    return NULL;
  x10 = XEXP (x5, 1);
  operands[6] = x10;
  if (!memory_operand (operands[6], E_SImode))
    return NULL;
  x11 = XEXP (x6, 0);
  operands[3] = x11;
  if (!s_register_operand (operands[3], E_SImode))
    return NULL;
  x12 = XEXP (x6, 1);
  operands[7] = x12;
  if (!memory_operand (operands[7], E_SImode))
    return NULL;
  *pmatch_len_ = 1;
  return gen_peephole2_20 (insn, operands);
}

static rtx_insn *
peephole2_6 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pmatch_len_ ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx_insn *res ATTRIBUTE_UNUSED;
  if (arm_general_register_operand (operands[0], E_SImode))
    {
      res = peephole2_4 (x1, insn, pmatch_len_);
      if (res != NULL_RTX)
        return res;
    }
  if (!s_register_operand (operands[0], E_SImode))
    return NULL;
  x2 = XEXP (x1, 1);
  if (!memory_operand (x2, E_SImode))
    return NULL;
  x3 = PATTERN (peep2_next_insn (1));
  if (GET_CODE (x3) != PARALLEL)
    return NULL;
  if (XVECLEN (x3, 0) == 3)
    {
      res = peephole2_5 (x1, insn, pmatch_len_);
      if (res != NULL_RTX)
        return res;
    }
  if (XVECLEN (x3, 0) != 2)
    return NULL;
  operands[3] = x2;
  x4 = XVECEXP (x3, 0, 0);
  if (GET_CODE (x4) != SET)
    return NULL;
  x5 = XVECEXP (x3, 0, 1);
  if (GET_CODE (x5) != SET)
    return NULL;
  x6 = XEXP (x4, 0);
  operands[1] = x6;
  if (!s_register_operand (operands[1], E_SImode))
    return NULL;
  x7 = XEXP (x4, 1);
  operands[4] = x7;
  if (!memory_operand (operands[4], E_SImode))
    return NULL;
  x8 = XEXP (x5, 0);
  operands[2] = x8;
  if (!s_register_operand (operands[2], E_SImode))
    return NULL;
  x9 = XEXP (x5, 1);
  operands[5] = x9;
  if (!memory_operand (operands[5], E_SImode))
    return NULL;
  *pmatch_len_ = 1;
  return gen_peephole2_25 (insn, operands);
}

static rtx_insn *
peephole2_7 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pmatch_len_ ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13;
  rtx_insn *res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  operands[2] = x2;
  x3 = PATTERN (peep2_next_insn (1));
  x4 = XEXP (x3, 1);
  operands[3] = x4;
  if (!memory_operand (operands[3], E_SImode))
    return NULL;
  x5 = PATTERN (peep2_next_insn (2));
  switch (GET_CODE (x5))
    {
    case SET:
      x6 = XEXP (x5, 1);
      if (!commutative_binary_operator (x6, E_SImode))
        return NULL;
      operands[5] = x6;
      x7 = XEXP (x5, 0);
      operands[4] = x7;
      if (!arm_general_register_operand (operands[4], E_SImode))
        return NULL;
      x8 = XEXP (x6, 0);
      operands[6] = x8;
      if (!arm_general_register_operand (operands[6], E_VOIDmode))
        return NULL;
      x9 = XEXP (x6, 1);
      operands[7] = x9;
      if (!arm_general_register_operand (operands[7], E_VOIDmode)
          || !
#line 109 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldrdstrd.md"
(TARGET_LDRD && TARGET_ARM
   && (  ((rtx_equal_p(operands[0], operands[6])) && (rtx_equal_p(operands[1], operands[7])))
	||((rtx_equal_p(operands[0], operands[7])) && (rtx_equal_p(operands[1], operands[6]))))
   && (peep2_reg_dead_p (3, operands[0]) || rtx_equal_p (operands[0], operands[4]))
   && (peep2_reg_dead_p (3, operands[1]) || rtx_equal_p (operands[1], operands[4]))))
        return NULL;
      *pmatch_len_ = 2;
      return gen_peephole2_17 (insn, operands);

    case PARALLEL:
      if (pattern577 (x5) != 0
          || !arm_general_register_operand (operands[4], E_SImode))
        return NULL;
      x10 = XVECEXP (x5, 0, 0);
      x11 = XEXP (x10, 1);
      x12 = XEXP (x11, 0);
      operands[6] = x12;
      if (!arm_general_register_operand (operands[6], E_VOIDmode))
        return NULL;
      x13 = XEXP (x11, 1);
      operands[7] = x13;
      if (!arm_general_register_operand (operands[7], E_VOIDmode)
          || !
#line 134 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldrdstrd.md"
(TARGET_LDRD && TARGET_ARM
   && (  ((rtx_equal_p(operands[0], operands[6])) && (rtx_equal_p(operands[1], operands[7])))
       ||((rtx_equal_p(operands[0], operands[7])) && (rtx_equal_p(operands[1], operands[6]))))
   && (peep2_reg_dead_p (3, operands[0]) || rtx_equal_p (operands[0], operands[4]))
   && (peep2_reg_dead_p (3, operands[1]) || rtx_equal_p (operands[1], operands[4]))))
        return NULL;
      *pmatch_len_ = 2;
      return gen_peephole2_18 (insn, operands);

    default:
      return NULL;
    }
}

static rtx_insn *
peephole2_8 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pmatch_len_ ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12;
  rtx_insn *res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = PATTERN (peep2_next_insn (1));
  if (GET_CODE (x3) != SET)
    return NULL;
  x4 = XEXP (x3, 0);
  operands[1] = x4;
  if (arm_general_register_operand (operands[1], E_SImode)
      && arm_general_register_operand (operands[0], E_SImode))
    {
      res = peephole2_7 (x1, insn, pmatch_len_);
      if (res != NULL_RTX)
        return res;
    }
  if (peep2_current_count < 4
      || !s_register_operand (operands[1], E_SImode)
      || !s_register_operand (operands[0], E_SImode))
    return NULL;
  x5 = XEXP (x1, 1);
  operands[4] = x5;
  x6 = XEXP (x3, 1);
  operands[5] = x6;
  if (!memory_operand (operands[5], E_SImode))
    return NULL;
  x7 = PATTERN (peep2_next_insn (2));
  if (GET_CODE (x7) != SET)
    return NULL;
  x8 = XEXP (x7, 0);
  operands[2] = x8;
  if (!s_register_operand (operands[2], E_SImode))
    return NULL;
  x9 = XEXP (x7, 1);
  operands[6] = x9;
  if (!memory_operand (operands[6], E_SImode))
    return NULL;
  x10 = PATTERN (peep2_next_insn (3));
  if (GET_CODE (x10) != SET)
    return NULL;
  x11 = XEXP (x10, 0);
  operands[3] = x11;
  if (!s_register_operand (operands[3], E_SImode))
    return NULL;
  x12 = XEXP (x10, 1);
  operands[7] = x12;
  if (!memory_operand (operands[7], E_SImode))
    return NULL;
  *pmatch_len_ = 3;
  return gen_peephole2_19 (insn, operands);
}

static rtx_insn *
peephole2_9 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pmatch_len_ ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12;
  rtx_insn *res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  operands[0] = x2;
  if (!s_register_operand (operands[0], E_SImode))
    return NULL;
  x3 = XEXP (x1, 0);
  operands[4] = x3;
  if (!memory_operand (operands[4], E_SImode))
    return NULL;
  x4 = PATTERN (peep2_next_insn (1));
  if (GET_CODE (x4) != SET)
    return NULL;
  x5 = XEXP (x4, 0);
  operands[5] = x5;
  if (!memory_operand (operands[5], E_SImode))
    return NULL;
  x6 = XEXP (x4, 1);
  operands[1] = x6;
  if (!s_register_operand (operands[1], E_SImode))
    return NULL;
  x7 = PATTERN (peep2_next_insn (2));
  if (GET_CODE (x7) != SET)
    return NULL;
  x8 = XEXP (x7, 0);
  operands[6] = x8;
  if (!memory_operand (operands[6], E_SImode))
    return NULL;
  x9 = XEXP (x7, 1);
  operands[2] = x9;
  if (!s_register_operand (operands[2], E_SImode))
    return NULL;
  x10 = PATTERN (peep2_next_insn (3));
  if (GET_CODE (x10) != SET)
    return NULL;
  x11 = XEXP (x10, 0);
  operands[7] = x11;
  if (!memory_operand (operands[7], E_SImode))
    return NULL;
  x12 = XEXP (x10, 1);
  operands[3] = x12;
  if (!s_register_operand (operands[3], E_SImode))
    return NULL;
  *pmatch_len_ = 3;
  return gen_peephole2_23 (insn, operands);
}

static rtx_insn *
peephole2_10 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pmatch_len_ ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  rtx_insn *res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  if (!s_register_operand (operands[0], E_SImode))
    return NULL;
  x3 = PATTERN (peep2_next_insn (1));
  if (GET_CODE (x3) != SET)
    return NULL;
  x4 = XEXP (x3, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], E_SImode))
    return NULL;
  x5 = XEXP (x3, 1);
  operands[4] = x5;
  if (!memory_operand (operands[4], E_SImode))
    return NULL;
  x6 = PATTERN (peep2_next_insn (2));
  if (GET_CODE (x6) != SET)
    return NULL;
  x7 = XEXP (x6, 0);
  operands[2] = x7;
  if (!s_register_operand (operands[2], E_SImode))
    return NULL;
  x8 = XEXP (x6, 1);
  operands[5] = x8;
  if (!memory_operand (operands[5], E_SImode))
    return NULL;
  *pmatch_len_ = 2;
  return gen_peephole2_24 (insn, operands);
}

static rtx_insn *
peephole2_11 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pmatch_len_ ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx_insn *res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (memory_operand (x2, E_SImode))
    {
      res = peephole2_8 (x1, insn, pmatch_len_);
      if (res != NULL_RTX)
        return res;
    }
  if (peep2_current_count >= 4)
    {
      res = peephole2_9 (x1, insn, pmatch_len_);
      if (res != NULL_RTX)
        return res;
    }
  operands[3] = x2;
  if (memory_operand (operands[3], E_SImode))
    {
      res = peephole2_10 (x1, insn, pmatch_len_);
      if (res != NULL_RTX)
        return res;
    }
  operands[0] = x2;
  if (!s_register_operand (operands[0], E_SImode))
    return NULL;
  x3 = XEXP (x1, 0);
  operands[3] = x3;
  if (!memory_operand (operands[3], E_SImode))
    return NULL;
  x4 = PATTERN (peep2_next_insn (1));
  if (GET_CODE (x4) != SET)
    return NULL;
  x5 = XEXP (x4, 0);
  operands[4] = x5;
  if (!memory_operand (operands[4], E_SImode))
    return NULL;
  x6 = XEXP (x4, 1);
  operands[1] = x6;
  if (!s_register_operand (operands[1], E_SImode))
    return NULL;
  x7 = PATTERN (peep2_next_insn (2));
  if (GET_CODE (x7) != SET)
    return NULL;
  x8 = XEXP (x7, 0);
  operands[5] = x8;
  if (!memory_operand (operands[5], E_SImode))
    return NULL;
  x9 = XEXP (x7, 1);
  operands[2] = x9;
  if (!s_register_operand (operands[2], E_SImode))
    return NULL;
  *pmatch_len_ = 2;
  return gen_peephole2_28 (insn, operands);
}

static rtx_insn *
peephole2_12 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pmatch_len_ ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx_insn *res ATTRIBUTE_UNUSED;
  if (peep2_current_count < 4)
    return NULL;
  x2 = XEXP (x1, 1);
  operands[4] = x2;
  x3 = PATTERN (peep2_next_insn (1));
  switch (pattern479 (x3))
    {
    case 0:
      if (!arm_general_register_operand (operands[1], E_SImode))
        return NULL;
      x4 = PATTERN (peep2_next_insn (2));
      x5 = XEXP (x4, 1);
      operands[5] = x5;
      if (!const_int_operand (operands[5], E_SImode))
        return NULL;
      x6 = PATTERN (peep2_next_insn (3));
      x7 = XEXP (x6, 1);
      if (!rtx_equal_p (x7, operands[1])
          || !
#line 67 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldrdstrd.md"
(TARGET_LDRD))
        return NULL;
      *pmatch_len_ = 3;
      return gen_peephole2_15 (insn, operands);

    case 1:
      x8 = XEXP (x3, 0);
      operands[1] = x8;
      if (!arm_general_register_operand (operands[1], E_SImode))
        return NULL;
      x4 = PATTERN (peep2_next_insn (2));
      x9 = XEXP (x4, 0);
      operands[2] = x9;
      if (!memory_operand (operands[2], E_SImode))
        return NULL;
      x5 = XEXP (x4, 1);
      if (!rtx_equal_p (x5, operands[0]))
        return NULL;
      x6 = PATTERN (peep2_next_insn (3));
      x7 = XEXP (x6, 1);
      if (!rtx_equal_p (x7, operands[1])
          || !
#line 86 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldrdstrd.md"
(TARGET_LDRD))
        return NULL;
      *pmatch_len_ = 3;
      return gen_peephole2_16 (insn, operands);

    default:
      return NULL;
    }
}

static rtx_insn *
peephole2_13 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pmatch_len_ ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23;
  rtx_insn *res ATTRIBUTE_UNUSED;
  if (peep2_current_count < 8)
    return NULL;
  x2 = XEXP (x1, 1);
  operands[8] = x2;
  x3 = PATTERN (peep2_next_insn (2));
  if (pattern529 (x3) != 0)
    return NULL;
  x4 = PATTERN (peep2_next_insn (4));
  if (GET_CODE (x4) != SET)
    return NULL;
  x5 = PATTERN (peep2_next_insn (5));
  if (GET_CODE (x5) != SET)
    return NULL;
  x6 = XEXP (x5, 0);
  if (!memory_operand (x6, E_SImode))
    return NULL;
  x7 = PATTERN (peep2_next_insn (6));
  if (GET_CODE (x7) != SET)
    return NULL;
  x8 = PATTERN (peep2_next_insn (7));
  if (GET_CODE (x8) != SET)
    return NULL;
  x9 = XEXP (x8, 0);
  operands[7] = x9;
  if (!memory_operand (operands[7], E_SImode))
    return NULL;
  x10 = PATTERN (peep2_next_insn (1));
  x11 = XEXP (x10, 1);
  switch (GET_CODE (x11))
    {
    case REG:
    case SUBREG:
      if (!rtx_equal_p (x11, operands[0]))
        return NULL;
      x12 = XEXP (x10, 0);
      operands[4] = x12;
      if (!memory_operand (operands[4], E_SImode))
        return NULL;
      x13 = XEXP (x3, 0);
      operands[1] = x13;
      x14 = XEXP (x3, 1);
      operands[9] = x14;
      x15 = PATTERN (peep2_next_insn (3));
      x16 = XEXP (x15, 0);
      operands[5] = x16;
      if (!memory_operand (operands[5], E_SImode))
        return NULL;
      x17 = XEXP (x15, 1);
      if (!rtx_equal_p (x17, operands[1]))
        return NULL;
      x18 = XEXP (x4, 0);
      operands[2] = x18;
      if (!s_register_operand (operands[2], E_SImode))
        return NULL;
      x19 = XEXP (x4, 1);
      operands[10] = x19;
      if (!const_int_operand (operands[10], E_SImode))
        return NULL;
      operands[6] = x6;
      x20 = XEXP (x5, 1);
      if (!rtx_equal_p (x20, operands[2]))
        return NULL;
      x21 = XEXP (x7, 0);
      operands[3] = x21;
      if (!s_register_operand (operands[3], E_SImode))
        return NULL;
      x22 = XEXP (x7, 1);
      operands[11] = x22;
      if (!const_int_operand (operands[11], E_SImode))
        return NULL;
      x23 = XEXP (x8, 1);
      if (!rtx_equal_p (x23, operands[3]))
        return NULL;
      *pmatch_len_ = 7;
      return gen_peephole2_21 (insn, operands);

    case CONST_INT:
      operands[9] = x11;
      if (!const_int_operand (operands[9], E_SImode))
        return NULL;
      x12 = XEXP (x10, 0);
      operands[1] = x12;
      if (!s_register_operand (operands[1], E_SImode))
        return NULL;
      x13 = XEXP (x3, 0);
      operands[2] = x13;
      x14 = XEXP (x3, 1);
      operands[10] = x14;
      x15 = PATTERN (peep2_next_insn (3));
      x16 = XEXP (x15, 0);
      operands[3] = x16;
      if (!s_register_operand (operands[3], E_SImode))
        return NULL;
      x17 = XEXP (x15, 1);
      operands[11] = x17;
      if (!const_int_operand (operands[11], E_SImode))
        return NULL;
      x18 = XEXP (x4, 0);
      operands[4] = x18;
      if (!memory_operand (operands[4], E_SImode))
        return NULL;
      x19 = XEXP (x4, 1);
      if (!rtx_equal_p (x19, operands[0]))
        return NULL;
      operands[5] = x6;
      x20 = XEXP (x5, 1);
      if (!rtx_equal_p (x20, operands[1]))
        return NULL;
      x21 = XEXP (x7, 0);
      operands[6] = x21;
      if (!memory_operand (operands[6], E_SImode))
        return NULL;
      x22 = XEXP (x7, 1);
      if (!rtx_equal_p (x22, operands[2]))
        return NULL;
      x23 = XEXP (x8, 1);
      if (!rtx_equal_p (x23, operands[3]))
        return NULL;
      *pmatch_len_ = 7;
      return gen_peephole2_22 (insn, operands);

    default:
      return NULL;
    }
}

static rtx_insn *
peephole2_14 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pmatch_len_ ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx_insn *res ATTRIBUTE_UNUSED;
  if (peep2_current_count < 6)
    return NULL;
  if (peep2_current_count >= 7)
    {
      res = peephole2_13 (x1, insn, pmatch_len_);
      if (res != NULL_RTX)
        return res;
    }
  x2 = XEXP (x1, 1);
  operands[6] = x2;
  x3 = PATTERN (peep2_next_insn (2));
  if (pattern529 (x3) != 0)
    return NULL;
  x4 = PATTERN (peep2_next_insn (3));
  x5 = XEXP (x4, 0);
  if (!memory_operand (x5, E_SImode))
    return NULL;
  x6 = PATTERN (peep2_next_insn (4));
  if (GET_CODE (x6) != SET)
    return NULL;
  x7 = PATTERN (peep2_next_insn (5));
  if (GET_CODE (x7) != SET)
    return NULL;
  x8 = XEXP (x7, 0);
  operands[5] = x8;
  if (!memory_operand (operands[5], E_SImode))
    return NULL;
  x9 = PATTERN (peep2_next_insn (1));
  x10 = XEXP (x9, 1);
  switch (GET_CODE (x10))
    {
    case REG:
    case SUBREG:
      if (!rtx_equal_p (x10, operands[0]))
        return NULL;
      x11 = XEXP (x9, 0);
      operands[3] = x11;
      if (!memory_operand (operands[3], E_SImode))
        return NULL;
      x12 = XEXP (x3, 0);
      operands[1] = x12;
      x13 = XEXP (x3, 1);
      operands[7] = x13;
      operands[4] = x5;
      x14 = XEXP (x4, 1);
      if (!rtx_equal_p (x14, operands[1]))
        return NULL;
      x15 = XEXP (x6, 0);
      operands[2] = x15;
      if (!s_register_operand (operands[2], E_SImode))
        return NULL;
      x16 = XEXP (x6, 1);
      operands[8] = x16;
      if (!const_int_operand (operands[8], E_SImode))
        return NULL;
      x17 = XEXP (x7, 1);
      if (!rtx_equal_p (x17, operands[2]))
        return NULL;
      *pmatch_len_ = 5;
      return gen_peephole2_26 (insn, operands);

    case CONST_INT:
      operands[7] = x10;
      if (!const_int_operand (operands[7], E_SImode))
        return NULL;
      x11 = XEXP (x9, 0);
      operands[1] = x11;
      if (!s_register_operand (operands[1], E_SImode))
        return NULL;
      x12 = XEXP (x3, 0);
      operands[2] = x12;
      x13 = XEXP (x3, 1);
      operands[8] = x13;
      operands[3] = x5;
      x14 = XEXP (x4, 1);
      if (!rtx_equal_p (x14, operands[0]))
        return NULL;
      x15 = XEXP (x6, 0);
      operands[4] = x15;
      if (!memory_operand (operands[4], E_SImode))
        return NULL;
      x16 = XEXP (x6, 1);
      if (!rtx_equal_p (x16, operands[1]))
        return NULL;
      x17 = XEXP (x7, 1);
      if (!rtx_equal_p (x17, operands[2]))
        return NULL;
      *pmatch_len_ = 5;
      return gen_peephole2_27 (insn, operands);

    default:
      return NULL;
    }
}

rtx_insn *
peephole2_insns (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pmatch_len_ ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24, x25;
  rtx x26, x27, x28, x29, x30, x31, x32, x33;
  rtx x34, x35, x36, x37;
  rtx_insn *res ATTRIBUTE_UNUSED;
  recog_data.insn = NULL;
  if (GET_CODE (x1) != SET)
    return NULL;
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    case PLUS:
      if (GET_MODE (x2) != E_SImode)
        return NULL;
      x3 = XEXP (x2, 1);
      if (GET_CODE (x3) != CONST_INT)
        return NULL;
      x4 = XEXP (x1, 0);
      operands[0] = x4;
      if (arm_general_register_operand (operands[0], E_SImode))
        {
          x5 = XEXP (x2, 0);
          operands[1] = x5;
          if (arm_general_register_operand (operands[1], E_SImode))
            {
              operands[2] = x3;
              if (const_int_operand (operands[2], E_SImode)
                  && 
#line 914 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT &&
   !(const_ok_for_arm (INTVAL (operands[2]))
     || const_ok_for_arm (-INTVAL (operands[2])))
    && const_ok_for_arm (~INTVAL (operands[2]))))
                {
                  *pmatch_len_ = 0;
                  res = gen_peephole2_1 (insn, operands);
                  if (res != NULL_RTX)
                    return res;
                }
            }
        }
      if (peep2_current_count < 2
          || peep2_current_count < 3)
        return NULL;
      x6 = PATTERN (peep2_next_insn (1));
      if (GET_CODE (x6) != SET)
        return NULL;
      x7 = XEXP (x6, 0);
      operands[2] = x7;
      if (register_operand (operands[2], E_SImode)
          && register_operand (operands[0], E_SImode))
        {
          res = peephole2_1 (x1, insn, pmatch_len_);
          if (res != NULL_RTX)
            return res;
        }
      if (!cc_register (operands[2], E_VOIDmode)
          || XWINT (x3, 0) != -1L
          || !arm_general_register_operand (operands[0], E_SImode))
        return NULL;
      x5 = XEXP (x2, 0);
      operands[1] = x5;
      if (!arm_general_register_operand (operands[1], E_SImode))
        return NULL;
      x8 = XEXP (x6, 1);
      if (GET_CODE (x8) != COMPARE)
        return NULL;
      x9 = XEXP (x8, 1);
      if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + -1])
        return NULL;
      x10 = XEXP (x8, 0);
      if (!rtx_equal_p (x10, operands[0]))
        return NULL;
      x11 = PATTERN (peep2_next_insn (2));
      if (GET_CODE (x11) != SET)
        return NULL;
      x12 = XEXP (x11, 1);
      if (GET_CODE (x12) != IF_THEN_ELSE)
        return NULL;
      x13 = XEXP (x12, 0);
      if (!equality_operator (x13, E_VOIDmode))
        return NULL;
      operands[3] = x13;
      x14 = XEXP (x13, 1);
      if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return NULL;
      x15 = XEXP (x11, 0);
      if (GET_CODE (x15) != PC)
        return NULL;
      x16 = XEXP (x12, 1);
      operands[4] = x16;
      x17 = XEXP (x12, 2);
      operands[5] = x17;
      x18 = XEXP (x13, 0);
      if (!rtx_equal_p (x18, operands[2])
          || !
#line 1202 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT && peep2_reg_dead_p (3, operands[2])))
        return NULL;
      *pmatch_len_ = 2;
      return gen_peephole2_4 (insn, operands);

    case COMPARE:
      x5 = XEXP (x2, 0);
      switch (GET_CODE (x5))
        {
        case PLUS:
          if (GET_MODE (x5) != E_DImode)
            return NULL;
          x19 = XEXP (x5, 0);
          if (GET_CODE (x19) != SIGN_EXTEND
              || GET_MODE (x19) != E_DImode)
            return NULL;
          x3 = XEXP (x2, 1);
          if (pattern356 (x3, E_SImode, PLUS, E_DImode, SIGN_EXTEND) != 0
              || pattern27 (x1, E_CC_Vmode) != 0)
            return NULL;
          x20 = XEXP (x19, 0);
          operands[0] = x20;
          if (!low_register_operand (operands[0], E_SImode))
            return NULL;
          x21 = XEXP (x5, 1);
          operands[1] = x21;
          if (!const_int_operand (operands[1], E_VOIDmode))
            return NULL;
          x22 = XEXP (x3, 0);
          x23 = XEXP (x22, 0);
          if (!rtx_equal_p (x23, operands[0]))
            return NULL;
          x24 = XEXP (x22, 1);
          if (!rtx_equal_p (x24, operands[1]))
            return NULL;
          if (
#line 1074 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_THUMB2
   && satisfies_constraint_Pd (operands[1])))
            {
              *pmatch_len_ = 0;
              res = gen_peephole2_2 (insn, operands);
              if (res != NULL_RTX)
                return res;
            }
          if (!
#line 1093 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_THUMB2
   && dead_or_set_p (peep2_next_insn (0), operands[0])
   && satisfies_constraint_Py (operands[1])))
            return NULL;
          *pmatch_len_ = 0;
          return gen_peephole2_3 (insn, operands);

        case REG:
        case SUBREG:
          if (peep2_current_count >= 2)
            {
              res = peephole2_2 (x1, insn, pmatch_len_);
              if (res != NULL_RTX)
                return res;
            }
          operands[1] = x5;
          x4 = XEXP (x1, 0);
          if (GET_CODE (x4) != REG)
            return NULL;
          if (peep2_current_count >= 2)
            {
              res = peephole2_3 (x1, insn, pmatch_len_);
              if (res != NULL_RTX)
                return res;
            }
          operands[0] = x4;
          if (!cc_register (operands[0], E_CCmode)
              || GET_MODE (x2) != E_CCmode
              || !low_register_operand (operands[1], E_SImode))
            return NULL;
          x3 = XEXP (x2, 1);
          operands[2] = x3;
          if (!const_int_operand (operands[2], E_SImode))
            return NULL;
          if (
#line 1341 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2
   && peep2_reg_dead_p (1, operands[1])
   && satisfies_constraint_Pw (operands[2])))
            {
              *pmatch_len_ = 0;
              res = gen_peephole2_37 (insn, operands);
              if (res != NULL_RTX)
                return res;
            }
          if (!
#line 1355 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2
   && satisfies_constraint_Px (operands[2])))
            return NULL;
          *pmatch_len_ = 0;
          return gen_peephole2_38 (insn, operands);

        case ZERO_EXTRACT:
          if (peep2_current_count < 2
              || GET_MODE (x5) != E_SImode)
            return NULL;
          x21 = XEXP (x5, 1);
          if (GET_CODE (x21) != CONST_INT)
            return NULL;
          x3 = XEXP (x2, 1);
          if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return NULL;
          x4 = XEXP (x1, 0);
          operands[0] = x4;
          if (!cc_register (operands[0], E_CC_NZmode)
              || GET_MODE (x2) != E_CC_NZmode)
            return NULL;
          x19 = XEXP (x5, 0);
          operands[1] = x19;
          if (!low_register_operand (operands[1], E_SImode))
            return NULL;
          x6 = PATTERN (peep2_next_insn (1));
          if (GET_CODE (x6) != SET)
            return NULL;
          x8 = XEXP (x6, 1);
          if (GET_CODE (x8) != IF_THEN_ELSE)
            return NULL;
          x10 = XEXP (x8, 0);
          if (!equality_operator (x10, E_CC_NZmode))
            return NULL;
          operands[4] = x10;
          x25 = XEXP (x10, 1);
          if (x25 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return NULL;
          x7 = XEXP (x6, 0);
          if (GET_CODE (x7) != PC)
            return NULL;
          x9 = XEXP (x8, 1);
          operands[5] = x9;
          x26 = XEXP (x8, 2);
          operands[6] = x26;
          x27 = XEXP (x10, 0);
          if (!rtx_equal_p (x27, operands[0]))
            return NULL;
          if (XWINT (x21, 0) == 1L)
            {
              x28 = XEXP (x5, 2);
              operands[2] = x28;
              if (const_int_operand (operands[2], E_SImode)
                  && 
#line 1566 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2
   && (INTVAL (operands[2]) >= 0 && INTVAL (operands[2]) < 32)
   && peep2_reg_dead_p (2, operands[0])))
                {
                  *pmatch_len_ = 1;
                  res = gen_peephole2_39 (insn, operands);
                  if (res != NULL_RTX)
                    return res;
                }
            }
          x28 = XEXP (x5, 2);
          if (x28 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return NULL;
          operands[2] = x21;
          if (!const_int_operand (operands[2], E_SImode)
              || !
#line 1595 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2
   && (INTVAL (operands[2]) > 0 && INTVAL (operands[2]) < 32)
   && peep2_reg_dead_p (2, operands[0])))
            return NULL;
          *pmatch_len_ = 1;
          return gen_peephole2_40 (insn, operands);

        default:
          return NULL;
        }

    case MINUS:
      if (GET_MODE (x2) != E_SImode)
        return NULL;
      x4 = XEXP (x1, 0);
      operands[0] = x4;
      if (!arm_general_register_operand (operands[0], E_SImode))
        return NULL;
      x5 = XEXP (x2, 0);
      operands[1] = x5;
      if (!const_int_operand (operands[1], E_SImode))
        return NULL;
      x3 = XEXP (x2, 1);
      operands[2] = x3;
      if (!arm_general_register_operand (operands[2], E_SImode)
          || !
#line 2037 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && !const_ok_for_arm (INTVAL (operands[1]))
   && const_ok_for_arm (~INTVAL (operands[1]))))
        return NULL;
      *pmatch_len_ = 0;
      return gen_peephole2_5 (insn, operands);

    case IOR:
      if (GET_MODE (x2) != E_SImode)
        return NULL;
      x4 = XEXP (x1, 0);
      operands[0] = x4;
      if (!arm_general_register_operand (operands[0], E_SImode))
        return NULL;
      x5 = XEXP (x2, 0);
      operands[1] = x5;
      if (!arm_general_register_operand (operands[1], E_SImode))
        return NULL;
      x3 = XEXP (x2, 1);
      operands[2] = x3;
      if (!const_int_operand (operands[2], E_SImode)
          || !
#line 3752 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM
   && !const_ok_for_arm (INTVAL (operands[2]))
   && const_ok_for_arm (~INTVAL (operands[2]))))
        return NULL;
      *pmatch_len_ = 0;
      return gen_peephole2_6 (insn, operands);

    case UNSPEC:
      if (peep2_current_count < 2
          || XVECLEN (x2, 0) != 3
          || XINT (x2, 1) != 2
          || GET_MODE (x2) != E_SImode)
        return NULL;
      x29 = XVECEXP (x2, 0, 1);
      if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
        return NULL;
      x4 = XEXP (x1, 0);
      operands[0] = x4;
      if (!register_operand (operands[0], E_SImode))
        return NULL;
      x30 = XVECEXP (x2, 0, 0);
      operands[3] = x30;
      if (!register_operand (operands[3], E_SImode))
        return NULL;
      x31 = XVECEXP (x2, 0, 2);
      operands[1] = x31;
      x6 = PATTERN (peep2_next_insn (1));
      if (GET_CODE (x6) != SET)
        return NULL;
      x8 = XEXP (x6, 1);
      if (GET_CODE (x8) != MEM
          || GET_MODE (x8) != E_SImode)
        return NULL;
      x7 = XEXP (x6, 0);
      operands[2] = x7;
      if (!arm_general_register_operand (operands[2], E_SImode))
        return NULL;
      x10 = XEXP (x8, 0);
      if (!rtx_equal_p (x10, operands[0])
          || !
#line 6779 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/arm.md"
(TARGET_ARM && peep2_reg_dead_p (2, operands[0])))
        return NULL;
      *pmatch_len_ = 1;
      return gen_peephole2_7 (insn, operands);

    case REG:
    case SUBREG:
    case MEM:
      if (peep2_current_count < 2)
        return NULL;
      x4 = XEXP (x1, 0);
      operands[0] = x4;
      res = peephole2_6 (x1, insn, pmatch_len_);
      if (res != NULL_RTX)
        return res;
      operands[0] = x2;
      if (arm_general_register_operand (operands[0], E_SImode))
        {
          operands[2] = x4;
          if (memory_operand (operands[2], E_SImode))
            {
              x6 = PATTERN (peep2_next_insn (1));
              if (GET_CODE (x6) == SET)
                {
                  x7 = XEXP (x6, 0);
                  operands[3] = x7;
                  if (memory_operand (operands[3], E_SImode))
                    {
                      x8 = XEXP (x6, 1);
                      operands[1] = x8;
                      if (arm_general_register_operand (operands[1], E_SImode)
                          && 
#line 49 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldrdstrd.md"
(TARGET_LDRD))
                        {
                          *pmatch_len_ = 1;
                          res = gen_peephole2_14 (insn, operands);
                          if (res != NULL_RTX)
                            return res;
                        }
                    }
                }
            }
        }
      if (peep2_current_count >= 3)
        {
          res = peephole2_11 (x1, insn, pmatch_len_);
          if (res != NULL_RTX)
            return res;
        }
      operands[2] = x2;
      if (pattern292 (x4) == 0)
        {
          *pmatch_len_ = 1;
          res = gen_peephole2_29 (insn, operands);
          if (res != NULL_RTX)
            return res;
        }
      operands[0] = x2;
      if (s_register_operand (operands[0], E_SImode))
        {
          operands[2] = x4;
          if (memory_operand (operands[2], E_SImode))
            {
              x6 = PATTERN (peep2_next_insn (1));
              if (GET_CODE (x6) == SET)
                {
                  x7 = XEXP (x6, 0);
                  operands[3] = x7;
                  if (memory_operand (operands[3], E_SImode))
                    {
                      x8 = XEXP (x6, 1);
                      operands[1] = x8;
                      if (s_register_operand (operands[1], E_SImode))
                        {
                          *pmatch_len_ = 1;
                          res = gen_peephole2_32 (insn, operands);
                          if (res != NULL_RTX)
                            return res;
                        }
                    }
                }
            }
        }
      if (peep2_current_count < 3)
        return NULL;
      operands[2] = x2;
      if (pattern292 (x4) != 0)
        return NULL;
      x11 = PATTERN (peep2_next_insn (2));
      switch (GET_CODE (x11))
        {
        case PARALLEL:
          if (pattern577 (x11) != 0
              || !s_register_operand (operands[4], E_SImode))
            return NULL;
          x32 = XVECEXP (x11, 0, 0);
          x33 = XEXP (x32, 1);
          x34 = XEXP (x33, 0);
          operands[6] = x34;
          if (!s_register_operand (operands[6], E_SImode))
            return NULL;
          x35 = XEXP (x33, 1);
          operands[7] = x35;
          if (!s_register_operand (operands[7], E_SImode)
              || !
#line 1163 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(((((REGNO (operands[6]) == REGNO (operands[0]))
         && (REGNO (operands[7]) == REGNO (operands[1])))
      || ((REGNO (operands[7]) == REGNO (operands[0]))
         && (REGNO (operands[6]) == REGNO (operands[1]))))
    && (peep2_regno_dead_p (3, REGNO (operands[0]))
      || (REGNO (operands[0]) == REGNO (operands[4])))
    && (peep2_regno_dead_p (3, REGNO (operands[1]))
      || (REGNO (operands[1]) == REGNO (operands[4]))))))
            return NULL;
          *pmatch_len_ = 2;
          return gen_peephole2_33 (insn, operands);

        case SET:
          x12 = XEXP (x11, 1);
          if (!commutative_binary_operator (x12, E_SImode))
            return NULL;
          operands[5] = x12;
          x15 = XEXP (x11, 0);
          operands[4] = x15;
          if (!s_register_operand (operands[4], E_SImode))
            return NULL;
          x13 = XEXP (x12, 0);
          operands[6] = x13;
          if (!s_register_operand (operands[6], E_SImode))
            return NULL;
          x16 = XEXP (x12, 1);
          operands[7] = x16;
          if (!s_register_operand (operands[7], E_SImode)
              || !
#line 1188 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/ldmstm.md"
(((((REGNO (operands[6]) == REGNO (operands[0]))
         && (REGNO (operands[7]) == REGNO (operands[1])))
      || ((REGNO (operands[7]) == REGNO (operands[0]))
         && (REGNO (operands[6]) == REGNO (operands[1]))))
    && (peep2_regno_dead_p (3, REGNO (operands[0]))
      || (REGNO (operands[0]) == REGNO (operands[4])))
    && (peep2_regno_dead_p (3, REGNO (operands[1]))
      || (REGNO (operands[1]) == REGNO (operands[4]))))))
            return NULL;
          *pmatch_len_ = 2;
          return gen_peephole2_34 (insn, operands);

        default:
          return NULL;
        }

    case CONST_INT:
      if (peep2_current_count < 2
          || !const_int_operand (x2, E_SImode))
        return NULL;
      x4 = XEXP (x1, 0);
      operands[0] = x4;
      x6 = PATTERN (peep2_next_insn (1));
      if (GET_CODE (x6) != SET)
        return NULL;
      if (arm_general_register_operand (operands[0], E_SImode))
        {
          if (peep2_current_count >= 3)
            {
              res = peephole2_12 (x1, insn, pmatch_len_);
              if (res != NULL_RTX)
                return res;
            }
          operands[1] = x2;
          x8 = XEXP (x6, 1);
          if (GET_CODE (x8) == PLUS
              && GET_MODE (x8) == E_SImode)
            {
              x9 = XEXP (x8, 1);
              if (GET_CODE (x9) == REG
                  && REGNO (x9) == 13
                  && GET_MODE (x9) == E_SImode)
                {
                  x10 = XEXP (x8, 0);
                  if (rtx_equal_p (x10, operands[0]))
                    {
                      x7 = XEXP (x6, 0);
                      if (rtx_equal_p (x7, operands[0])
                          && 
#line 120 "../../../../../../../work-shared/gcc-13.3.0-r0/gcc-13.3.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1
   && UINTVAL (operands[1]) < 1024
   && (UINTVAL (operands[1]) & 3) == 0))
                        {
                          *pmatch_len_ = 1;
                          res = gen_peephole2_35 (insn, operands);
                          if (res != NULL_RTX)
                            return res;
                        }
                    }
                }
            }
        }
      if (peep2_current_count < 3
          || peep2_current_count < 4
          || !s_register_operand (operands[0], E_SImode))
        return NULL;
      if (peep2_current_count >= 5)
        {
          res = peephole2_14 (x1, insn, pmatch_len_);
          if (res != NULL_RTX)
            return res;
        }
      operands[4] = x2;
      switch (pattern479 (x6))
        {
        case 0:
          if (!s_register_operand (operands[1], E_SImode))
            return NULL;
          x11 = PATTERN (peep2_next_insn (2));
          x12 = XEXP (x11, 1);
          operands[5] = x12;
          if (!const_int_operand (operands[5], E_SImode))
            return NULL;
          x36 = PATTERN (peep2_next_insn (3));
          x37 = XEXP (x36, 1);
          if (!rtx_equal_p (x37, operands[1]))
            return NULL;
          *pmatch_len_ = 3;
          return gen_peephole2_30 (insn, operands);

        case 1:
          x7 = XEXP (x6, 0);
          operands[1] = x7;
          if (!s_register_operand (operands[1], E_SImode))
            return NULL;
          x11 = PATTERN (peep2_next_insn (2));
          x15 = XEXP (x11, 0);
          operands[2] = x15;
          if (!memory_operand (operands[2], E_SImode))
            return NULL;
          x12 = XEXP (x11, 1);
          if (!rtx_equal_p (x12, operands[0]))
            return NULL;
          x36 = PATTERN (peep2_next_insn (3));
          x37 = XEXP (x36, 1);
          if (!rtx_equal_p (x37, operands[1]))
            return NULL;
          *pmatch_len_ = 3;
          return gen_peephole2_31 (insn, operands);

        default:
          return NULL;
        }

    default:
      return NULL;
    }
}
