/* 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_peephole2_6 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_14 (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_peephole2_7 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_67 (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_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_86 (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_peephole2_12 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_97 (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_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_105 (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_peephole2_35 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_113 (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_peephole2_36 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_118 (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_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_149 (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 *);




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_DFmode))
        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) != 326)
    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) != 326)
    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)
{
  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 (!mve_imm_8 (operands[3], E_SImode))
    return -1;
  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
pattern59 (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
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, 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
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, 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
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)
          || !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
pattern63 (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
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, 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 pattern63 (x3, E_V16BImode, E_QImode, E_V16QImode); /* [-1, 0] */

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

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

    default:
      return -1;
    }
}

static int
pattern65 (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
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_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
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_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
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, 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
pattern69 (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
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, 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 pattern69 (x3, E_QImode, E_V16QImode); /* [-1, 0] */

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

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

    default:
      return -1;
    }
}

static int
pattern71 (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_HImode, E_V2DImode) != 0)
        return -1;
      return 3;

    default:
      return -1;
    }
}

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 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
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;
  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
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:
      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
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;
  x6 = XVECEXP (x3, 0, 2);
  operands[3] = x6;
  if (!mve_imm_selective_upto_8 (operands[3], E_SImode))
    return -1;
  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
pattern76 (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
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_V8BImode:
      return pattern63 (x3, E_V8BImode, E_HFmode, E_V8HFmode); /* [-1, 0] */

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

    default:
      return -1;
    }
}

static int
pattern78 (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
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_V8HFmode:
      return pattern69 (x3, E_HFmode, E_V8HFmode); /* [-1, 0] */

    case E_V4SFmode:
      if (pattern69 (x3, 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_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
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, 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
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, 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
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, 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
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, 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_V8HImode)
          || !mve_imm_8 (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_V4SImode)
          || !mve_imm_16 (operands[3], E_SImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern85 (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
pattern86 (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
pattern87 (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
pattern88 (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
pattern89 (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
pattern90 (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
pattern91 (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
pattern92 (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 pattern90 (x3, E_V16BImode, E_V16QImode); /* [-1, 0] */

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

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

    default:
      return -1;
    }
}

static int
pattern93 (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
pattern94 (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 pattern90 (x3, E_V8BImode, E_V8HImode); /* [-1, 0] */

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

    default:
      return -1;
    }
}

static int
pattern95 (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_HImode))
    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, 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_HImode))
    return -1;
  return 0;
}

static int
pattern97 (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
pattern98 (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
pattern99 (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
pattern100 (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
pattern101 (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
pattern102 (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
pattern103 (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
pattern104 (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
pattern105 (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
pattern106 (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
pattern107 (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
pattern108 (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
pattern109 (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
pattern110 (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
pattern111 (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
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_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
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_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
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_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
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_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
pattern116 (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
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;
  return pattern116 (x3); /* [-1, 2] */
}

static int
pattern118 (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
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;
  return pattern118 (x3); /* [-1, 2] */
}

static int
pattern120 (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
pattern121 (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
pattern122 (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
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, 1] */
}

static int
pattern124 (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
pattern125 (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
pattern126 (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 pattern125 (x3); /* [-1, 2] */
}

static int
pattern127 (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
pattern128 (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 pattern127 (x3, i1, i2); /* [-1, 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;
  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
pattern130 (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
pattern131 (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
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;
  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
pattern133 (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
pattern134 (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
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_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
pattern136 (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
pattern137 (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
pattern138 (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
pattern139 (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
pattern140 (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 pattern139 (x3, E_V8QImode); /* [-1, 0] */

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

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

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

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

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

    default:
      return -1;
    }
}

static int
pattern141 (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
pattern142 (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
pattern143 (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
pattern144 (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
pattern145 (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
pattern146 (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
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 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
pattern148 (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
pattern149 (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
pattern150 (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
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_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
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_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
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 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
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_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
pattern155 (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
pattern156 (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
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_V2SImode:
      return pattern156 (x3, E_V2SFmode, E_V2SImode); /* [-1, 0] */

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

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

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

    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_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
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_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
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_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
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 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
pattern162 (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
pattern163 (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 pattern162 (x3, E_V4HFmode); /* [-1, 0] */

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

    case E_V2SFmode:
      if (pattern162 (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
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;
  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
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;
  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
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;
  if (!immediate_operand (operands[2], E_SImode))
    return -1;
  return pattern116 (x3); /* [-1, 2] */
}

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;
  if (!immediate_operand (operands[2], E_SImode))
    return -1;
  return pattern118 (x3); /* [-1, 2] */
}

static int
pattern168 (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
pattern169 (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) != 326)
    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
pattern170 (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) != 326)
    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
pattern171 (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) != 326)
    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
pattern172 (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) != 326)
    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
pattern173 (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) != 326)
    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
pattern174 (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) != 326)
    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
pattern175 (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) != 326)
    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_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
pattern176 (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
pattern177 (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
pattern178 (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
pattern179 (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
pattern180 (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
pattern181 (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 (pattern179 (x3, E_V8HImode) != 0)
        return -1;
      return 1;

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

    default:
      return -1;
    }
}

static int
pattern182 (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 pattern179 (x3, E_V8HFmode); /* [-1, 0] */

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

    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, 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
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_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
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;
  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
pattern186 (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
pattern187 (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
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;
  if (!s_register_operand (operands[2], E_SImode))
    return -1;
  return pattern125 (x3); /* [-1, 2] */
}

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_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
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_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
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;
  if (!immediate_operand (operands[2], E_SImode))
    return -1;
  return pattern125 (x3); /* [-1, 2] */
}

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_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
pattern193 (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
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_HImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!vpr_register_operand (operands[0], E_HImode))
    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 (!vpr_register_operand (operands[2], E_HImode))
    return -1;
  return 0;
}

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;
  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
pattern196 (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
pattern197 (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
pattern198 (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
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_V4SImode:
      return pattern198 (x3, E_HImode, E_V8HImode, E_V4SImode); /* [-1, 0] */

    case E_V2DImode:
      if (pattern198 (x3, E_SImode, E_V4SImode, E_V2DImode) != 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;
  return pattern127 (x3, E_V16QImode, E_V8HImode); /* [-1, 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_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
pattern202 (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
pattern203 (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
pattern204 (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 pattern202 (x3, E_V16QImode); /* [-1, 0] */

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

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

    default:
      return -1;
    }
}

static int
pattern205 (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
pattern206 (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
pattern207 (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
pattern208 (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 pattern206 (x3, E_V16BImode, E_V16QImode); /* [-1, 0] */

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

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

    default:
      return -1;
    }
}

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
      || !mve_memory_operand (operands[1], i2)
      || !vpr_register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern210 (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
pattern211 (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 pattern209 (x3, E_V16BImode, E_V16QImode); /* [-1, 0] */

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

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

    default:
      return -1;
    }
}

static int
pattern212 (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 pattern202 (x3, E_V8HImode); /* [-1, 0] */

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

    default:
      return -1;
    }
}

static int
pattern213 (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 pattern209 (x3, E_V8BImode, E_V8HImode); /* [-1, 0] */

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

    default:
      return -1;
    }
}

static int
pattern214 (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
pattern215 (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
pattern216 (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
pattern217 (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
pattern218 (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
pattern219 (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 pattern206 (x3, E_V8BImode, E_V8HImode); /* [-1, 0] */

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

    default:
      return -1;
    }
}

static int
pattern220 (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) != 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;
  return 0;
}

static int
pattern221 (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) != 326)
    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_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
pattern222 (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
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_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
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_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
pattern225 (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
pattern226 (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
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;
  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 pattern69 (x3, E_V4HImode, E_V8HImode); /* [-1, 0] */

    case E_V4SImode:
      if (pattern69 (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
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_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 (pattern69 (x3, E_V4HImode, E_V8HImode) != 0)
        return -1;
      return 3;

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

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

    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_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
pattern230 (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) != 326)
    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
pattern231 (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
pattern232 (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 pattern231 (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
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, 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
pattern234 (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
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:
      return pattern234 (x3, E_V16BImode, E_V16QImode); /* [-1, 0] */

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

    case E_V4SImode:
      if (pattern234 (x3, E_V4BImode, E_V4SImode) != 0)
        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)
      || !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;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 3);
  operands[4] = x2;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      return pattern236 (x1, E_V16BImode, E_V16QImode); /* [-1, 0] */

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

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

    default:
      return -1;
    }
}

static int
pattern238 (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 (!mve_imm_selective_upto_8 (operands[3], E_SImode))
    return -1;
  return pattern237 (x3); /* [-1, 2] */
}

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_V8HFmode:
      return pattern231 (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
pattern241 (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
pattern242 (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 pattern241 (x3, E_V16BImode, E_QImode, E_V16QImode); /* [-1, 0] */

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

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

    default:
      return -1;
    }
}

static int
pattern243 (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 pattern237 (x3); /* [-1, 2] */
}

static int
pattern244 (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
pattern245 (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 pattern244 (x3, E_V16BImode, E_V16QImode, E_V8HImode); /* [-1, 0] */

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

    case E_V2DImode:
      if (pattern244 (x3, E_V4BImode, E_V4SImode, E_V2DImode) != 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 (!immediate_operand (operands[3], E_SImode))
    return -1;
  return pattern237 (x3); /* [-1, 2] */
}

static int
pattern247 (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
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_V16QImode:
      return pattern247 (x3, E_V16BImode, E_V16QImode); /* [-1, 0] */

    case E_V8HImode:
      if (pattern231 (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
pattern249 (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
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, 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
pattern251 (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
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;
  if (!mve_imm_8 (operands[3], E_SImode))
    return -1;
  x7 = XVECEXP (x3, 0, 3);
  operands[4] = x7;
  switch (GET_MODE (operands[0]))
    {
    case E_V16QImode:
      return pattern251 (x3, E_V8BImode, E_V8HImode, E_V16QImode); /* [-1, 0] */

    case E_V8HImode:
      if (pattern251 (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, 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 pattern247 (x3, E_V8BImode, E_V8HImode); /* [-1, 0] */

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

    default:
      return -1;
    }
}

static int
pattern254 (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
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 pattern251 (x3, E_V16BImode, E_V16QImode, E_V8HImode); /* [-1, 0] */

    case E_V4SImode:
      if (pattern251 (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 pattern244 (x3, E_V16BImode, E_V16QImode, E_V8HImode); /* [-1, 0] */

    case E_V4SImode:
      if (pattern244 (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 pattern244 (x3, E_V8BImode, E_V8HImode, E_V4SImode); /* [-1, 0] */

    case E_V2DImode:
      if (pattern244 (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 pattern234 (x3, E_V8BImode, E_V8HFmode); /* [-1, 0] */

    case E_V4SFmode:
      if (pattern234 (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 pattern241 (x3, E_V8BImode, E_HFmode, E_V8HFmode); /* [-1, 0] */

    case E_V4SFmode:
      if (pattern241 (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_HImode))
    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_HImode))
    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)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!vpr_register_operand (operands[0], E_V16BImode)
      || GET_MODE (x1) != E_V16BImode
      || !s_register_operand (operands[1], E_V16QImode))
    return -1;
  switch (GET_MODE (operands[2]))
    {
    case E_V16QImode:
      if (!s_register_operand (operands[2], E_V16QImode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

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

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

    default:
      return -1;
    }
}

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

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

    default:
      return -1;
    }
}

static int
pattern272 (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_V16BImode:
      return pattern269 (x1); /* [-1, 1] */

    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:
          res = pattern270 ();
          if (res >= 0)
            return res + 2; /* [2, 3] */
          return -1;

        case E_V8HFmode:
          if (!s_register_operand (operands[1], E_V8HFmode))
            return -1;
          switch (GET_MODE (operands[2]))
            {
            case E_V8HFmode:
              if (!s_register_operand (operands[2], E_V8HFmode))
                return -1;
              return 4;

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

            default:
              return -1;
            }

        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:
          res = pattern271 ();
          if (res >= 0)
            return res + 6; /* [6, 7] */
          return -1;

        case E_V4SFmode:
          if (!s_register_operand (operands[1], E_V4SFmode))
            return -1;
          switch (GET_MODE (operands[2]))
            {
            case E_V4SFmode:
              if (!s_register_operand (operands[2], E_V4SFmode))
                return -1;
              return 8;

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

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern273 (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_V16BImode:
      return pattern269 (x1); /* [-1, 1] */

    case E_V8BImode:
      if (!vpr_register_operand (operands[0], E_V8BImode)
          || GET_MODE (x1) != E_V8BImode)
        return -1;
      res = pattern270 ();
      if (res >= 0)
        return res + 2; /* [2, 3] */
      return -1;

    case E_V4BImode:
      if (!vpr_register_operand (operands[0], E_V4BImode)
          || GET_MODE (x1) != E_V4BImode)
        return -1;
      res = pattern271 ();
      if (res >= 0)
        return res + 4; /* [4, 5] */
      return -1;

    default:
      return -1;
    }
}

static int
pattern274 (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
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;
  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]
      || pattern274 (x1, E_V4HImode, E_V8HImode) != 0)
    return -1;
  return 0;
}

static int
pattern276 (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]
      || pattern274 (x1, E_V8QImode, E_V16QImode) != 0)
    return -1;
  return 0;
}

static int
pattern277 (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]
              || pattern274 (x1, E_V2SImode, E_V4SImode) != 0)
            return -1;
          return 7;

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

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

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern278 (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
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, 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
pattern284 (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
pattern285 (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
pattern286 (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
pattern287 (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 pattern285 (x1); /* [-1, 1] */

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

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

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

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

        default:
          return -1;
        }

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

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

        default:
          return -1;
        }

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

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

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern288 (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
pattern289 (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
pattern290 (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
pattern291 (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
pattern292 (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
pattern293 (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
pattern294 (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
pattern295 (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
      || pattern294 (x1) != 0)
    return -1;
  return 0;
}

static int
pattern296 (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
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[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
pattern298 (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 pattern296 (x1, E_CC_Zmode); /* [-1, 1] */

        case E_SImode:
          res = pattern296 (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 = pattern297 (x1, E_CC_Zmode);
          if (res >= 0)
            return res + 4; /* [4, 5] */
          return -1;

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

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern299 (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
pattern300 (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 pattern299 (x1, E_QImode); /* [-1, 0] */

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

    case E_SImode:
      if (pattern299 (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
pattern301 (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
pattern302 (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 pattern298 (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 = pattern300 (x6);
          if (res >= 0)
            return res + 8; /* [8, 11] */
          return -1;

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

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

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

        case AND:
          res = pattern300 (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 (pattern301 (x6, E_QImode) != 0)
                return -1;
              return 28;

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

            case E_SImode:
              if (pattern301 (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
pattern303 (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
pattern304 (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
pattern305 (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
pattern306 (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
pattern307 (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
pattern308 (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 pattern274 (x1, E_V2SImode, E_V4SImode); /* [-1, 0] */

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

        default:
          return -1;
        }

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

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

    default:
      return -1;
    }
}

static int
pattern309 (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
pattern310 (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
pattern311 (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 (pattern309 (x1, E_V8HImode, E_V8QImode) != 0)
            return -1;
          return 2;

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

        case E_V2DImode:
          if (pattern309 (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 (pattern310 (x1, E_V8HImode, E_V16QImode, E_V8QImode) != 0)
            return -1;
          return 5;

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

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

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern312 (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
pattern313 (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
pattern314 (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 pattern313 (x1, E_V8QImode); /* [-1, 0] */

    case E_V16QImode:
      if (pattern313 (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
pattern315 (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
pattern316 (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 pattern314 (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 (pattern315 (x1, E_V2SFmode, E_V2SImode) != 0)
            return -1;
          return 10;

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

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

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

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern317 (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
pattern318 (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 pattern317 (x1, E_V8QImode); /* [-1, 0] */

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

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

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

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

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

    default:
      return -1;
    }
}

static int
pattern319 (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
pattern320 (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
pattern321 (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
pattern322 (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
pattern323 (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
pattern324 (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
pattern325 (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
pattern326 (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
pattern327 (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 pattern326 (x1); /* [-1, 3] */
}

static int
pattern328 (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 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, 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
          || pattern325 (x3) != 0)
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern330 (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
pattern331 (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
pattern332 (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
pattern333 (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
pattern334 (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
pattern335 (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
pattern336 (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
pattern337 (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
pattern338 (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
pattern339 (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
pattern340 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  operands[1] = x2;
  switch (GET_MODE (operands[0]))
    {
    case E_V8QImode:
      return pattern162 (x1, E_V8QImode); /* [-1, 0] */

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

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

    default:
      return -1;
    }
}

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, 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
pattern353 (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 pattern352 (x4, E_CCmode, 100); /* [-1, 0] */
}

static int
pattern354 (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
pattern355 (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
pattern356 (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
      || pattern355 (x1, i2, i3, i4) != 0)
    return -1;
  return 0;
}

static int
pattern357 (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
pattern358 (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
pattern359 (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
pattern360 (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 pattern359 (x1, E_V8QImode); /* [-1, 0] */

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

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

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

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

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

    case E_V2SFmode:
      if (pattern359 (x1, E_V2SFmode) != 0)
        return -1;
      return 6;

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

    case E_V8HFmode:
      if (pattern359 (x1, E_V8HFmode) != 0)
        return -1;
      return 8;

    case E_V4HFmode:
      if (pattern359 (x1, E_V4HFmode) != 0)
        return -1;
      return 9;

    default:
      return -1;
    }
}

static int
pattern361 (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
pattern362 (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]
      || pattern355 (x1, E_V4SImode, E_SImode, 101) != 0)
    return -1;
  return 0;
}

static int
pattern363 (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
pattern364 (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 pattern363 (x6, E_V16BImode, E_V16QImode); /* [-1, 0] */

    case E_V8HImode:
      if (pattern363 (x6, E_V8BImode, E_V8HImode) != 0)
        return -1;
      return 1;

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

    default:
      return -1;
    }
}

static int
pattern365 (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
pattern366 (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)
      || pattern365 (x1, i2, i3) != 0)
    return -1;
  return 0;
}

static int
pattern367 (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
pattern368 (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
pattern369 (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)
      || pattern368 (x1, i2, i3) != 0)
    return -1;
  return 0;
}

static int
pattern370 (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
pattern371 (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]
      || pattern370 (x1) != 0)
    return -1;
  return 0;
}

static int
pattern372 (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
      || pattern370 (x1) != 0)
    return -1;
  return 0;
}

static int
pattern373 (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
pattern374 (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 pattern373 (x6, E_V16BImode, E_V16QImode); /* [-1, 0] */

    case E_V8HImode:
      if (pattern373 (x6, E_V8BImode, E_V8HImode) != 0)
        return -1;
      return 1;

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

    default:
      return -1;
    }
}

static int
pattern375 (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
pattern376 (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
pattern377 (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 pattern376 (x1); /* [-1, 0] */
}

static int
pattern378 (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
pattern379 (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 pattern378 (x1, E_V16QImode, E_V8QImode, E_V8HImode); /* [-1, 0] */

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

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

    default:
      return -1;
    }
}

static int
pattern380 (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
pattern381 (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 (pattern380 (x1, E_V4HImode, E_V4SImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern382 (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
pattern383 (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
pattern384 (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 (pattern383 (x1, E_SFmode) != 0)
        return -1;
      return 3;

    case E_DFmode:
      if (pattern383 (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
pattern385 (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
pattern386 (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
pattern387 (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 pattern386 (x1, E_V8QImode); /* [-1, 0] */

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

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

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

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

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

    default:
      return -1;
    }
}

static int
pattern388 (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
pattern389 (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 pattern388 (x1, E_V8HImode, E_V8QImode); /* [-1, 0] */

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

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

    default:
      return -1;
    }
}

static int
pattern390 (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
pattern391 (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 pattern390 (x1, E_V2SImode, E_V8QImode); /* [-1, 0] */

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

    default:
      return -1;
    }
}

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);
  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
pattern393 (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
pattern394 (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
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);
  if (!s_register_operand (x3, i1))
    return -1;
  x4 = XEXP (x1, 1);
  if (!s_register_operand (x4, i1))
    return -1;
  return 0;
}

static int
pattern396 (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
pattern397 (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
pattern398 (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
pattern399 (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_SImode)
    return -1;
  x4 = XEXP (x1, 0);
  operands[3] = x4;
  x5 = XEXP (x4, 0);
  operands[4] = 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;
  x7 = XEXP (x3, 1);
  operands[2] = x7;
  if (!reg_or_int_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

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 pattern292 (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, 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
pattern461 (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
pattern462 (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
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_vcde2_operand (operands[3], E_SImode))
    return -1;
  return 0;
}

static int
pattern464 (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
pattern465 (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
pattern466 (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
pattern467 (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
pattern468 (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
pattern469 (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
pattern470 (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
pattern471 (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
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) != 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
pattern473 (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
pattern474 (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
pattern475 (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
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 = 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
pattern477 (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
pattern478 (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
pattern479 (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
pattern480 (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
pattern481 (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
pattern482 (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
      || pattern481 (x1, E_DImode, E_CC_Vmode) != 0)
    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, 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
pattern484 (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
pattern485 (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
pattern486 (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
pattern487 (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
pattern488 (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
pattern489 (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
pattern490 (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
pattern491 (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
pattern492 (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 pattern491 (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 (pattern491 (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
pattern493 (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
pattern494 (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
pattern495 (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
pattern496 (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
pattern497 (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
pattern498 (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
pattern499 (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
pattern500 (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
pattern501 (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
pattern502 (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
pattern503 (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
pattern504 (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
pattern505 (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
pattern506 (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
pattern507 (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
pattern508 (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
pattern509 (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) != 1073
      || 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;
  if (!mve_vldrd_immediate (operands[2], 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;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  x3 = XEXP (x2, 1);
  if (XVECLEN (x3, 0) != 2
      || XINT (x3, 1) != 1074
      || 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
pattern511 (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
pattern512 (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 pattern352 (x4, i1, i2); /* [-1, 0] */
}

static int
pattern513 (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
pattern514 (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
      || pattern513 (x1) != 0)
    return -1;
  return 0;
}

static int
pattern515 (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
pattern516 (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
pattern517 (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
pattern518 (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
pattern519 (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
pattern520 (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
pattern521 (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
pattern522 (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
pattern523 (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
pattern524 (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
pattern525 (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 pattern524 (x1, E_V4HImode, E_V4QImode, E_V8QImode); /* [-1, 0] */

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

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

    default:
      return -1;
    }
}

static int
pattern526 (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
pattern527 (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
pattern528 (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
      || pattern484 (x1) != 0)
    return -1;
  return 0;
}

static int
pattern529 (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
pattern530 (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
pattern531 (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
pattern532 (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
pattern533 (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
      || pattern532 (x1, E_V2SImode, E_V2DImode) != 0)
    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;
  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
pattern535 (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
pattern536 (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 pattern535 (x2, i1, i2); /* [-1, 1] */
}

static int
pattern537 (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 pattern535 (x2, i1, i2); /* [-1, 1] */
}

static int
pattern538 (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
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 pattern538 (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];
  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 pattern538 (x2, i1, i2); /* [-1, 1] */
}

static int
pattern541 (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
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 (!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
pattern543 (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
pattern544 (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
pattern545 (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 pattern544 (x4, i1, i2, i3); /* [-1, 0] */
}

static int
pattern546 (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
pattern547 (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
pattern548 (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
pattern549 (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
pattern550 (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
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)
      || !immediate_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern552 (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
pattern553 (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
pattern554 (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
      || pattern325 (x3) != 0)
    return -1;
  return 0;
}

static int
pattern555 (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
pattern556 (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
pattern557 (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
pattern558 (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 pattern557 (x1, E_QImode); /* [-1, 0] */

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

    case E_SImode:
      if (pattern557 (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
pattern559 (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 pattern558 (x1); /* [-1, 3] */
}

static int
pattern560 (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
pattern561 (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
pattern562 (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
pattern563 (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
pattern564 (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 pattern544 (x5, i1, i2, i3); /* [-1, 0] */
}

static int
pattern565 (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
pattern566 (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
pattern567 (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 pattern566 (x7, i1); /* [-1, 0] */
}

static int
pattern568 (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
pattern569 (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
pattern570 (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
pattern571 (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
pattern572 (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
      || pattern571 (x1) != 0)
    return -1;
  return 0;
}

static int
pattern573 (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
pattern574 (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
pattern575 (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
pattern576 (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
pattern577 (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
pattern578 (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
pattern579 (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 (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x5 = XEXP (x1, 1);
  x6 = XEXP (x5, 0);
  if (GET_CODE (x6) != i1)
    return -1;
  x7 = XEXP (x6, 1);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
    return -1;
  x8 = XEXP (x3, 0);
  operands[1] = x8;
  if (!register_operand (operands[1], E_SImode))
    return -1;
  return 0;
}

static int
pattern580 (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
pattern581 (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
pattern582 (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
pattern583 (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
pattern584 (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
pattern585 (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
pattern586 (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
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)
    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
pattern588 (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
pattern589 (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
pattern590 (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
pattern591 (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
pattern592 (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 pattern591 (x1, E_QImode); /* [-1, 0] */

    case E_HImode:
      if (pattern591 (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
pattern593 (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
pattern594 (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
pattern595 (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
pattern596 (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
pattern597 (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
      || pattern596 (x1) != 0)
    return -1;
  return 0;
}

static int
pattern598 (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
pattern599 (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
pattern600 (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
pattern601 (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
pattern602 (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
pattern603 (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
pattern604 (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
pattern605 (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
pattern606 (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
pattern607 (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
pattern608 (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
pattern609 (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
pattern610 (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
pattern611 (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
pattern612 (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
pattern613 (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
pattern614 (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
pattern615 (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
pattern616 (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
pattern617 (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
      || pattern616 (x1, E_V2SImode, E_V2DImode) != 0)
    return -1;
  return 0;
}

static int
pattern618 (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
pattern619 (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
pattern620 (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
pattern621 (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
pattern622 (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
pattern623 (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
pattern624 (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
pattern625 (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
pattern626 (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
pattern627 (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
pattern628 (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
pattern629 (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
pattern630 (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
pattern631 (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
pattern632 (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 pattern630 (x1, E_QImode); /* [-1, 0] */

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

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

    case E_DImode:
      if (pattern631 (x1) != 0)
        return -1;
      return 3;

    default:
      return -1;
    }
}

static int
pattern633 (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
pattern634 (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)
      || pattern633 (x1) != 0)
    return -1;
  return 0;
}

static int
pattern635 (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 pattern630 (x1, E_QImode); /* [-1, 0] */

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

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

    default:
      return -1;
    }
}

static int
pattern636 (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
pattern637 (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
pattern638 (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
pattern639 (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
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 = 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
pattern641 (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
pattern642 (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
pattern643 (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
pattern644 (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
pattern645 (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
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;
  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
pattern647 (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
pattern648 (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 pattern647 (x5, E_V16BImode, E_V16QImode); /* [-1, 0] */

    case E_V8HImode:
      x4 = XVECEXP (x1, 0, 0);
      x5 = XEXP (x4, 1);
      if (pattern647 (x5, E_V8BImode, E_V8HImode) != 0)
        return -1;
      return 1;

    case E_V4SImode:
      x4 = XVECEXP (x1, 0, 0);
      x5 = XEXP (x4, 1);
      if (pattern647 (x5, E_V4BImode, E_V4SImode) != 0)
        return -1;
      return 2;

    default:
      return -1;
    }
}

static int
pattern649 (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
pattern650 (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
pattern651 (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
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, 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
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;
  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
pattern654 (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
pattern655 (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
pattern656 (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
pattern657 (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
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;
  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
pattern659 (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
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)
{
  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
pattern662 (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
pattern663 (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
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, 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
pattern665 (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
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;
  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
pattern667 (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
pattern668 (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
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)
{
  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 1162 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 6731 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 260; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 967; /* *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 1639 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 2086 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 2098 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 (pattern576 (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 2291 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && !arm_arch6))
        return 59; /* *mulsi3_compare0 */
      if (!
#line 2305 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch6 && optimize_size))
        return -1;
      return 60; /* *mulsi3_compare0_v6 */

    case 1:
      if (
#line 2318 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && !arm_arch6))
        return 61; /* *mulsi_compare0_scratch */
      if (!
#line 2331 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 4668 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 148; /* *shiftsi3_compare0 */

        default:
          return -1;
        }

    case CLOBBER:
      x9 = XEXP (x7, 0);
      operands[0] = x9;
      if (!scratch_operand (operands[0], E_SImode)
          || !
#line 4682 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 149; /* *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 (pattern508 (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 628 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 674 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 806 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 850 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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)
          || pattern479 (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 710 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 885 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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
              || pattern507 (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)
              || pattern633 (x1) != 0
              || !
#line 977 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 8; /* addsi3_compareV_reg */

        case CONST_INT:
          if (pattern507 (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 1010 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 1026 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 2113 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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)
          || pattern479 (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 1112 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return 13; /* addsi3_compare0 */
              if (
#line 1371 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
                return 1042; /* 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 1230 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 1255 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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
          || pattern480 (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 2113 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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]
          || pattern480 (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 (pattern611 (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 2348 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch6))
            return 63; /* *mulsi3addsi_compare0 */
          if (!
#line 2365 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch6 && optimize_size))
            return -1;
          return 64; /* *mulsi3addsi_compare0_v6 */

        case 1:
          if (
#line 2380 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && !arm_arch6))
            return 65; /* *mulsi3addsi_compare0_scratch */
          if (!
#line 2395 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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
          || pattern482 (x1) != 0)
        return -1;
      x8 = XEXP (x6, 0);
      operands[1] = x8;
      if (!s_register_operand (operands[1], E_SImode)
          || pattern634 (x1) != 0
          || !
#line 1654 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 (pattern482 (x1) != 0
              || !arm_immediate_operand (operands[1], E_VOIDmode)
              || pattern634 (x1) != 0
              || !
#line 1671 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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]
              || pattern481 (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 2052 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 (pattern576 (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 9680 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                    return -1;
                  return 328; /* *sub_shiftsi_compare0 */

                default:
                  return -1;
                }

            case 1:
              if (!
#line 9696 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 329; /* *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 (pattern508 (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 2170 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 2191 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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)
          || pattern323 (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 3039 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 3055 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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
          || pattern323 (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 3534 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 102; /* 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 3558 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                    return -1;
                  return 103; /* 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 (pattern611 (x8, NOT, AND))
            {
            case 0:
              x9 = XEXP (x8, 1);
              x12 = XEXP (x9, 1);
              if (!rtx_equal_p (x12, operands[1])
                  || !
#line 3575 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 104; /* *andsi_notsi_si_compare0 */

            case 1:
              if (!
#line 3588 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 105; /* *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 10488 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 343; /* *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)
          || pattern323 (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 (pattern576 (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 3679 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 107; /* *iorsi3_compare0 */

        case 1:
          if (!
#line 3694 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 108; /* *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 10424 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 341; /* *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 (pattern324 (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 3768 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
    return -1;
  return 110; /* *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 1390 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 2470 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 2470 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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
              || pattern577 (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 2603 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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]
              || pattern577 (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 2651 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 2701 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 (pattern292 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 924; /* *thumb1_adddi3 */

    case MEM:
      switch (pattern328 (x1, pnum_clobbers))
        {
        case 0:
          if (!
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          *pnum_clobbers = 2;
          return 2930; /* atomic_add_fetchqi */

        case 1:
          if (!
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          *pnum_clobbers = 2;
          return 2935; /* atomic_add_fetchhi */

        case 2:
          if (!
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          *pnum_clobbers = 2;
          return 2940; /* atomic_add_fetchsi */

        case 3:
          if (!
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          *pnum_clobbers = 2;
          return 2945; /* 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 (pattern292 (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)
              || pattern578 (x3) != 0
              || !
#line 4198 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && !arm_eliminable_register (operands[1])
   && !(arm_restrict_it && CONST_INT_P (operands[3]))))
            return -1;
          return 122; /* *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)
              || pattern578 (x3) != 0)
            return -1;
          if (
#line 10030 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return 335; /* *cond_sub */
          if (!
#line 868 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
            return -1;
          return 1021; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return -1;
          return 926; /* *thumb_subdi3 */

        default:
          return -1;
        }

    case MEM:
      if (pnum_clobbers == NULL)
        return -1;
      switch (pattern327 (x1))
        {
        case 0:
          if (!
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          *pnum_clobbers = 2;
          return 2931; /* atomic_sub_fetchqi */

        case 1:
          if (!
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          *pnum_clobbers = 2;
          return 2936; /* atomic_sub_fetchhi */

        case 2:
          if (!
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          *pnum_clobbers = 2;
          return 2941; /* atomic_sub_fetchsi */

        case 3:
          if (!
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          *pnum_clobbers = 2;
          return 2946; /* 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 4153 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && !arm_eliminable_register (operands[1]) && !arm_restrict_it))
        return -1;
      return 121; /* *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 10004 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
        return 334; /* *cond_arith */
      if (!
#line 756 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !arm_restrict_it))
        return -1;
      return 1019; /* *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 11366 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && adjacent_mem_locations (operands[2], operands[3])))
                    return 376; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed
   && GET_CODE(operands[3]) != PLUS
   && GET_CODE(operands[3]) != MINUS))
        return -1;
      return 1035; /* *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 2429 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 2429 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 (pattern356 (x1, 29, E_SImode, E_CCmode, 105) != 0
          || !
#line 5997 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 222; /* arm_sadd8 */

    case 83:
      if (pattern356 (x1, 29, E_SImode, E_CCmode, 105) != 0
          || !
#line 5997 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 223; /* arm_ssub8 */

    case 84:
      if (pattern356 (x1, 29, E_SImode, E_CCmode, 105) != 0
          || !
#line 5997 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 224; /* arm_uadd8 */

    case 85:
      if (pattern356 (x1, 29, E_SImode, E_CCmode, 105) != 0
          || !
#line 5997 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 225; /* arm_usub8 */

    case 86:
      if (pattern356 (x1, 29, E_SImode, E_CCmode, 105) != 0
          || !
#line 5997 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 226; /* arm_sadd16 */

    case 87:
      if (pattern356 (x1, 29, E_SImode, E_CCmode, 105) != 0
          || !
#line 5997 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 227; /* arm_sasx */

    case 88:
      if (pattern356 (x1, 29, E_SImode, E_CCmode, 105) != 0
          || !
#line 5997 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 228; /* arm_ssax */

    case 89:
      if (pattern356 (x1, 29, E_SImode, E_CCmode, 105) != 0
          || !
#line 5997 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 229; /* arm_ssub16 */

    case 90:
      if (pattern356 (x1, 29, E_SImode, E_CCmode, 105) != 0
          || !
#line 5997 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 230; /* arm_uadd16 */

    case 91:
      if (pattern356 (x1, 29, E_SImode, E_CCmode, 105) != 0
          || !
#line 5997 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 231; /* arm_uasx */

    case 92:
      if (pattern356 (x1, 29, E_SImode, E_CCmode, 105) != 0
          || !
#line 5997 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 232; /* arm_usax */

    case 93:
      if (pattern356 (x1, 29, E_SImode, E_CCmode, 105) != 0
          || !
#line 5997 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 233; /* arm_usub16 */

    case 98:
      if (pattern356 (x1, 28, E_SImode, E_CCmode, 104) != 0
          || !
#line 6036 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && ARM_Q_BIT_READ))
        return -1;
      return 243; /* arm_smuad_setq_insn */

    case 99:
      if (pattern356 (x1, 28, E_SImode, E_CCmode, 104) != 0
          || !
#line 6036 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && ARM_Q_BIT_READ))
        return -1;
      return 245; /* arm_smuadx_setq_insn */

    case 100:
      if (pattern357 (x1) != 0
          || !ssat16_imm (operands[2], E_SImode)
          || !
#line 6063 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && ARM_Q_BIT_READ))
        return -1;
      return 247; /* arm_ssat16_setq_insn */

    case 101:
      if (pattern357 (x1) != 0
          || !usat16_imm (operands[2], E_SImode)
          || !
#line 6063 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && ARM_Q_BIT_READ))
        return -1;
      return 249; /* arm_usat16_setq_insn */

    case 176:
      if (pattern358 (x1) != 0
          || !
#line 1941 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
        return -1;
      return 861; /* neon_vcvths_nhf_unspec */

    case 177:
      if (pattern358 (x1) != 0
          || !
#line 1941 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
        return -1;
      return 862; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 989; /* thumb1_stack_protect_test_insn */

    case 336:
      switch (pattern360 (x1, 337))
        {
        case 0:
          if (!
#line 4873 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2469; /* *neon_vtrnv8qi_insn */

        case 1:
          if (!
#line 4873 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2470; /* *neon_vtrnv16qi_insn */

        case 2:
          if (!
#line 4873 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2471; /* *neon_vtrnv4hi_insn */

        case 3:
          if (!
#line 4873 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2472; /* *neon_vtrnv8hi_insn */

        case 4:
          if (!
#line 4873 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2473; /* *neon_vtrnv2si_insn */

        case 5:
          if (!
#line 4873 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2474; /* *neon_vtrnv4si_insn */

        case 6:
          if (!
#line 4873 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2475; /* *neon_vtrnv2sf_insn */

        case 7:
          if (!
#line 4873 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2476; /* *neon_vtrnv4sf_insn */

        case 8:
          if (!
#line 4873 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2477; /* *neon_vtrnv8hf_insn */

        case 9:
          if (!
#line 4873 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2478; /* *neon_vtrnv4hf_insn */

        default:
          return -1;
        }

    case 341:
      switch (pattern360 (x1, 342))
        {
        case 0:
          if (!
#line 4899 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2479; /* *neon_vzipv8qi_insn */

        case 1:
          if (!
#line 4899 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2480; /* *neon_vzipv16qi_insn */

        case 2:
          if (!
#line 4899 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2481; /* *neon_vzipv4hi_insn */

        case 3:
          if (!
#line 4899 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2482; /* *neon_vzipv8hi_insn */

        case 4:
          if (!
#line 4899 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2483; /* *neon_vzipv2si_insn */

        case 5:
          if (!
#line 4899 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2484; /* *neon_vzipv4si_insn */

        case 6:
          if (!
#line 4899 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2485; /* *neon_vzipv2sf_insn */

        case 7:
          if (!
#line 4899 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2486; /* *neon_vzipv4sf_insn */

        case 8:
          if (!
#line 4899 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2487; /* *neon_vzipv8hf_insn */

        case 9:
          if (!
#line 4899 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2488; /* *neon_vzipv4hf_insn */

        default:
          return -1;
        }

    case 339:
      switch (pattern360 (x1, 340))
        {
        case 0:
          if (!
#line 4925 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2489; /* *neon_vuzpv8qi_insn */

        case 1:
          if (!
#line 4925 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2490; /* *neon_vuzpv16qi_insn */

        case 2:
          if (!
#line 4925 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2491; /* *neon_vuzpv4hi_insn */

        case 3:
          if (!
#line 4925 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2492; /* *neon_vuzpv8hi_insn */

        case 4:
          if (!
#line 4925 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2493; /* *neon_vuzpv2si_insn */

        case 5:
          if (!
#line 4925 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2494; /* *neon_vuzpv4si_insn */

        case 6:
          if (!
#line 4925 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2495; /* *neon_vuzpv2sf_insn */

        case 7:
          if (!
#line 4925 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2496; /* *neon_vuzpv4sf_insn */

        case 8:
          if (!
#line 4925 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2497; /* *neon_vuzpv8hf_insn */

        case 9:
          if (!
#line 4925 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2498; /* *neon_vuzpv4hf_insn */

        default:
          return -1;
        }

    case 1065:
      if (pattern361 (x1, PLUS) != 0
          || !mve_imm_selective_upto_8 (operands[3], E_SImode))
        return -1;
      switch (pattern555 (x1))
        {
        case 0:
          if (!
#line 8970 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4817; /* mve_vidupq_uv16qi_insn */

        case 1:
          if (!
#line 8970 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4818; /* mve_vidupq_uv8hi_insn */

        case 2:
          if (!
#line 8970 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4819; /* mve_vidupq_uv4si_insn */

        default:
          return -1;
        }

    case 1061:
      if (pattern361 (x1, MINUS) != 0
          || !immediate_operand (operands[3], E_SImode))
        return -1;
      switch (pattern555 (x1))
        {
        case 0:
          if (!
#line 9038 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4823; /* mve_vddupq_uv16qi_insn */

        case 1:
          if (!
#line 9038 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4824; /* mve_vddupq_uv8hi_insn */

        case 2:
          if (!
#line 9038 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4825; /* mve_vddupq_uv4si_insn */

        default:
          return -1;
        }

    case 1091:
      if (pattern362 (x1, 1091) != 0
          || !
#line 9837 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4865; /* mve_vadciq_uv4si */

    case 1093:
      if (pattern362 (x1, 1093) != 0
          || !
#line 9837 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4866; /* mve_vadciq_sv4si */

    case 1079:
      if (pattern356 (x1, 1079, E_V4SImode, E_SImode, 101) != 0
          || !
#line 9873 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4869; /* mve_vadcq_uv4si */

    case 1081:
      if (pattern356 (x1, 1081, E_V4SImode, E_SImode, 101) != 0
          || !
#line 9873 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4870; /* mve_vadcq_sv4si */

    case 1083:
      if (pattern362 (x1, 1083) != 0
          || !
#line 9910 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4873; /* mve_vsbciq_uv4si */

    case 1084:
      if (pattern362 (x1, 1084) != 0
          || !
#line 9910 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4874; /* mve_vsbciq_sv4si */

    case 1087:
      if (pattern356 (x1, 1087, E_V4SImode, E_SImode, 101) != 0
          || !
#line 9946 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4877; /* mve_vsbcq_uv4si */

    case 1088:
      if (pattern356 (x1, 1088, E_V4SImode, E_SImode, 101) != 0
          || !
#line 9946 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4878; /* 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)
              && pattern556 (x1) == 0
              && 
#line 3095 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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
              || pattern556 (x1) != 0
              || !
#line 3133 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return -1;
          return 969; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 968; /* *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)
          && pattern528 (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 3161 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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
          || pattern528 (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 3200 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
            return 1048; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_32BIT && TARGET_HAVE_LOB))
        return -1;
      *pnum_clobbers = 1;
      return 1058; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
                return 1047; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return 961; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 962; /* *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 (pattern511 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      *pnum_clobbers = 1;
      return 964; /* *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 10768 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
    return -1;
  return 348; /* *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 (pattern483 (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 10701 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return 347; /* movcond */
              if (!
#line 1012 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !TARGET_COND_ARITH))
                return -1;
              return 1026; /* *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 10811 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return 350; /* *ifcompare_move_plus */
              if (!arm_rhs_operand (operands[3], E_SImode))
                return -1;
              operands[7] = x8;
              if (!shiftable_operator (operands[7], E_SImode)
                  || !
#line 10955 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return -1;
              return 356; /* *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 11022 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return -1;
              return 358; /* *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 11135 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return -1;
              return 364; /* *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 11323 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return -1;
              return 374; /* *ifcompare_move_neg */

            default:
              return -1;
            }

        case PLUS:
        case MINUS:
        case AND:
        case IOR:
        case XOR:
          if (pattern483 (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 10856 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return -1;
              return 352; /* *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 10890 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return -1;
              return 354; /* *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 11255 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return -1;
              return 370; /* *ifcompare_arith_not */

            default:
              return -1;
            }

        case NOT:
          if (GET_MODE (x7) != E_SImode
              || pattern483 (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 11057 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return -1;
              return 360; /* *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 11221 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return -1;
              return 368; /* *ifcompare_not_arith */

            default:
              return -1;
            }

        case MULT:
        case ASHIFT:
        case ROTATE:
        case ASHIFTRT:
        case LSHIFTRT:
        case ROTATERT:
          if (!shift_operator (x7, E_SImode)
              || pattern483 (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 11092 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return -1;
              return 362; /* *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 11180 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return -1;
              return 366; /* *ifcompare_shift_shift */

            default:
              return -1;
            }

        case NEG:
          if (GET_MODE (x7) != E_SImode
              || pattern484 (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 11287 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 372; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return -1;
          return 959; /* 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-12.2.0-r0/gcc-12.2.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 965; /* *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-12.2.0-r0/gcc-12.2.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 966; /* *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 12528 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 412; /* *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 12556 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 414; /* *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 (pattern485 (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 12543 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 413; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return -1;
      return 998; /* 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 (pattern601 (x5, E_QImode) != 0
              || !
#line 255 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          *pnum_clobbers = 2;
          return 2878; /* atomic_exchangeqi */

        case E_HImode:
          if (pattern601 (x5, E_HImode) != 0
              || !
#line 255 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          *pnum_clobbers = 2;
          return 2879; /* atomic_exchangehi */

        case E_DImode:
          if (pattern601 (x5, E_DImode) != 0
              || !
#line 255 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          *pnum_clobbers = 2;
          return 2881; /* atomic_exchangedi */

        default:
          return -1;
        }

    case 19:
      x9 = XVECEXP (x5, 0, 0);
      switch (GET_CODE (x9))
        {
        case PLUS:
          switch (pattern592 (x5))
            {
            case 0:
              if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2906; /* atomic_fetch_addqi */

            case 1:
              if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2911; /* atomic_fetch_addhi */

            case 2:
              if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2921; /* atomic_fetch_adddi */

            default:
              return -1;
            }

        case MINUS:
          switch (pattern592 (x5))
            {
            case 0:
              if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2907; /* atomic_fetch_subqi */

            case 1:
              if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2912; /* atomic_fetch_subhi */

            case 2:
              if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2922; /* atomic_fetch_subdi */

            default:
              return -1;
            }

        case IOR:
          switch (pattern592 (x5))
            {
            case 0:
              if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2908; /* atomic_fetch_orqi */

            case 1:
              if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2913; /* atomic_fetch_orhi */

            case 2:
              if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2923; /* atomic_fetch_ordi */

            default:
              return -1;
            }

        case XOR:
          switch (pattern592 (x5))
            {
            case 0:
              if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2909; /* atomic_fetch_xorqi */

            case 1:
              if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2914; /* atomic_fetch_xorhi */

            case 2:
              if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2924; /* atomic_fetch_xordi */

            default:
              return -1;
            }

        case AND:
          switch (pattern592 (x5))
            {
            case 0:
              if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2910; /* atomic_fetch_andqi */

            case 1:
              if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2915; /* atomic_fetch_andhi */

            case 2:
              if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2925; /* 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 (pattern621 (x5, E_QImode) != 0
                  || !
#line 386 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2926; /* atomic_fetch_nandqi */

            case E_HImode:
              if (pattern621 (x5, E_HImode) != 0
                  || !
#line 386 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2927; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2929; /* 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 12570 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 415; /* *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 12598 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 417; /* *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 12585 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 416; /* *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 3579 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 2056; /* *neon_vswpv8qi */

    case E_V16QImode:
      if (!s_register_operand (operands[0], E_V16QImode)
          || !s_register_operand (operands[1], E_V16QImode)
          || !
#line 3579 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 2057; /* *neon_vswpv16qi */

    case E_V4HImode:
      if (!s_register_operand (operands[0], E_V4HImode)
          || !s_register_operand (operands[1], E_V4HImode)
          || !
#line 3579 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 2058; /* *neon_vswpv4hi */

    case E_V8HImode:
      if (!s_register_operand (operands[0], E_V8HImode)
          || !s_register_operand (operands[1], E_V8HImode)
          || !
#line 3579 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 2059; /* *neon_vswpv8hi */

    case E_V2SImode:
      if (!s_register_operand (operands[0], E_V2SImode)
          || !s_register_operand (operands[1], E_V2SImode)
          || !
#line 3579 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 2060; /* *neon_vswpv2si */

    case E_V4SImode:
      if (!s_register_operand (operands[0], E_V4SImode)
          || !s_register_operand (operands[1], E_V4SImode)
          || !
#line 3579 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 2061; /* *neon_vswpv4si */

    case E_V4HFmode:
      if (!s_register_operand (operands[0], E_V4HFmode)
          || !s_register_operand (operands[1], E_V4HFmode)
          || !
#line 3579 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 2062; /* *neon_vswpv4hf */

    case E_V8HFmode:
      if (!s_register_operand (operands[0], E_V8HFmode)
          || !s_register_operand (operands[1], E_V8HFmode)
          || !
#line 3579 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 2063; /* *neon_vswpv8hf */

    case E_V4BFmode:
      if (!s_register_operand (operands[0], E_V4BFmode)
          || !s_register_operand (operands[1], E_V4BFmode)
          || !
#line 3579 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 2064; /* *neon_vswpv4bf */

    case E_V8BFmode:
      if (!s_register_operand (operands[0], E_V8BFmode)
          || !s_register_operand (operands[1], E_V8BFmode)
          || !
#line 3579 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 2065; /* *neon_vswpv8bf */

    case E_V2SFmode:
      if (!s_register_operand (operands[0], E_V2SFmode)
          || !s_register_operand (operands[1], E_V2SFmode)
          || !
#line 3579 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 2066; /* *neon_vswpv2sf */

    case E_V4SFmode:
      if (!s_register_operand (operands[0], E_V4SFmode)
          || !s_register_operand (operands[1], E_V4SFmode)
          || !
#line 3579 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 2067; /* *neon_vswpv4sf */

    case E_DImode:
      if (!s_register_operand (operands[0], E_DImode)
          || !s_register_operand (operands[1], E_DImode)
          || !
#line 3579 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 2068; /* *neon_vswpdi */

    case E_V2DImode:
      if (!s_register_operand (operands[0], E_V2DImode)
          || !s_register_operand (operands[1], E_V2DImode)
          || !
#line 3579 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 2069; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                    return 987; /* *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
      || pattern293 (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 115:
          if (XINT (x4, 1) != 115)
            return -1;
          switch (GET_MODE (x8))
            {
            case E_V2SImode:
              if (!
#line 868 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 726; /* iwmmxt_tandcv2si3 */

            case E_V4HImode:
              if (!
#line 868 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 727; /* iwmmxt_tandcv4hi3 */

            case E_V8QImode:
              if (!
#line 868 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 728; /* iwmmxt_tandcv8qi3 */

            default:
              return -1;
            }

        case 116:
          if (XINT (x4, 1) != 116)
            return -1;
          switch (GET_MODE (x8))
            {
            case E_V2SImode:
              if (!
#line 878 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 729; /* iwmmxt_torcv2si3 */

            case E_V4HImode:
              if (!
#line 878 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 730; /* iwmmxt_torcv4hi3 */

            case E_V8QImode:
              if (!
#line 878 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 731; /* iwmmxt_torcv8qi3 */

            default:
              return -1;
            }

        case 117:
          if (XINT (x4, 1) != 117)
            return -1;
          switch (GET_MODE (x8))
            {
            case E_V2SImode:
              if (!
#line 888 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 732; /* iwmmxt_torvscv2si3 */

            case E_V4HImode:
              if (!
#line 888 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 733; /* iwmmxt_torvscv4hi3 */

            case E_V8QImode:
              if (!
#line 888 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 734; /* iwmmxt_torvscv8qi3 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 2:
      if (XINT (x8, 1) != 118)
        return -1;
      x10 = XVECEXP (x8, 0, 0);
      if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
          || XINT (x4, 1) != 118)
        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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 735; /* iwmmxt_textrcv2si3 */

        case E_V4HImode:
          if (!
#line 899 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 736; /* iwmmxt_textrcv4hi3 */

        case E_V8QImode:
          if (!
#line 899 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 737; /* 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 2777 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 2777 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 6008 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && ARM_Q_BIT_READ))
            return -1;
          return 235; /* arm_smlad_setq_insn */

        case 95:
          if (pattern401 (x1) != 0
              || !
#line 6008 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && ARM_Q_BIT_READ))
            return -1;
          return 237; /* arm_smladx_setq_insn */

        case 96:
          if (pattern401 (x1) != 0
              || !
#line 6008 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && ARM_Q_BIT_READ))
            return -1;
          return 239; /* arm_smlsd_setq_insn */

        case 97:
          if (pattern401 (x1) != 0
              || !
#line 6008 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && ARM_Q_BIT_READ))
            return -1;
          return 241; /* arm_smlsdx_setq_insn */

        case 616:
          switch (pattern402 (x1, 616))
            {
            case 0:
              if (!
#line 2707 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 3707; /* mve_vshlcq_sv16qi */

            case 1:
              if (!
#line 2707 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 3709; /* mve_vshlcq_sv8hi */

            case 2:
              if (!
#line 2707 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 3711; /* mve_vshlcq_sv4si */

            default:
              return -1;
            }

        case 617:
          switch (pattern402 (x1, 617))
            {
            case 0:
              if (!
#line 2707 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 3708; /* mve_vshlcq_uv16qi */

            case 1:
              if (!
#line 2707 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 3710; /* mve_vshlcq_uv8hi */

            case 2:
              if (!
#line 2707 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 3712; /* mve_vshlcq_uv4si */

            default:
              return -1;
            }

        case 1063:
          switch (pattern404 (x1, 1063))
            {
            case 0:
              if (!
#line 9127 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4829; /* mve_vdwdupq_wb_uv16qi_insn */

            case 1:
              if (!
#line 9127 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4830; /* mve_vdwdupq_wb_uv8hi_insn */

            case 2:
              if (!
#line 9127 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4831; /* mve_vdwdupq_wb_uv4si_insn */

            default:
              return -1;
            }

        case 1067:
          switch (pattern404 (x1, 1067))
            {
            case 0:
              if (!
#line 9244 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4835; /* mve_viwdupq_wb_uv16qi_insn */

            case 1:
              if (!
#line 9244 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4836; /* mve_viwdupq_wb_uv8hi_insn */

            case 2:
              if (!
#line 9244 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4837; /* mve_viwdupq_wb_uv4si_insn */

            default:
              return -1;
            }

        case 1069:
          if (pattern405 (x1, 1069, E_V4SImode) != 0
              || !
#line 9326 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4841; /* mve_vstrwq_scatter_base_wb_sv4si */

        case 1070:
          if (pattern405 (x1, 1070, E_V4SImode) != 0
              || !
#line 9326 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4842; /* mve_vstrwq_scatter_base_wb_uv4si */

        case 1073:
          if (pattern367 (x2) != 0
              || pattern509 (x1) != 0)
            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 9377 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4845; /* mve_vstrwq_scatter_base_wb_fv4sf */

        case 1075:
          if (pattern405 (x1, 1075, E_V2DImode) != 0
              || !
#line 9428 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4847; /* mve_vstrdq_scatter_base_wb_sv2di */

        case 1076:
          if (pattern405 (x1, 1076, E_V2DImode) != 0
              || !
#line 9428 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4848; /* mve_vstrdq_scatter_base_wb_uv2di */

        case 1071:
          if (pattern407 (x1, 1071, E_V4SImode) != 0
              || !
#line 9506 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4851; /* mve_vldrwq_gather_base_wb_sv4si_insn */

        case 1072:
          if (pattern407 (x1, 1072, E_V4SImode) != 0
              || !
#line 9506 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4852; /* mve_vldrwq_gather_base_wb_uv4si_insn */

        case 1074:
          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
              || pattern510 (x1) != 0
              || pattern406 (x1, E_V4SImode) != 0
              || !
#line 9614 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4855; /* mve_vldrwq_gather_base_wb_fv4sf_insn */

        case 1077:
          if (pattern407 (x1, 1077, E_V2DImode) != 0
              || !
#line 9724 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4857; /* mve_vldrdq_gather_base_wb_sv2di_insn */

        case 1078:
          if (pattern407 (x1, 1078, E_V2DImode) != 0
              || !
#line 9724 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4858; /* 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 305; /* *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 308; /* stack_protect_set_tls */

    case 4:
      x4 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x4) != SET)
        return -1;
      switch (XINT (x3, 1))
        {
        case 1066:
          switch (pattern364 (x1, PLUS))
            {
            case 0:
              if (!
#line 9006 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4820; /* mve_vidupq_m_wb_uv16qi_insn */

            case 1:
              if (!
#line 9006 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4821; /* mve_vidupq_m_wb_uv8hi_insn */

            case 2:
              if (!
#line 9006 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4822; /* mve_vidupq_m_wb_uv4si_insn */

            default:
              return -1;
            }

        case 1062:
          switch (pattern364 (x1, MINUS))
            {
            case 0:
              if (!
#line 9074 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4826; /* mve_vddupq_m_wb_uv16qi_insn */

            case 1:
              if (!
#line 9074 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4827; /* mve_vddupq_m_wb_uv8hi_insn */

            case 2:
              if (!
#line 9074 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4828; /* mve_vddupq_m_wb_uv4si_insn */

            default:
              return -1;
            }

        case 1069:
          if (pattern366 (x1, 1069, E_V4SImode, E_V4BImode) != 0
              || !
#line 9352 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4843; /* mve_vstrwq_scatter_base_wb_p_sv4si */

        case 1070:
          if (pattern366 (x1, 1070, E_V4SImode, E_V4BImode) != 0
              || !
#line 9352 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4844; /* mve_vstrwq_scatter_base_wb_p_uv4si */

        case 1073:
          if (pattern367 (x2) != 0)
            return -1;
          x5 = XEXP (x4, 1);
          if (GET_CODE (x5) != UNSPEC
              || pattern509 (x1) != 0)
            return -1;
          x6 = XVECEXP (x3, 0, 2);
          operands[3] = x6;
          if (!s_register_operand (operands[3], E_V4SFmode)
              || pattern365 (x1, E_V4SImode, E_V4BImode) != 0
              || !
#line 9403 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4846; /* mve_vstrwq_scatter_base_wb_p_fv4sf */

        case 1075:
          if (pattern366 (x1, 1075, E_V2DImode, E_HImode) != 0
              || !
#line 9454 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4849; /* mve_vstrdq_scatter_base_wb_p_sv2di */

        case 1076:
          if (pattern366 (x1, 1076, E_V2DImode, E_HImode) != 0
              || !
#line 9454 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4850; /* mve_vstrdq_scatter_base_wb_p_uv2di */

        case 1071:
          if (pattern369 (x1, 1071, E_V4SImode, E_V4BImode) != 0
              || !
#line 9562 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4853; /* mve_vldrwq_gather_base_wb_z_sv4si_insn */

        case 1072:
          if (pattern369 (x1, 1072, E_V4SImode, E_V4BImode) != 0
              || !
#line 9562 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4854; /* mve_vldrwq_gather_base_wb_z_uv4si_insn */

        case 1074:
          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
              || pattern510 (x1) != 0
              || pattern368 (x1, E_V4SImode, E_V4BImode) != 0
              || !
#line 9671 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4856; /* mve_vldrwq_gather_base_wb_z_fv4sf_insn */

        case 1077:
          if (pattern369 (x1, 1077, E_V2DImode, E_HImode) != 0
              || !
#line 9796 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4861; /* mve_vldrdq_gather_base_wb_z_sv2di_insn */

        case 1078:
          if (pattern369 (x1, 1078, E_V2DImode, E_HImode) != 0
              || !
#line 9796 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4862; /* mve_vldrdq_gather_base_wb_z_uv2di_insn */

        case 1092:
          if (pattern371 (x1, 1092) != 0
              || !
#line 9820 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4863; /* mve_vadciq_m_uv4si */

        case 1094:
          if (pattern371 (x1, 1094) != 0
              || !
#line 9820 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4864; /* mve_vadciq_m_sv4si */

        case 1080:
          if (pattern372 (x1, 1080) != 0
              || !
#line 9856 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4867; /* mve_vadcq_m_uv4si */

        case 1082:
          if (pattern372 (x1, 1082) != 0
              || !
#line 9856 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4868; /* mve_vadcq_m_sv4si */

        case 1085:
          if (pattern371 (x1, 1085) != 0
              || !
#line 9893 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4871; /* mve_vsbciq_m_uv4si */

        case 1086:
          if (pattern371 (x1, 1086) != 0
              || !
#line 9893 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4872; /* mve_vsbciq_m_sv4si */

        case 1089:
          if (pattern372 (x1, 1089) != 0
              || !
#line 9929 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4875; /* mve_vsbcq_m_uv4si */

        case 1090:
          if (pattern372 (x1, 1090) != 0
              || !
#line 9929 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4876; /* mve_vsbcq_m_sv4si */

        case 1099:
          switch (pattern374 (x1, 1099))
            {
            case 0:
              if (!
#line 10346 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4926; /* mve_vshlcq_m_sv16qi */

            case 1:
              if (!
#line 10346 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4928; /* mve_vshlcq_m_sv8hi */

            case 2:
              if (!
#line 10346 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4930; /* mve_vshlcq_m_sv4si */

            default:
              return -1;
            }

        case 1098:
          switch (pattern374 (x1, 1098))
            {
            case 0:
              if (!
#line 10346 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4927; /* mve_vshlcq_m_uv16qi */

            case 1:
              if (!
#line 10346 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4929; /* mve_vshlcq_m_uv8hi */

            case 2:
              if (!
#line 10346 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4931; /* 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 1064:
          switch (pattern648 (x1, 1064))
            {
            case 0:
              if (!
#line 9190 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4832; /* mve_vdwdupq_m_wb_uv16qi_insn */

            case 1:
              if (!
#line 9190 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4833; /* mve_vdwdupq_m_wb_uv8hi_insn */

            case 2:
              if (!
#line 9190 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4834; /* mve_vdwdupq_m_wb_uv4si_insn */

            default:
              return -1;
            }

        case 1068:
          switch (pattern648 (x1, 1068))
            {
            case 0:
              if (!
#line 9307 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4838; /* mve_viwdupq_m_wb_uv16qi_insn */

            case 1:
              if (!
#line 9307 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4839; /* mve_viwdupq_m_wb_uv8hi_insn */

            case 2:
              if (!
#line 9307 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4840; /* 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 2067 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 47; /* subsi3_compare */

    case SIGN_EXTEND:
      if (GET_MODE (x4) != E_DImode
          || pattern293 (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 1748 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 1765 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 1780 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 1748 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                    return -1;
                  return 34; /* cmpsi3_carryin_CC_Bout */

                case SET:
                  x8 = XEXP (x7, 1);
                  if (pattern599 (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 2130 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 1765 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                    return -1;
                  return 36; /* cmpsi3_imm_carryin_CC_Bout */

                case SET:
                  x8 = XEXP (x7, 1);
                  if (pattern599 (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 2147 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 1780 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 5094 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 165; /* 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 (pattern576 (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 5314 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                    return -1;
                  return 170; /* *notsi_compare0 */

                case 1:
                  if (!
#line 5325 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                    return -1;
                  return 171; /* *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 (pattern576 (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 4710 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                    return -1;
                  return 151; /* *not_shiftsi_compare0 */

                default:
                  return -1;
                }

            case 1:
              if (!
#line 4725 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 152; /* *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]
          || pattern323 (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 (pattern576 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && optimize_size))
            return -1;
          return 1045; /* *thumb2_mulsi_short_compare0 */

        case 1:
          if (!
#line 1455 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && optimize_size))
            return -1;
          return 1046; /* *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]
          || pattern323 (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 9631 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 325; /* *arith_shiftsi_compare0 */

            default:
              return -1;
            }

        case CLOBBER:
          x9 = XEXP (x7, 0);
          operands[0] = x9;
          if (!scratch_operand (operands[0], E_SImode)
              || !
#line 9648 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 326; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2962; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2963; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2964; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2965; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQEXD && ARM_DOUBLEWORD_ALIGN))
            return -1;
          return 2966; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ))
            return -1;
          return 2967; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ))
            return -1;
          return 2968; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ))
            return -1;
          return 2969; /* 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 (pattern329 (x1, pnum_clobbers))
        {
        case 0:
          if (
#line 10388 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (arm_select_dominance_cc_mode (operands[3], operands[6], DOM_CC_X_OR_Y)
       != CCmode)))
            return 340; /* *ior_scc_scc */
          break;

        case 1:
          if (
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            {
              *pnum_clobbers = 2;
              return 2932; /* atomic_or_fetchqi */
            }
          break;

        case 2:
          if (
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            {
              *pnum_clobbers = 2;
              return 2937; /* atomic_or_fetchhi */
            }
          break;

        case 3:
          if (
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            {
              *pnum_clobbers = 2;
              return 2942; /* atomic_or_fetchsi */
            }
          break;

        case 4:
          if (
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            {
              *pnum_clobbers = 2;
              return 2947; /* atomic_or_fetchdi */
            }
          break;

        default:
          break;
        }
      break;

    case AND:
      switch (pattern329 (x1, pnum_clobbers))
        {
        case 0:
          if (
#line 10450 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (arm_select_dominance_cc_mode (operands[3], operands[6], DOM_CC_X_AND_Y)
       != CCmode)))
            return 342; /* *and_scc_scc */
          if (
#line 10518 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (arm_select_dominance_cc_mode (operands[3], operands[6], DOM_CC_X_AND_Y)
       == CCmode)))
            return 344; /* *and_scc_scc_nodom */
          break;

        case 1:
          if (
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            {
              *pnum_clobbers = 2;
              return 2934; /* atomic_and_fetchqi */
            }
          break;

        case 2:
          if (
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            {
              *pnum_clobbers = 2;
              return 2939; /* atomic_and_fetchhi */
            }
          break;

        case 3:
          if (
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            {
              *pnum_clobbers = 2;
              return 2944; /* atomic_and_fetchsi */
            }
          break;

        case 4:
          if (
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            {
              *pnum_clobbers = 2;
              return 2949; /* atomic_and_fetchdi */
            }
          break;

        default:
          break;
        }
      break;

    case XOR:
      x5 = XVECEXP (x1, 0, 1);
      if (pattern330 (x5, pnum_clobbers) == 0)
        {
          x6 = XEXP (x4, 0);
          operands[1] = x6;
          switch (pattern326 (x1))
            {
            case 0:
              if (
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                {
                  *pnum_clobbers = 2;
                  return 2933; /* atomic_xor_fetchqi */
                }
              break;

            case 1:
              if (
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                {
                  *pnum_clobbers = 2;
                  return 2938; /* atomic_xor_fetchhi */
                }
              break;

            case 2:
              if (
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                {
                  *pnum_clobbers = 2;
                  return 2943; /* atomic_xor_fetchsi */
                }
              break;

            case 3:
              if (
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                {
                  *pnum_clobbers = 2;
                  return 2948; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_restrict_it))
                            return 1020; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
        return -1;
      return 1040; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
        return -1;
      return 1041; /* *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 3985 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                    return 115; /* *arm_smax_insn */
                  break;

                case SMIN:
                  if (pattern456 (x1) == 0
                      && 
#line 4374 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 132; /* 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 4035 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                    return 117; /* *arm_smin_insn */
                  break;

                case SMAX:
                  if (pattern456 (x1) == 0
                      && 
#line 4374 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 130; /* satsi_smin_setq */
                  break;

                default:
                  break;
                }
              break;

            case UMAX:
              if (pattern428 (x1) == 0
                  && 
#line 4067 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return 118; /* *arm_umaxsi3 */
              break;

            case UMIN:
              if (pattern428 (x1) == 0
                  && 
#line 4100 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return 119; /* *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 4124 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && optimize_function_for_size_p (cfun) && !arm_restrict_it))
                        return 120; /* *store_minmaxsi */
                    }
                }
            }
        }
    }
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x7 = XVECEXP (x1, 0, 1);
  if (pattern292 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return -1;
      return 990; /* *thumb2_smaxsi3 */

    case SMIN:
      if (!
#line 55 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return -1;
      return 991; /* *thumb2_sminsi3 */

    case UMAX:
      if (!
#line 76 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return -1;
      return 992; /* *thumb32_umaxsi3 */

    case UMIN:
      if (!
#line 97 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return -1;
      return 993; /* *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 (pattern331 (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-12.2.0-r0/gcc-12.2.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 1036; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && optimize_size && reload_completed))
        return -1;
      return 1044; /* *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 2500 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 2500 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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)
          || pattern290 (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 9846 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 332; /* *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
              || pattern484 (x1) != 0
              || pattern600 (x3) != 0
              || !
#line 10661 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 346; /* 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 4257 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY && ARM_Q_BIT_READ))
        return -1;
      return 124; /* arm_qadd_setq_insn */

    case SS_MINUS:
      if (pattern14 (x1) != 0
          || !
#line 4257 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY && ARM_Q_BIT_READ))
        return -1;
      return 126; /* 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 5152 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return 167; /* *arm_abssi2 */
          if (
#line 117 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
            return 994; /* *thumb2_abssi2 */
        }
      operands[2] = x12;
      if (!scratch_operand (operands[2], E_SImode)
          || !
#line 334 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 940; /* *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 5216 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return 168; /* *arm_neg_abssi2 */
              if (
#line 170 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
                return 995; /* *thumb2_neg_abssi2 */
            }
          operands[2] = x12;
          if (!scratch_operand (operands[2], E_SImode)
              || !
#line 349 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return -1;
          return 941; /* *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 10586 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return 345; /* *negscc */
          if (!
#line 899 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !TARGET_COND_ARITH))
            return -1;
          return 1022; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                return -1;
              return 938; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
                return -1;
              return 1050; /* *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 8723 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch5t && !SIBLING_CALL_P (insn)))
                {
                  *pnum_clobbers = 1;
                  return 288; /* *call_value_reg_armv5 */
                }
              if (
#line 8734 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && !arm_arch5t && !SIBLING_CALL_P (insn)))
                {
                  *pnum_clobbers = 1;
                  return 289; /* *call_value_reg_arm */
                }
            }
          if (
#line 8774 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 291; /* *call_value_symbol */
            }
          if (register_operand (operands[1], E_SImode))
            {
              if (
#line 1850 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && arm_arch5t))
                {
                  *pnum_clobbers = 1;
                  return 977; /* *call_value_reg_thumb1_v5 */
                }
              if (
#line 1876 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && !arm_arch5t))
                {
                  *pnum_clobbers = 1;
                  return 979; /* *call_value_reg_thumb1 */
                }
            }
          if (
#line 1910 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 981; /* *call_value_insn */
            }
          if (!register_operand (operands[1], E_SImode)
              || !
#line 569 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
            return -1;
          *pnum_clobbers = 1;
          return 1011; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && use_cmse))
                {
                  *pnum_clobbers = 1;
                  return 978; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && use_cmse && TARGET_HAVE_FPCXT_CMSE))
                {
                  *pnum_clobbers = 1;
                  return 1012; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && use_cmse && !TARGET_HAVE_FPCXT_CMSE))
            return -1;
          *pnum_clobbers = 1;
          return 1013; /* *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 (pattern331 (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 11733 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      return 378; /* *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 (pattern292 (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 11751 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 379; /* *not_signextract_onebit */

        case REG:
          operands[1] = x6;
          if (!low_register_operand (operands[1], E_SImode))
            return -1;
          x5 = XVECEXP (x1, 0, 1);
          if (pattern292 (x5) != 0
              || !low_register_operand (operands[0], E_SImode)
              || GET_MODE (x3) != E_SImode
              || !
#line 1512 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
            return -1;
          return 1049; /* *thumb2_one_cmplsi2_short */

        case AND:
          x5 = XVECEXP (x1, 0, 1);
          if (pattern330 (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 (pattern558 (x1))
            {
            case 0:
              if (!
#line 437 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 2;
              return 2950; /* atomic_nand_fetchqi */

            case 1:
              if (!
#line 437 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 2;
              return 2951; /* atomic_nand_fetchhi */

            case 2:
              if (!
#line 437 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 2;
              return 2952; /* atomic_nand_fetchsi */

            case 3:
              if (!
#line 437 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 2;
              return 2953; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldrdstrd.md"
(TARGET_LDRD && TARGET_ARM && reload_completed
  && valid_operands_ldrd_strd (operands, true)))
                        return 424; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldrdstrd.md"
(TARGET_LDRD && TARGET_ARM && reload_completed
  && valid_operands_ldrd_strd (operands, false)))
        return -1;
      return 425; /* *arm_strd */

    case CONST_DOUBLE:
      switch (pattern16 (x1))
        {
        case 0:
          if (!
#line 2142 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 910; /* no_literal_pool_df_immediate */

        case 1:
          if (!
#line 2168 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(arm_disable_literal_pool
   && TARGET_VFP_BASE
   && !vfp3_const_double_rtx (operands[1])))
            return -1;
          return 911; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 946; /* thumb1_extendhisi2 */

    case CONST_INT:
      operands[1] = x3;
      x5 = XVECEXP (x1, 0, 1);
      if (pattern292 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
            return -1;
          return 1037; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
            return -1;
          return 1038; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
            return -1;
          return 1039; /* *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 8611 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch5t && !SIBLING_CALL_P (insn)))
                {
                  *pnum_clobbers = 1;
                  return 286; /* *call_reg_armv5 */
                }
              if (
#line 8621 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && !arm_arch5t && !SIBLING_CALL_P (insn)))
                {
                  *pnum_clobbers = 1;
                  return 287; /* *call_reg_arm */
                }
            }
          if (
#line 8750 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 290; /* *call_symbol */
            }
          if (register_operand (operands[0], E_SImode))
            {
              if (
#line 1806 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && arm_arch5t && !SIBLING_CALL_P (insn)))
                {
                  *pnum_clobbers = 1;
                  return 974; /* *call_reg_thumb1_v5 */
                }
              if (
#line 1829 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && !arm_arch5t && !SIBLING_CALL_P (insn)))
                {
                  *pnum_clobbers = 1;
                  return 976; /* *call_reg_thumb1 */
                }
            }
          if (
#line 1896 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 980; /* *call_insn */
            }
          if (!s_register_operand (operands[0], E_SImode)
              || !
#line 534 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
            return -1;
          *pnum_clobbers = 1;
          return 1008; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && use_cmse && !SIBLING_CALL_P (insn)))
                {
                  *pnum_clobbers = 1;
                  return 975; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && use_cmse && TARGET_HAVE_FPCXT_CMSE))
                {
                  *pnum_clobbers = 1;
                  return 1009; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && use_cmse && !TARGET_HAVE_FPCXT_CMSE))
            return -1;
          *pnum_clobbers = 1;
          return 1010; /* *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 11912 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && (reload_in_progress || reload_completed)))
        return -1;
      return 385; /* *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 12171 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return 400; /* arm_eh_return */
              if (
#line 2032 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                return 988; /* thumb_eh_return */
              if (!
#line 1239 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
                return -1;
              return 1034; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && TARGET_HAVE_FPCXT_CMSE && use_cmse))
                return -1;
              return 1053; /* *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 12804 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_MCR)))
                return -1;
              return 494; /* arm_mcr */

            case 42:
              if (!
#line 12804 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_MCR2)))
                return -1;
              return 495; /* 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 12841 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_MCRR)))
                return -1;
              return 498; /* arm_mcrr */

            case 46:
              if (!
#line 12841 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_MCRR2)))
                return -1;
              return 499; /* 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 (pattern303 (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 9491 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
    return -1;
  return 310; /* *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 (pattern511 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
    return -1;
  return 964; /* *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
      || pattern375 (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]
      || pattern512 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_32BIT && TARGET_HAVE_LOB))
    return -1;
  return 1058; /* *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 (pattern352 (x6, E_SImode, 14) != 0)
                return -1;
              x7 = XEXP (x5, 0);
              operands[2] = x7;
              if (s_register_operand (operands[0], E_SImode))
                {
                  if (
#line 8611 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch5t && !SIBLING_CALL_P (insn)))
                    return 286; /* *call_reg_armv5 */
                  if (
#line 8621 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && !arm_arch5t && !SIBLING_CALL_P (insn)))
                    return 287; /* *call_reg_arm */
                }
              if (
#line 8750 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 290; /* *call_symbol */
              if (register_operand (operands[0], E_SImode))
                {
                  if (
#line 1806 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && arm_arch5t && !SIBLING_CALL_P (insn)))
                    return 974; /* *call_reg_thumb1_v5 */
                  if (
#line 1829 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && !arm_arch5t && !SIBLING_CALL_P (insn)))
                    return 976; /* *call_reg_thumb1 */
                }
              if (
#line 1896 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 980; /* *call_insn */
              if (!s_register_operand (operands[0], E_SImode)
                  || !
#line 534 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
                return -1;
              return 1008; /* *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 8863 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && SIBLING_CALL_P (insn)))
                return -1;
              return 292; /* *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 (pattern352 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && use_cmse && !SIBLING_CALL_P (insn)))
                return 975; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && use_cmse && TARGET_HAVE_FPCXT_CMSE))
                return 1009; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && use_cmse && !TARGET_HAVE_FPCXT_CMSE))
            return -1;
          return 1010; /* *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 (pattern352 (x6, E_SImode, 14) != 0)
                    return -1;
                  x7 = XEXP (x5, 0);
                  operands[3] = x7;
                  if (s_register_operand (operands[1], E_SImode))
                    {
                      if (
#line 8723 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch5t && !SIBLING_CALL_P (insn)))
                        return 288; /* *call_value_reg_armv5 */
                      if (
#line 8734 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && !arm_arch5t && !SIBLING_CALL_P (insn)))
                        return 289; /* *call_value_reg_arm */
                    }
                  if (
#line 8774 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 291; /* *call_value_symbol */
                  if (register_operand (operands[1], E_SImode))
                    {
                      if (
#line 1850 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && arm_arch5t))
                        return 977; /* *call_value_reg_thumb1_v5 */
                      if (
#line 1876 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && !arm_arch5t))
                        return 979; /* *call_value_reg_thumb1 */
                    }
                  if (
#line 1910 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 981; /* *call_value_insn */
                  if (!register_operand (operands[1], E_SImode)
                      || !
#line 569 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
                    return -1;
                  return 1011; /* *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 8884 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && SIBLING_CALL_P (insn)))
                    return -1;
                  return 293; /* *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 (pattern352 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && use_cmse))
                    return 978; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && use_cmse && TARGET_HAVE_FPCXT_CMSE))
                    return 1012; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && use_cmse && !TARGET_HAVE_FPCXT_CMSE))
                return -1;
              return 1013; /* *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 (pattern321 (x4) != 0
                  || pattern486 (x1) != 0)
                return -1;
              return 304; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                return -1;
              return 982; /* 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
              || pattern324 (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 9356 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                        return 307; /* 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 309; /* 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
                  || pattern375 (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-12.2.0-r0/gcc-12.2.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 965; /* *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 (pattern298 (x1))
            {
            case 0:
              if (!(
#line 204 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_32BIT)))
                return -1;
              *pnum_clobbers = 1;
              return 2870; /* atomic_compare_and_swap32qi_1 */

            case 1:
              if (!(
#line 204 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_32BIT)))
                return -1;
              *pnum_clobbers = 1;
              return 2871; /* atomic_compare_and_swap32hi_1 */

            case 2:
              if (!(
#line 204 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_THUMB1)))
                return -1;
              *pnum_clobbers = 1;
              return 2872; /* atomic_compare_and_swapt1qi_1 */

            case 3:
              if (!(
#line 204 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_THUMB1)))
                return -1;
              *pnum_clobbers = 1;
              return 2873; /* atomic_compare_and_swapt1hi_1 */

            case 4:
              if (!(
#line 235 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_32BIT)))
                return -1;
              *pnum_clobbers = 1;
              return 2874; /* atomic_compare_and_swap32si_1 */

            case 5:
              if (!(
#line 235 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_32BIT)))
                return -1;
              *pnum_clobbers = 1;
              return 2875; /* atomic_compare_and_swap32di_1 */

            case 6:
              if (!(
#line 235 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_THUMB1)))
                return -1;
              *pnum_clobbers = 1;
              return 2876; /* atomic_compare_and_swapt1si_1 */

            case 7:
              if (!(
#line 235 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_THUMB1)))
                return -1;
              *pnum_clobbers = 1;
              return 2877; /* 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 306; /* *stack_protect_combined_test_insn */

        case LEU:
          if (pattern303 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !flag_pic))
            return -1;
          return 1030; /* *thumb2_casesi_internal */

        default:
          return -1;
        }

    case UNSPEC:
      if (XINT (x3, 1) != 17
          || pattern293 (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 12222 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_SOFT_TP && !TARGET_FDPIC))
            return -1;
          return 404; /* 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 12237 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_GNU2_TLS))
            return -1;
          return 405; /* tlscall */

        default:
          return -1;
        }

    case MEM:
      if (pnum_clobbers != NULL
          && pattern26 (x1) == 0
          && pattern643 (x1) == 0
          && pattern653 (x1) == 0
          && 
#line 1027 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        {
          *pnum_clobbers = 2;
          return 956; /* cpymem8b */
        }
      operands[1] = x3;
      if (pattern295 (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 (pattern601 (x28, E_QImode) != 0
              || !
#line 255 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2878; /* atomic_exchangeqi */

        case E_HImode:
          if (pattern601 (x28, E_HImode) != 0
              || !
#line 255 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2879; /* atomic_exchangehi */

        case E_DImode:
          if (pattern601 (x28, E_DImode) != 0
              || !
#line 255 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2881; /* atomic_exchangedi */

        default:
          return -1;
        }

    case UNSPEC_VOLATILE:
      x13 = XVECEXP (x1, 0, 3);
      if (GET_CODE (x13) != CLOBBER)
        return -1;
      switch (pattern302 (x1))
        {
        case 0:
          if (!(
#line 204 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_32BIT)))
            return -1;
          return 2870; /* atomic_compare_and_swap32qi_1 */

        case 1:
          if (!(
#line 204 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_32BIT)))
            return -1;
          return 2871; /* atomic_compare_and_swap32hi_1 */

        case 2:
          if (!(
#line 204 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_THUMB1)))
            return -1;
          return 2872; /* atomic_compare_and_swapt1qi_1 */

        case 3:
          if (!(
#line 204 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_THUMB1)))
            return -1;
          return 2873; /* atomic_compare_and_swapt1hi_1 */

        case 4:
          if (!(
#line 235 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_32BIT)))
            return -1;
          return 2874; /* atomic_compare_and_swap32si_1 */

        case 5:
          if (!(
#line 235 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_32BIT)))
            return -1;
          return 2875; /* atomic_compare_and_swap32di_1 */

        case 6:
          if (!(
#line 235 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_THUMB1)))
            return -1;
          return 2876; /* atomic_compare_and_swapt1si_1 */

        case 7:
          if (!(
#line 235 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_THUMB1)))
            return -1;
          return 2877; /* atomic_compare_and_swapt1di_1 */

        case 8:
          if (!
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2882; /* atomic_addqi */

        case 9:
          if (!
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2887; /* atomic_addhi */

        case 10:
          if (!
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2892; /* atomic_addsi */

        case 11:
          if (!
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2897; /* atomic_adddi */

        case 12:
          if (!
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2883; /* atomic_subqi */

        case 13:
          if (!
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2888; /* atomic_subhi */

        case 14:
          if (!
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2893; /* atomic_subsi */

        case 15:
          if (!
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2898; /* atomic_subdi */

        case 16:
          if (!
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2884; /* atomic_orqi */

        case 17:
          if (!
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2889; /* atomic_orhi */

        case 18:
          if (!
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2894; /* atomic_orsi */

        case 19:
          if (!
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2899; /* atomic_ordi */

        case 20:
          if (!
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2885; /* atomic_xorqi */

        case 21:
          if (!
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2890; /* atomic_xorhi */

        case 22:
          if (!
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2895; /* atomic_xorsi */

        case 23:
          if (!
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2900; /* atomic_xordi */

        case 24:
          if (!
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2886; /* atomic_andqi */

        case 25:
          if (!
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2891; /* atomic_andhi */

        case 26:
          if (!
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2896; /* atomic_andsi */

        case 27:
          if (!
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2901; /* atomic_anddi */

        case 28:
          if (!
#line 320 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2902; /* atomic_nandqi */

        case 29:
          if (!
#line 320 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2903; /* atomic_nandhi */

        case 30:
          if (!
#line 320 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2904; /* atomic_nandsi */

        case 31:
          if (!
#line 320 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2905; /* atomic_nanddi */

        default:
          return -1;
        }

    case PLUS:
      switch (pattern23 (x1))
        {
        case 0:
          if (!
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2930; /* atomic_add_fetchqi */

        case 1:
          if (!
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2935; /* atomic_add_fetchhi */

        case 2:
          if (!
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2940; /* atomic_add_fetchsi */

        case 3:
          if (!
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2945; /* atomic_add_fetchdi */

        default:
          return -1;
        }

    case MINUS:
      switch (pattern23 (x1))
        {
        case 0:
          if (!
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2931; /* atomic_sub_fetchqi */

        case 1:
          if (!
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2936; /* atomic_sub_fetchhi */

        case 2:
          if (!
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2941; /* atomic_sub_fetchsi */

        case 3:
          if (!
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2946; /* atomic_sub_fetchdi */

        default:
          return -1;
        }

    case IOR:
      switch (pattern23 (x1))
        {
        case 0:
          if (!
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2932; /* atomic_or_fetchqi */

        case 1:
          if (!
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2937; /* atomic_or_fetchhi */

        case 2:
          if (!
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2942; /* atomic_or_fetchsi */

        case 3:
          if (!
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2947; /* atomic_or_fetchdi */

        default:
          return -1;
        }

    case XOR:
      switch (pattern23 (x1))
        {
        case 0:
          if (!
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2933; /* atomic_xor_fetchqi */

        case 1:
          if (!
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2938; /* atomic_xor_fetchhi */

        case 2:
          if (!
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2943; /* atomic_xor_fetchsi */

        case 3:
          if (!
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2948; /* atomic_xor_fetchdi */

        default:
          return -1;
        }

    case AND:
      switch (pattern23 (x1))
        {
        case 0:
          if (!
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2934; /* atomic_and_fetchqi */

        case 1:
          if (!
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2939; /* atomic_and_fetchhi */

        case 2:
          if (!
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2944; /* atomic_and_fetchsi */

        case 3:
          if (!
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2949; /* atomic_and_fetchdi */

        default:
          return -1;
        }

    case NOT:
      x8 = XEXP (x3, 0);
      if (GET_CODE (x8) != AND
          || pattern295 (x1, 19, 3) != 0)
        return -1;
      switch (pattern559 (x1))
        {
        case 0:
          if (!
#line 437 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2950; /* atomic_nand_fetchqi */

        case 1:
          if (!
#line 437 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2951; /* atomic_nand_fetchhi */

        case 2:
          if (!
#line 437 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2952; /* atomic_nand_fetchsi */

        case 3:
          if (!
#line 437 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2953; /* atomic_nand_fetchdi */

        default:
          return -1;
        }

    case SS_MULT:
      if (pattern24 (x1, E_SAmode) != 0
          || !
#line 264 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT && arm_arch6 && !ARM_Q_BIT_READ))
        return -1;
      return 3024; /* *arm_ssmulsa3 */

    case US_MULT:
      if (pattern24 (x1, E_USAmode) != 0
          || !
#line 336 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT && arm_arch6 && !ARM_Q_BIT_READ))
        return -1;
      return 3025; /* *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]
          || pattern293 (x1, CLOBBER, E_SImode, 0) != 0
          || pattern512 (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 12210 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_SOFT_TP && TARGET_FDPIC))
        return -1;
      return 403; /* load_tp_soft_fdpic */

    case MEM:
      if (pnum_clobbers != NULL
          && pattern25 (x1) == 0
          && pattern655 (x1) == 0
          && pattern667 (x1) == 0
          && 
#line 1008 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        {
          *pnum_clobbers = 3;
          return 955; /* cpymem12b */
        }
      operands[1] = x3;
      if (pattern13 (x1) != 0)
        return -1;
      switch (pattern590 (x1))
        {
        case 0:
          x9 = XVECEXP (x1, 0, 1);
          x10 = XEXP (x9, 1);
          switch (pattern635 (x10))
            {
            case 0:
              if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2906; /* atomic_fetch_addqi */

            case 1:
              if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2911; /* atomic_fetch_addhi */

            case 2:
              if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2921; /* atomic_fetch_adddi */

            default:
              return -1;
            }

        case 1:
          x9 = XVECEXP (x1, 0, 1);
          x10 = XEXP (x9, 1);
          switch (pattern635 (x10))
            {
            case 0:
              if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2907; /* atomic_fetch_subqi */

            case 1:
              if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2912; /* atomic_fetch_subhi */

            case 2:
              if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2922; /* atomic_fetch_subdi */

            default:
              return -1;
            }

        case 2:
          x9 = XVECEXP (x1, 0, 1);
          x10 = XEXP (x9, 1);
          switch (pattern635 (x10))
            {
            case 0:
              if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2908; /* atomic_fetch_orqi */

            case 1:
              if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2913; /* atomic_fetch_orhi */

            case 2:
              if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2923; /* atomic_fetch_ordi */

            default:
              return -1;
            }

        case 3:
          x9 = XVECEXP (x1, 0, 1);
          x10 = XEXP (x9, 1);
          switch (pattern635 (x10))
            {
            case 0:
              if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2909; /* atomic_fetch_xorqi */

            case 1:
              if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2914; /* atomic_fetch_xorhi */

            case 2:
              if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2924; /* atomic_fetch_xordi */

            default:
              return -1;
            }

        case 4:
          x9 = XVECEXP (x1, 0, 1);
          x10 = XEXP (x9, 1);
          switch (pattern635 (x10))
            {
            case 0:
              if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2910; /* atomic_fetch_andqi */

            case 1:
              if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2915; /* atomic_fetch_andhi */

            case 2:
              if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2925; /* 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 (pattern641 (x10, E_QImode) != 0
                  || !
#line 386 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2926; /* atomic_fetch_nandqi */

            case E_HImode:
              if (pattern641 (x10, E_HImode) != 0
                  || !
#line 386 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2927; /* atomic_fetch_nandhi */

            case E_DImode:
              if (pattern642 (x10) != 0
                  || !
#line 386 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2929; /* atomic_fetch_nanddi */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case IF_THEN_ELSE:
      x15 = XEXP (x3, 0);
      if (GET_CODE (x15) != LEU
          || pattern303 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && flag_pic))
        return -1;
      return 1031; /* *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
      || pattern655 (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)
      || pattern667 (x1) != 0
      || !
#line 1008 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
    return -1;
  return 955; /* 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
      || pattern643 (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)
      || pattern653 (x1) != 0
      || !
#line 1027 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
    return -1;
  return 956; /* 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 380; /* *push_multi */
          if (!vfp_register_operand (operands[1], E_DFmode)
              || !memory_operand (operands[0], E_BLKmode)
              || !
#line 2026 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_VFP_BASE))
            return -1;
          return 873; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && TARGET_HAVE_FPCXT_CMSE && use_cmse && reload_completed))
            return -1;
          return 1054; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HAVE_FPCXT_CMSE && use_cmse && reload_completed))
        return -1;
      return 841; /* *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 11834 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && (reload_in_progress || reload_completed)))
                                return 382; /* *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 11925 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && TARGET_VFP_BASE))
            return -1;
          return 386; /* *vfp_pop_multiple_with_writeback */

        case MEM:
          if (pattern332 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 2))
            return -1;
          return 475; /* *ldm2_da */

        case REG:
          if (pattern333 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 2))
            return -1;
          return 477; /* *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 11890 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && (reload_in_progress || reload_completed)))
        return -1;
      return 384; /* *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 11867 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && (reload_in_progress || reload_completed)))
        return -1;
      return 383; /* *pop_multiple_with_writeback_and_return */

    case SET:
      x12 = XEXP (x4, 1);
      switch (GET_CODE (x12))
        {
        case MEM:
          if (pattern332 (x12, -8) != 0)
            return -1;
          x5 = XEXP (x2, 1);
          if (pattern485 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3))
            return -1;
          return 456; /* *ldm3_da */

        case REG:
          if (pattern333 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3))
            return -1;
          return 458; /* *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 (pattern529 (x2))
                {
                case 0:
                  x6 = XEXP (x3, 1);
                  if (pattern530 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3))
                        return 466; /* *ldm2_ia_update */
                      if (!low_register_operand (operands[1], E_SImode)
                          || !low_register_operand (operands[2], E_SImode)
                          || !
#line 894 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_THUMB1 && XVECLEN (operands[0], 0) == 3))
                        return -1;
                      return 467; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3))
                        return -1;
                      return 472; /* *ldm2_ib_update */

                    default:
                      return -1;
                    }

                case 1:
                  x9 = XEXP (x3, 0);
                  if (pattern593 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3))
                        return 469; /* *stm2_ia_update */
                      if (!low_register_operand (operands[1], E_SImode)
                          || !low_register_operand (operands[2], E_SImode)
                          || !
#line 930 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_THUMB1 && XVECLEN (operands[0], 0) == 3))
                        return -1;
                      return 470; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3))
                        return -1;
                      return 474; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3))
                        return -1;
                      return 476; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3))
                        return -1;
                      return 480; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3))
                        return -1;
                      return 478; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3))
                        return -1;
                      return 482; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4))
            return 426; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_THUMB1 && XVECLEN (operands[0], 0) == 4))
            return -1;
          return 427; /* *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 (pattern659 (x19, 16) != 0
                  || !
#line 160 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4))
                return -1;
              return 433; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4))
                return -1;
              return 437; /* *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 (pattern659 (x19, -4) != 0
                  || !
#line 302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4))
                return -1;
              return 441; /* *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
          || pattern514 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4))
            return -1;
          return 430; /* *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 (pattern660 (x31, 16) != 0
                  || !
#line 196 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4))
                return -1;
              return 435; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4))
                return -1;
              return 439; /* *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 (pattern660 (x31, -4) != 0
                  || !
#line 338 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4))
                return -1;
              return 443; /* *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 (pattern529 (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 (pattern649 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4))
                    return 447; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_THUMB1 && XVECLEN (operands[0], 0) == 4))
                    return -1;
                  return 448; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4))
                    return -1;
                  return 453; /* *ldm3_ib_update */

                default:
                  return -1;
                }

            case 1:
              if (pattern513 (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 (pattern651 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4))
                    return 450; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_THUMB1 && XVECLEN (operands[0], 0) == 4))
                    return -1;
                  return 451; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4))
                    return -1;
                  return 455; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4))
                    return -1;
                  return 457; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4))
                    return -1;
                  return 461; /* *ldm3_db_update */

                default:
                  return -1;
                }

            case REG:
              operands[1] = x7;
              if (!arm_hard_general_register_operand (operands[1], E_SImode)
                  || pattern514 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4))
                    return -1;
                  return 459; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4))
                    return -1;
                  return 463; /* *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 (pattern529 (x5))
        {
        case 0:
          if (pattern602 (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 (pattern649 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 5))
                return 428; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_THUMB1 && XVECLEN (operands[0], 0) == 5))
                return -1;
              return 429; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 5))
                return -1;
              return 434; /* *ldm4_ib_update */

            default:
              return -1;
            }

        case 1:
          if (pattern612 (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 (pattern651 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 5))
                return 431; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_THUMB1 && XVECLEN (operands[0], 0) == 5))
                return -1;
              return 432; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 5))
                return -1;
              return 436; /* *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
              || pattern602 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 5))
                return -1;
              return 438; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 5))
                return -1;
              return 442; /* *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
              || pattern612 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 5))
                return -1;
              return 440; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 5))
                return -1;
              return 444; /* *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 (pattern530 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3))
            return 445; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_THUMB1 && XVECLEN (operands[0], 0) == 3))
            return -1;
          return 446; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3))
                return -1;
              return 452; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3))
                return -1;
              return 460; /* *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 (pattern593 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3))
            return -1;
          return 449; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3))
                return -1;
              return 454; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3))
                return -1;
              return 462; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 2))
            return 464; /* *ldm2_ */
          if (!low_register_operand (operands[1], E_SImode)
              || !low_register_operand (operands[2], E_SImode)
              || !
#line 867 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_THUMB1 && XVECLEN (operands[0], 0) == 2))
            return -1;
          return 465; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 2))
                return -1;
              return 471; /* *ldm2_ib */

            case -8L:
              x10 = XEXP (x9, 1);
              if (XWINT (x10, 0) != -4L
                  || !
#line 1044 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 2))
                return -1;
              return 479; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 2))
            return -1;
          return 468; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 2))
                return -1;
              return 473; /* *stm2_ib */

            case -8L:
              x16 = XEXP (x15, 1);
              if (XWINT (x16, 0) != -4L
                  || !
#line 1070 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 2))
                return -1;
              return 481; /* *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 2318 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && !arm_arch6))
    {
      *pnum_clobbers = 1;
      return 61; /* *mulsi_compare0_scratch */
    }
  if (!
#line 2331 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 4682 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      *pnum_clobbers = 1;
      return 149; /* *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 7808 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 270; /* *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 5729 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 178; /* *compareqi_eq0 */

    case E_DImode:
      if (pnum_clobbers == NULL
          || !s_register_operand (operands[0], E_DImode)
          || !
#line 1688 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      *pnum_clobbers = 1;
      return 967; /* *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 (pattern398 (x2, E_CCFPmode))
            {
            case 0:
              if (!
#line 1749 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
                return -1;
              return 844; /* *cmpsf_split_vfp */

            case 1:
              if (!
#line 1779 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
                return -1;
              return 846; /* *cmpdf_split_vfp */

            default:
              return -1;
            }

        case E_CCFPEmode:
          switch (pattern398 (x2, E_CCFPEmode))
            {
            case 0:
              if (!
#line 1764 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
                return -1;
              return 845; /* *cmpsf_trap_split_vfp */

            case 1:
              if (!
#line 1794 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
                return -1;
              return 847; /* *cmpdf_trap_split_vfp */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 101:
      switch (GET_MODE (x4))
        {
        case E_CCFPmode:
          switch (pattern398 (x2, E_CCFPmode))
            {
            case 0:
              if (!
#line 1815 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
                return -1;
              return 848; /* *cmpsf_vfp */

            case 1:
              if (!
#line 1839 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
                return -1;
              return 850; /* *cmpdf_vfp */

            default:
              return -1;
            }

        case E_CCFPEmode:
          switch (pattern398 (x2, E_CCFPEmode))
            {
            case 0:
              if (!
#line 1827 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
                return -1;
              return 849; /* *cmpsf_trap_vfp */

            case 1:
              if (!
#line 1851 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
                return -1;
              return 851; /* *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
              || pattern487 (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 992 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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)
              || pattern487 (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 1049 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 2113 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 1127 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return 14; /* *addsi3_compare0_scratch */
              if (
#line 1403 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
                return 1043; /* *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 1278 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 1301 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 2113 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 2380 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && !arm_arch6))
        {
          *pnum_clobbers = 1;
          return 65; /* *mulsi3addsi_compare0_scratch */
        }
      if (!
#line 2395 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 3055 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 3534 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          *pnum_clobbers = 1;
          return 102; /* 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 3588 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          *pnum_clobbers = 1;
          return 105; /* *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 (pattern377 (x1) != 0
          || !
#line 10224 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 338; /* *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 3694 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      *pnum_clobbers = 1;
      return 108; /* *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 (pattern377 (x1) != 0
          || !
#line 10309 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 339; /* *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 9696 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
    return -1;
  *pnum_clobbers = 1;
  return 329; /* *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 2246 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 555; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4HI_ARITH))
            return -1;
          return 1156; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return 694; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V2SI_ARITH))
            return -1;
          return 1158; /* *mulv2si3_neon */

        case E_HFmode:
          if (pattern334 (x2, E_HFmode) != 0
              || !
#line 1103 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 787; /* mulhf3 */

        case E_SFmode:
          if (pattern334 (x2, E_SFmode) != 0
              || !
#line 1113 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
            return -1;
          return 788; /* *mulsf3_vfp */

        case E_DFmode:
          if (pattern334 (x2, E_DFmode) != 0
              || !
#line 1123 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
            return -1;
          return 789; /* *muldf3_vfp */

        case E_V8QImode:
          if (pattern334 (x2, E_V8QImode) != 0
              || !
#line 494 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V8QI_ARITH))
            return -1;
          return 1154; /* *mulv8qi3_neon */

        case E_V16QImode:
          if (pattern334 (x2, E_V16QImode) != 0)
            return -1;
          if (
#line 494 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V16QI_ARITH))
            return 1155; /* *mulv16qi3_neon */
          if (!
#line 1392 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3401; /* mve_vmulqv16qi */

        case E_V8HImode:
          if (pattern334 (x2, E_V8HImode) != 0)
            return -1;
          if (
#line 494 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V8HI_ARITH))
            return 1157; /* *mulv8hi3_neon */
          if (!
#line 1392 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3402; /* mve_vmulqv8hi */

        case E_V4SImode:
          if (pattern334 (x2, E_V4SImode) != 0)
            return -1;
          if (
#line 494 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4SI_ARITH))
            return 1159; /* *mulv4si3_neon */
          if (!
#line 1392 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3403; /* mve_vmulqv4si */

        case E_V2SFmode:
          if (pattern334 (x2, E_V2SFmode) != 0
              || !
#line 494 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V2SF_ARITH))
            return -1;
          return 1160; /* *mulv2sf3_neon */

        case E_V4SFmode:
          if (pattern334 (x2, E_V4SFmode) != 0)
            return -1;
          if (
#line 494 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4SF_ARITH))
            return 1161; /* *mulv4sf3_neon */
          if (!
#line 2226 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3629; /* mve_vmulq_fv4sf */

        case E_V8HFmode:
          if (pattern334 (x2, E_V8HFmode) != 0)
            return -1;
          if (
#line 1571 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return 1507; /* neon_vmulfv8hf */
          if (!
#line 2226 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3628; /* mve_vmulq_fv8hf */

        case E_V4HFmode:
          if (pattern334 (x2, E_V4HFmode) != 0
              || !
#line 1571 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1508; /* 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 (pattern274 (x2, E_SImode, E_HImode) != 0
                      || !s_register_operand (operands[2], E_HImode)
                      || !
#line 2513 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY))
                    return -1;
                  return 73; /* mulhisi3 */

                case E_V8HImode:
                  if (pattern460 (x2, E_V8QImode, E_V8HImode) != 0
                      || !
#line 6193 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 2795; /* neon_vec_smult_v8qi */

                case E_V4SImode:
                  if (pattern460 (x2, E_V4HImode, E_V4SImode) != 0
                      || !
#line 6193 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 2797; /* neon_vec_smult_v4hi */

                case E_V2DImode:
                  if (pattern460 (x2, E_V2SImode, E_V2DImode) != 0
                      || !
#line 6193 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 2799; /* 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]
                  || !s_register_operand (operands[0], E_SImode)
                  || GET_MODE (x2) != E_SImode
                  || GET_MODE (x3) != E_SImode
                  || !s_register_operand (operands[1], E_HImode))
                return -1;
              x6 = XEXP (x4, 0);
              operands[2] = x6;
              if (!s_register_operand (operands[2], E_SImode)
                  || !
#line 2539 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 (pattern379 (x2))
            {
            case 0:
              if (vect_par_constant_low (operands[2], E_V16QImode)
                  && 
#line 6053 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
                return 2771; /* neon_vec_smult_lo_v16qi */
              if (!vect_par_constant_high (operands[2], E_V16QImode)
                  || !
#line 6087 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
                return -1;
              return 2777; /* neon_vec_smult_hi_v16qi */

            case 1:
              if (vect_par_constant_low (operands[2], E_V8HImode)
                  && 
#line 6053 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
                return 2773; /* neon_vec_smult_lo_v8hi */
              if (!vect_par_constant_high (operands[2], E_V8HImode)
                  || !
#line 6087 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
                return -1;
              return 2779; /* neon_vec_smult_hi_v8hi */

            case 2:
              if (vect_par_constant_low (operands[2], E_V4SImode)
                  && 
#line 6053 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
                return 2775; /* neon_vec_smult_lo_v4si */
              if (!vect_par_constant_high (operands[2], E_V4SImode)
                  || !
#line 6087 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
                return -1;
              return 2781; /* neon_vec_smult_hi_v4si */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case ASHIFTRT:
      if (pattern304 (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 2526 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 2553 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST && !flag_rounding_math))
            return -1;
          return 790; /* *mulsf3neghf_vfp */

        case E_SFmode:
          if (pattern409 (x2, E_SFmode) != 0
              || !
#line 1153 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && !flag_rounding_math))
            return -1;
          return 792; /* *mulsf3negsf_vfp */

        case E_DFmode:
          if (pattern409 (x2, E_DFmode) != 0
              || !
#line 1173 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE
  && !flag_rounding_math))
            return -1;
          return 794; /* *muldf3negdf_vfp */

        default:
          return -1;
        }

    case UNSIGNED_FLOAT:
      switch (pattern305 (x2))
        {
        case 0:
          if (!
#line 1865 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP3 && !flag_rounding_math))
            return -1;
          return 852; /* *combine_vcvt_f32_u32 */

        case 1:
          if (!
#line 1878 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP3 && !flag_rounding_math
  && !TARGET_VFP_SINGLE))
            return -1;
          return 854; /* *combine_vcvt_f64_u32 */

        default:
          return -1;
        }

    case FLOAT:
      switch (pattern305 (x2))
        {
        case 0:
          if (!
#line 1865 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP3 && !flag_rounding_math))
            return -1;
          return 853; /* *combine_vcvt_f32_s32 */

        case 1:
          if (!
#line 1878 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP3 && !flag_rounding_math
  && !TARGET_VFP_SINGLE))
            return -1;
          return 855; /* *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 (pattern379 (x2))
            {
            case 0:
              if (vect_par_constant_low (operands[2], E_V16QImode)
                  && 
#line 6053 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
                return 2772; /* neon_vec_umult_lo_v16qi */
              if (!vect_par_constant_high (operands[2], E_V16QImode)
                  || !
#line 6087 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
                return -1;
              return 2778; /* neon_vec_umult_hi_v16qi */

            case 1:
              if (vect_par_constant_low (operands[2], E_V8HImode)
                  && 
#line 6053 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
                return 2774; /* neon_vec_umult_lo_v8hi */
              if (!vect_par_constant_high (operands[2], E_V8HImode)
                  || !
#line 6087 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
                return -1;
              return 2780; /* neon_vec_umult_hi_v8hi */

            case 2:
              if (vect_par_constant_low (operands[2], E_V4SImode)
                  && 
#line 6053 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
                return 2776; /* neon_vec_umult_lo_v4si */
              if (!vect_par_constant_high (operands[2], E_V4SImode)
                  || !
#line 6087 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
                return -1;
              return 2782; /* 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 (pattern460 (x2, E_V8QImode, E_V8HImode) != 0
                  || !
#line 6193 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2796; /* neon_vec_umult_v8qi */

            case E_V4SImode:
              if (pattern460 (x2, E_V4HImode, E_V4SImode) != 0
                  || !
#line 6193 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2798; /* neon_vec_umult_v4hi */

            case E_V2DImode:
              if (pattern460 (x2, E_V2SImode, E_V2DImode) != 0
                  || !
#line 6193 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2800; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 624; /* rorv4hi3 */
      if (!imm_or_reg_operand (operands[2], E_DImode)
          || !
#line 1361 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 636; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 625; /* rorv2si3 */
      if (!imm_or_reg_operand (operands[2], E_DImode)
          || !
#line 1361 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 637; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 626; /* rordi3 */
      if (!imm_or_reg_operand (operands[2], E_DImode)
          || !
#line 1361 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 638; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 633; /* ashlv4hi3_iwmmxt */
      if (!imm_or_reg_operand (operands[2], E_DImode)
          || !
#line 1424 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 645; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 634; /* ashlv2si3_iwmmxt */
      if (!imm_or_reg_operand (operands[2], E_DImode)
          || !
#line 1424 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 646; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 635; /* ashldi3_iwmmxt */
              if (imm_or_reg_operand (operands[2], E_DImode)
                  && 
#line 1424 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 647; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_HAVE_MVE))
        return -1;
      return 1056; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && !arm_arch6))
        return 928; /* *thumb_mulsi3 */
      if (!
#line 175 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && arm_arch6))
        return -1;
      return 929; /* *thumb_mulsi3_v6 */

    case ASHIFT:
      if (!nonmemory_operand (operands[2], E_SImode)
          || !
#line 275 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 934; /* *thumb1_ashlsi3 */

    case ASHIFTRT:
      if (!nonmemory_operand (operands[2], E_SImode)
          || !
#line 285 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 935; /* *thumb1_ashrsi3 */

    case LSHIFTRT:
      if (!nonmemory_operand (operands[2], E_SImode)
          || !
#line 295 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 936; /* *thumb1_lshrsi3 */

    case ROTATERT:
      if (!register_operand (operands[2], E_SImode)
          || !
#line 305 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 937; /* *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 (pattern464 (x3, E_V8QImode, E_QImode) != 0
          || !
#line 4954 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2513; /* neon_vld1_lanev8qi */

    case E_V4HImode:
      if (pattern464 (x3, E_V4HImode, E_HImode) != 0
          || !
#line 4954 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2514; /* neon_vld1_lanev4hi */

    case E_V4HFmode:
      if (pattern464 (x3, E_V4HFmode, E_HFmode) != 0
          || !
#line 4954 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2515; /* neon_vld1_lanev4hf */

    case E_V4BFmode:
      if (pattern464 (x3, E_V4BFmode, E_BFmode) != 0
          || !
#line 4954 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2516; /* neon_vld1_lanev4bf */

    case E_V2SImode:
      if (pattern464 (x3, E_V2SImode, E_SImode) != 0
          || !
#line 4954 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2517; /* neon_vld1_lanev2si */

    case E_V2SFmode:
      if (pattern464 (x3, E_V2SFmode, E_SFmode) != 0
          || !
#line 4954 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2518; /* 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 4954 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2519; /* neon_vld1_lanedi */

    case E_V16QImode:
      if (pattern464 (x3, E_V16QImode, E_QImode) != 0
          || !
#line 4975 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2520; /* neon_vld1_lanev16qi */

    case E_V8HImode:
      if (pattern464 (x3, E_V8HImode, E_HImode) != 0
          || !
#line 4975 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2521; /* neon_vld1_lanev8hi */

    case E_V8HFmode:
      if (pattern464 (x3, E_V8HFmode, E_HFmode) != 0
          || !
#line 4975 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2522; /* neon_vld1_lanev8hf */

    case E_V8BFmode:
      if (pattern464 (x3, E_V8BFmode, E_BFmode) != 0
          || !
#line 4975 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2523; /* neon_vld1_lanev8bf */

    case E_V4SImode:
      if (pattern464 (x3, E_V4SImode, E_SImode) != 0
          || !
#line 4975 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2524; /* neon_vld1_lanev4si */

    case E_V4SFmode:
      if (pattern464 (x3, E_V4SFmode, E_SFmode) != 0
          || !
#line 4975 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2525; /* neon_vld1_lanev4sf */

    case E_V2DImode:
      if (pattern464 (x3, E_V2DImode, E_DImode) != 0
          || !
#line 4975 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2526; /* 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 4370 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2207; /* neon_vextv8qi */

    case E_V16QImode:
      if (pattern42 (x3, E_V16QImode) != 0
          || !
#line 4370 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2208; /* neon_vextv16qi */

    case E_V4HImode:
      if (pattern42 (x3, E_V4HImode) != 0
          || !
#line 4370 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2209; /* neon_vextv4hi */

    case E_V8HImode:
      if (pattern42 (x3, E_V8HImode) != 0
          || !
#line 4370 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2210; /* neon_vextv8hi */

    case E_V2SImode:
      if (pattern42 (x3, E_V2SImode) != 0
          || !
#line 4370 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2211; /* neon_vextv2si */

    case E_V4SImode:
      if (pattern42 (x3, E_V4SImode) != 0
          || !
#line 4370 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2212; /* neon_vextv4si */

    case E_V4HFmode:
      if (pattern42 (x3, E_V4HFmode) != 0
          || !
#line 4370 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2213; /* neon_vextv4hf */

    case E_V8HFmode:
      if (pattern42 (x3, E_V8HFmode) != 0
          || !
#line 4370 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2214; /* neon_vextv8hf */

    case E_V4BFmode:
      if (pattern42 (x3, E_V4BFmode) != 0
          || !
#line 4370 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2215; /* neon_vextv4bf */

    case E_V8BFmode:
      if (pattern42 (x3, E_V8BFmode) != 0
          || !
#line 4370 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2216; /* neon_vextv8bf */

    case E_V2SFmode:
      if (pattern42 (x3, E_V2SFmode) != 0
          || !
#line 4370 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2217; /* neon_vextv2sf */

    case E_V4SFmode:
      if (pattern42 (x3, E_V4SFmode) != 0
          || !
#line 4370 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2218; /* neon_vextv4sf */

    case E_DImode:
      if (pattern42 (x3, E_DImode) != 0
          || !
#line 4370 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2219; /* neon_vextdi */

    case E_V2DImode:
      if (pattern42 (x3, E_V2DImode) != 0
          || !
#line 4370 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2220; /* 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 4419 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2238; /* neon_vbslv8qi_internal */

    case E_V16QImode:
      if (pattern33 (x3, E_V16QImode) != 0
          || !
#line 4419 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2239; /* neon_vbslv16qi_internal */

    case E_V4HImode:
      if (pattern33 (x3, E_V4HImode) != 0
          || !
#line 4419 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2240; /* neon_vbslv4hi_internal */

    case E_V8HImode:
      if (pattern33 (x3, E_V8HImode) != 0
          || !
#line 4419 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2241; /* neon_vbslv8hi_internal */

    case E_V2SImode:
      if (pattern33 (x3, E_V2SImode) != 0
          || !
#line 4419 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2242; /* neon_vbslv2si_internal */

    case E_V4SImode:
      if (pattern33 (x3, E_V4SImode) != 0
          || !
#line 4419 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2243; /* neon_vbslv4si_internal */

    case E_V4HFmode:
      if (pattern33 (x3, E_V4HFmode) != 0
          || !
#line 4419 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2244; /* neon_vbslv4hf_internal */

    case E_V8HFmode:
      if (pattern33 (x3, E_V8HFmode) != 0
          || !
#line 4419 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2245; /* neon_vbslv8hf_internal */

    case E_V4BFmode:
      if (pattern33 (x3, E_V4BFmode) != 0
          || !
#line 4419 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2246; /* neon_vbslv4bf_internal */

    case E_V8BFmode:
      if (pattern33 (x3, E_V8BFmode) != 0
          || !
#line 4419 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2247; /* neon_vbslv8bf_internal */

    case E_V2SFmode:
      if (pattern33 (x3, E_V2SFmode) != 0
          || !
#line 4419 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2248; /* neon_vbslv2sf_internal */

    case E_V4SFmode:
      if (pattern33 (x3, E_V4SFmode) != 0
          || !
#line 4419 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2249; /* neon_vbslv4sf_internal */

    case E_DImode:
      if (pattern33 (x3, E_DImode) != 0
          || !
#line 4419 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2250; /* neon_vbsldi_internal */

    case E_V2DImode:
      if (pattern33 (x3, E_V2DImode) != 0
          || !
#line 4419 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2251; /* 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) != 326)
    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 5608 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2680; /* neon_vst3_lanev8qi */

        case E_V4HImode:
          if (!
#line 5608 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2681; /* neon_vst3_lanev4hi */

        case E_V4HFmode:
          if (!
#line 5608 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2682; /* neon_vst3_lanev4hf */

        case E_V4BFmode:
          if (!
#line 5608 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2683; /* neon_vst3_lanev4bf */

        case E_V2SImode:
          if (!
#line 5608 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2684; /* neon_vst3_lanev2si */

        case E_V2SFmode:
          if (!
#line 5608 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2685; /* 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 5634 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2686; /* neon_vst3_lanev8hi */

        case E_V8HFmode:
          if (!
#line 5634 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2687; /* neon_vst3_lanev8hf */

        case E_V4SImode:
          if (!
#line 5634 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2688; /* neon_vst3_lanev4si */

        case E_V4SFmode:
          if (!
#line 5634 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2689; /* neon_vst3_lanev4sf */

        case E_V8BFmode:
          if (!(
#line 5634 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 119 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
            return -1;
          return 2690; /* 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 (pattern534 (x2, E_OImode, E_SImode) != 0
          || !
#line 5937 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2748; /* neon_vst4_lanev8qi */

    case E_V4HImode:
      x2 = XEXP (x1, 1);
      switch (pattern539 (x2, E_V4HImode, E_V8HImode))
        {
        case 0:
          if (!
#line 5937 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2749; /* neon_vst4_lanev4hi */

        case 1:
          if (!
#line 5964 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2754; /* neon_vst4_lanev8hi */

        default:
          return -1;
        }

    case E_V4HFmode:
      x2 = XEXP (x1, 1);
      switch (pattern539 (x2, E_V4HFmode, E_V8HFmode))
        {
        case 0:
          if (!
#line 5937 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2750; /* neon_vst4_lanev4hf */

        case 1:
          if (!
#line 5964 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2755; /* neon_vst4_lanev8hf */

        default:
          return -1;
        }

    case E_V4BFmode:
      x2 = XEXP (x1, 1);
      switch (pattern539 (x2, E_V4BFmode, E_V8BFmode))
        {
        case 0:
          if (!
#line 5937 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2751; /* neon_vst4_lanev4bf */

        case 1:
          if (!(
#line 5964 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 119 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
            return -1;
          return 2758; /* neon_vst4_lanev8bf */

        default:
          return -1;
        }

    case E_V4SImode:
      x2 = XEXP (x1, 1);
      switch (pattern540 (x2, E_V2SImode, E_V4SImode))
        {
        case 0:
          if (!
#line 5937 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2752; /* neon_vst4_lanev2si */

        case 1:
          if (!
#line 5964 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2756; /* neon_vst4_lanev4si */

        default:
          return -1;
        }

    case E_V4SFmode:
      x2 = XEXP (x1, 1);
      switch (pattern540 (x2, E_V2SFmode, E_V4SFmode))
        {
        case 0:
          if (!
#line 5937 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2753; /* neon_vst4_lanev2sf */

        case 1:
          if (!
#line 5964 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2757; /* 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 (pattern534 (x2, E_TImode, E_HImode) != 0
          || !
#line 5274 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2612; /* neon_vst2_lanev8qi */

    case E_SImode:
      x2 = XEXP (x1, 1);
      switch (pattern536 (x2, E_V4HImode, E_V8HImode, E_SImode))
        {
        case 0:
          if (!
#line 5274 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2613; /* neon_vst2_lanev4hi */

        case 1:
          if (!
#line 5298 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2618; /* neon_vst2_lanev8hi */

        default:
          return -1;
        }

    case E_SFmode:
      x2 = XEXP (x1, 1);
      switch (pattern536 (x2, E_V4HFmode, E_V8HFmode, E_SFmode))
        {
        case 0:
          if (!
#line 5274 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2614; /* neon_vst2_lanev4hf */

        case 1:
          if (!
#line 5298 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2619; /* neon_vst2_lanev8hf */

        default:
          return -1;
        }

    case E_BFmode:
      x2 = XEXP (x1, 1);
      switch (pattern536 (x2, E_V4BFmode, E_V8BFmode, E_BFmode))
        {
        case 0:
          if (!
#line 5274 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2615; /* neon_vst2_lanev4bf */

        case 1:
          if (!(
#line 5298 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 119 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
            return -1;
          return 2622; /* neon_vst2_lanev8bf */

        default:
          return -1;
        }

    case E_V2SImode:
      x2 = XEXP (x1, 1);
      switch (pattern537 (x2, E_V2SImode, E_V4SImode))
        {
        case 0:
          if (!
#line 5274 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2616; /* neon_vst2_lanev2si */

        case 1:
          if (!
#line 5298 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2620; /* neon_vst2_lanev4si */

        default:
          return -1;
        }

    case E_V2SFmode:
      x2 = XEXP (x1, 1);
      switch (pattern537 (x2, E_V2SFmode, E_V4SFmode))
        {
        case 0:
          if (!
#line 5274 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2617; /* neon_vst2_lanev2sf */

        case 1:
          if (!
#line 5298 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2621; /* 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 3827 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2153; /* neon_vmul_lanev4hi */

    case E_V2SImode:
      if (pattern42 (x3, E_V2SImode) != 0
          || !
#line 3827 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2154; /* neon_vmul_lanev2si */

    case E_V2SFmode:
      if (pattern42 (x3, E_V2SFmode) != 0
          || !
#line 3827 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2155; /* neon_vmul_lanev2sf */

    case E_V8HImode:
      if (pattern41 (x3, E_V4HImode, E_V8HImode) != 0
          || !
#line 3844 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2156; /* neon_vmul_lanev8hi */

    case E_V4SImode:
      if (pattern41 (x3, E_V2SImode, E_V4SImode) != 0
          || !
#line 3844 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2157; /* neon_vmul_lanev4si */

    case E_V4SFmode:
      if (pattern41 (x3, E_V2SFmode, E_V4SFmode) != 0
          || !
#line 3844 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2158; /* neon_vmul_lanev4sf */

    case E_V8HFmode:
      if (pattern41 (x3, E_V4HFmode, E_V8HFmode) != 0
          || !
#line 3861 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2159; /* neon_vmul_lanev8hf */

    case E_V4HFmode:
      if (pattern42 (x3, E_V4HFmode) != 0
          || !
#line 3861 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2160; /* 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 4778 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2465; /* neon_vtbx1v8qi */

    case E_TImode:
      if (!s_register_operand (operands[2], E_TImode)
          || !
#line 4789 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2466; /* neon_vtbx2v8qi */

    case E_EImode:
      if (!s_register_operand (operands[2], E_EImode)
          || !
#line 4811 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2467; /* neon_vtbx3v8qi */

    case E_OImode:
      if (!s_register_operand (operands[2], E_OImode)
          || !
#line 4834 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2468; /* 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 (pattern463 (x3, E_SImode) != 0
          || !
#line 2213 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_CDE && (TARGET_ARM_FP || TARGET_HAVE_MVE)))
        return -1;
      return 916; /* arm_vcx2si */

    case E_DImode:
      if (pattern463 (x3, E_DImode) != 0
          || !
#line 2213 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_CDE && (TARGET_ARM_FP || TARGET_HAVE_MVE)))
        return -1;
      return 917; /* 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 10380 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_CDE && TARGET_HAVE_MVE))
        return -1;
      return 4934; /* 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 (pattern462 (x3, E_SImode) != 0
          || !
#line 2202 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_CDE && (TARGET_ARM_FP || TARGET_HAVE_MVE)))
        return -1;
      return 914; /* arm_vcx1asi */

    case E_DImode:
      if (pattern462 (x3, E_DImode) != 0
          || !
#line 2202 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_CDE && (TARGET_ARM_FP || TARGET_HAVE_MVE)))
        return -1;
      return 915; /* 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 10369 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_CDE && TARGET_HAVE_MVE))
        return -1;
      return 4933; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 668; /* iwmmxt_wsadb */

    case E_V4HImode:
      if (!register_operand (operands[2], E_V4HImode)
          || !register_operand (operands[3], E_V4HImode)
          || !
#line 1740 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 669; /* 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 4605 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2450; /* neon_vsli_nv8qi */

    case 1:
      if (!
#line 4605 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2451; /* neon_vsli_nv16qi */

    case 2:
      if (!
#line 4605 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2452; /* neon_vsli_nv4hi */

    case 3:
      if (!
#line 4605 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2453; /* neon_vsli_nv8hi */

    case 4:
      if (!
#line 4605 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2454; /* neon_vsli_nv2si */

    case 5:
      if (!
#line 4605 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2455; /* neon_vsli_nv4si */

    case 6:
      if (!
#line 4605 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2456; /* neon_vsli_ndi */

    case 7:
      if (!
#line 4605 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2457; /* 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 4591 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2442; /* neon_vsri_nv8qi */

    case 1:
      if (!
#line 4591 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2443; /* neon_vsri_nv16qi */

    case 2:
      if (!
#line 4591 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2444; /* neon_vsri_nv4hi */

    case 3:
      if (!
#line 4591 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2445; /* neon_vsri_nv8hi */

    case 4:
      if (!
#line 4591 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2446; /* neon_vsri_nv2si */

    case 5:
      if (!
#line 4591 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2447; /* neon_vsri_nv4si */

    case 6:
      if (!
#line 4591 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2448; /* neon_vsri_ndi */

    case 7:
      if (!
#line 4591 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2449; /* 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 4577 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2413; /* neon_vrsrau_nv8qi */

    case 1:
      if (!
#line 4577 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2417; /* neon_vrsrau_nv16qi */

    case 2:
      if (!
#line 4577 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2421; /* neon_vrsrau_nv4hi */

    case 3:
      if (!
#line 4577 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2425; /* neon_vrsrau_nv8hi */

    case 4:
      if (!
#line 4577 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2429; /* neon_vrsrau_nv2si */

    case 5:
      if (!
#line 4577 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2433; /* neon_vrsrau_nv4si */

    case 6:
      if (!
#line 4577 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2437; /* neon_vrsrau_ndi */

    case 7:
      if (!
#line 4577 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2441; /* 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 4577 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2411; /* neon_vsrau_nv8qi */

    case 1:
      if (!
#line 4577 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2415; /* neon_vsrau_nv16qi */

    case 2:
      if (!
#line 4577 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2419; /* neon_vsrau_nv4hi */

    case 3:
      if (!
#line 4577 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2423; /* neon_vsrau_nv8hi */

    case 4:
      if (!
#line 4577 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2427; /* neon_vsrau_nv2si */

    case 5:
      if (!
#line 4577 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2431; /* neon_vsrau_nv4si */

    case 6:
      if (!
#line 4577 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2435; /* neon_vsrau_ndi */

    case 7:
      if (!
#line 4577 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2439; /* 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 4577 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2412; /* neon_vrsras_nv8qi */

    case 1:
      if (!
#line 4577 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2416; /* neon_vrsras_nv16qi */

    case 2:
      if (!
#line 4577 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2420; /* neon_vrsras_nv4hi */

    case 3:
      if (!
#line 4577 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2424; /* neon_vrsras_nv8hi */

    case 4:
      if (!
#line 4577 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2428; /* neon_vrsras_nv2si */

    case 5:
      if (!
#line 4577 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2432; /* neon_vrsras_nv4si */

    case 6:
      if (!
#line 4577 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2436; /* neon_vrsras_ndi */

    case 7:
      if (!
#line 4577 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2440; /* 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 4577 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2410; /* neon_vsras_nv8qi */

    case 1:
      if (!
#line 4577 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2414; /* neon_vsras_nv16qi */

    case 2:
      if (!
#line 4577 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2418; /* neon_vsras_nv4hi */

    case 3:
      if (!
#line 4577 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2422; /* neon_vsras_nv8hi */

    case 4:
      if (!
#line 4577 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2426; /* neon_vsras_nv2si */

    case 5:
      if (!
#line 4577 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2430; /* neon_vsras_nv4si */

    case 6:
      if (!
#line 4577 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2434; /* neon_vsras_ndi */

    case 7:
      if (!
#line 4577 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2438; /* 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 2091 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1547; /* neon_vmlsv8qi_unspec */

    case 1:
      if (!
#line 2091 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1548; /* neon_vmlsv16qi_unspec */

    case 2:
      if (!
#line 2091 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1549; /* neon_vmlsv4hi_unspec */

    case 3:
      if (!
#line 2091 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1550; /* neon_vmlsv8hi_unspec */

    case 4:
      if (!
#line 2091 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1551; /* neon_vmlsv2si_unspec */

    case 5:
      if (!
#line 2091 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1552; /* neon_vmlsv4si_unspec */

    case 6:
      if (!
#line 2091 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1553; /* neon_vmlsv2sf_unspec */

    case 7:
      if (!
#line 2091 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1554; /* 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 2048 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1533; /* neon_vmlav8qi_unspec */

    case 1:
      if (!
#line 2048 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1534; /* neon_vmlav16qi_unspec */

    case 2:
      if (!
#line 2048 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1535; /* neon_vmlav4hi_unspec */

    case 3:
      if (!
#line 2048 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1536; /* neon_vmlav8hi_unspec */

    case 4:
      if (!
#line 2048 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1537; /* neon_vmlav2si_unspec */

    case 5:
      if (!
#line 2048 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1538; /* neon_vmlav4si_unspec */

    case 6:
      if (!
#line 2048 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1539; /* neon_vmlav2sf_unspec */

    case 7:
      if (!
#line 2048 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1540; /* 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 6091 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
    return -1;
  return 250; /* 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 5723 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2704; /* neon_vld4qbv16qi */

    case 1:
      if (!
#line 5723 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2705; /* neon_vld4qbv8hi */

    case 2:
      if (!
#line 5723 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2706; /* neon_vld4qbv8hf */

    case 3:
      if (!(
#line 5723 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 116 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
        return -1;
      return 2707; /* neon_vld4qbv8bf */

    case 4:
      if (!
#line 5723 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2708; /* neon_vld4qbv4si */

    case 5:
      if (!
#line 5723 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2709; /* 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 5394 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2636; /* neon_vld3qbv16qi */

    case 1:
      if (!
#line 5394 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2637; /* neon_vld3qbv8hi */

    case 2:
      if (!
#line 5394 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2638; /* neon_vld3qbv8hf */

    case 3:
      if (!(
#line 5394 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 116 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
        return -1;
      return 2639; /* neon_vld3qbv8bf */

    case 4:
      if (!
#line 5394 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2640; /* neon_vld3qbv4si */

    case 5:
      if (!
#line 5394 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2641; /* 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 6636 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_THUMB))
        return -1;
      return 257; /* pic_add_dot_plus_four */

    case 8L:
      if (!
#line 6652 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      return 258; /* 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;
  int res ATTRIBUTE_UNUSED;
  if (pnum_clobbers == NULL)
    return -1;
  x2 = XEXP (x1, 1);
  if (pattern104 (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 12237 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_GNU2_TLS))
    return -1;
  *pnum_clobbers = 3;
  return 405; /* tlscall */
}

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, 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 4447 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_CDE))
        return -1;
      return 139; /* arm_cx2si */

    case 1:
      if (!
#line 4447 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_CDE))
        return -1;
      return 140; /* arm_cx2di */

    default:
      return -1;
    }
}

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];
  int res ATTRIBUTE_UNUSED;
  switch (pattern71 (x1))
    {
    case 0:
      if (!
#line 3297 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3864; /* mve_vpselq_uv16qi */

    case 1:
      if (!
#line 3297 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3866; /* mve_vpselq_uv8hi */

    case 2:
      if (!
#line 3297 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3868; /* mve_vpselq_uv4si */

    case 3:
      if (!
#line 3297 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3870; /* mve_vpselq_uv2di */

    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 (pattern71 (x1))
    {
    case 0:
      if (!
#line 3297 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3863; /* mve_vpselq_sv16qi */

    case 1:
      if (!
#line 3297 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3865; /* mve_vpselq_sv8hi */

    case 2:
      if (!
#line 3297 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3867; /* mve_vpselq_sv4si */

    case 3:
      if (!
#line 3297 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3869; /* 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 (pattern43 (x1))
    {
    case 0:
      if (!
#line 3901 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2168; /* neon_vqrdmulh_lanev8hi */

    case 1:
      if (!
#line 3901 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2170; /* neon_vqrdmulh_lanev4si */

    case 2:
      if (!
#line 3915 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2172; /* neon_vqrdmulh_lanev4hi */

    case 3:
      if (!
#line 3915 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2174; /* neon_vqrdmulh_lanev2si */

    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 3901 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2167; /* neon_vqdmulh_lanev8hi */

    case 1:
      if (!
#line 3901 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2169; /* neon_vqdmulh_lanev4si */

    case 2:
      if (!
#line 3915 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2171; /* neon_vqdmulh_lanev4hi */

    case 3:
      if (!
#line 3915 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2173; /* neon_vqdmulh_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 (pattern37 (x1))
    {
    case 0:
      if (!
#line 2128 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
        return -1;
      return 1570; /* neon_vqrdmlshv4hi */

    case 1:
      if (!
#line 2128 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
        return -1;
      return 1572; /* neon_vqrdmlshv2si */

    case 2:
      if (!
#line 2128 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
        return -1;
      return 1574; /* neon_vqrdmlshv8hi */

    case 3:
      if (!
#line 2128 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
        return -1;
      return 1576; /* neon_vqrdmlshv4si */

    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 2128 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
        return -1;
      return 1569; /* neon_vqrdmlahv4hi */

    case 1:
      if (!
#line 2128 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
        return -1;
      return 1571; /* neon_vqrdmlahv2si */

    case 2:
      if (!
#line 2128 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
        return -1;
      return 1573; /* neon_vqrdmlahv8hi */

    case 3:
      if (!
#line 2128 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
        return -1;
      return 1575; /* neon_vqrdmlahv4si */

    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];
  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 (pattern461 (x3))
    {
    case 0:
      if (!
#line 4436 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_CDE))
        return -1;
      return 137; /* arm_cx1asi */

    case 1:
      if (!
#line 4436 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_CDE))
        return -1;
      return 138; /* arm_cx1adi */

    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;
  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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 1080; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 1081; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 1082; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 1083; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 1084; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 1085; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 1086; /* *movmisaligndi_neon_store */

        case E_V16QImode:
          if (!neon_permissive_struct_operand (operands[0], E_V16QImode)
              || GET_MODE (x3) != E_V16QImode
              || !s_register_operand (operands[1], E_V16QImode))
            return -1;
          if (
#line 304 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return 1094; /* *movmisalignv16qi_neon_store */
          if (!
#line 10468 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 4944; /* *movmisalignv16qi_mve_store */

        case E_V8HImode:
          if (!neon_permissive_struct_operand (operands[0], E_V8HImode)
              || GET_MODE (x3) != E_V8HImode
              || !s_register_operand (operands[1], E_V8HImode))
            return -1;
          if (
#line 304 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return 1095; /* *movmisalignv8hi_neon_store */
          if (!
#line 10468 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 4945; /* *movmisalignv8hi_mve_store */

        case E_V8HFmode:
          if (!neon_permissive_struct_operand (operands[0], E_V8HFmode)
              || GET_MODE (x3) != E_V8HFmode
              || !s_register_operand (operands[1], E_V8HFmode))
            return -1;
          if (
#line 304 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return 1096; /* *movmisalignv8hf_neon_store */
          if (!
#line 10468 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 4947; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 1097; /* *movmisalignv8bf_neon_store */

        case E_V4SImode:
          if (!neon_permissive_struct_operand (operands[0], E_V4SImode)
              || GET_MODE (x3) != E_V4SImode
              || !s_register_operand (operands[1], E_V4SImode))
            return -1;
          if (
#line 304 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return 1098; /* *movmisalignv4si_neon_store */
          if (!
#line 10468 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 4946; /* *movmisalignv4si_mve_store */

        case E_V4SFmode:
          if (!neon_permissive_struct_operand (operands[0], E_V4SFmode)
              || GET_MODE (x3) != E_V4SFmode
              || !s_register_operand (operands[1], E_V4SFmode))
            return -1;
          if (
#line 304 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return 1099; /* *movmisalignv4sf_neon_store */
          if (!
#line 10468 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 4948; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 1100; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 1087; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 1088; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 1089; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 1090; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 1091; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 1092; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 1093; /* *movmisaligndi_neon_load */

        case E_V16QImode:
          if (!s_register_operand (operands[0], E_V16QImode)
              || GET_MODE (x3) != E_V16QImode
              || !neon_permissive_struct_operand (operands[1], E_V16QImode))
            return -1;
          if (
#line 313 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return 1101; /* *movmisalignv16qi_neon_load */
          if (!
#line 10480 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 4949; /* *movmisalignv16qi_mve_load */

        case E_V8HImode:
          if (!s_register_operand (operands[0], E_V8HImode)
              || GET_MODE (x3) != E_V8HImode
              || !neon_permissive_struct_operand (operands[1], E_V8HImode))
            return -1;
          if (
#line 313 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return 1102; /* *movmisalignv8hi_neon_load */
          if (!
#line 10480 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 4950; /* *movmisalignv8hi_mve_load */

        case E_V8HFmode:
          if (!s_register_operand (operands[0], E_V8HFmode)
              || GET_MODE (x3) != E_V8HFmode
              || !neon_permissive_struct_operand (operands[1], E_V8HFmode))
            return -1;
          if (
#line 313 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return 1103; /* *movmisalignv8hf_neon_load */
          if (!
#line 10480 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 4952; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 1104; /* *movmisalignv8bf_neon_load */

        case E_V4SImode:
          if (!s_register_operand (operands[0], E_V4SImode)
              || GET_MODE (x3) != E_V4SImode
              || !neon_permissive_struct_operand (operands[1], E_V4SImode))
            return -1;
          if (
#line 313 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return 1105; /* *movmisalignv4si_neon_load */
          if (!
#line 10480 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 4951; /* *movmisalignv4si_mve_load */

        case E_V4SFmode:
          if (!s_register_operand (operands[0], E_V4SFmode)
              || GET_MODE (x3) != E_V4SFmode
              || !neon_permissive_struct_operand (operands[1], E_V4SFmode))
            return -1;
          if (
#line 313 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return 1106; /* *movmisalignv4sf_neon_load */
          if (!
#line 10480 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 4953; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 1107; /* *movmisalignv2di_neon_load */

        default:
          return -1;
        }

    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_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 5050 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2539; /* 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 5050 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2540; /* 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 5050 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2541; /* 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 5050 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2542; /* 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 5050 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2543; /* 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 5050 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2544; /* 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 5050 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2545; /* 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 5050 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2546; /* 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 5050 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2547; /* 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 5050 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2548; /* 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 5050 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2549; /* 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 5050 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2550; /* 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 5050 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2551; /* 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 5050 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2552; /* neon_vst1v2di */

    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 (!s_register_operand (operands[0], E_V8QImode)
          || GET_MODE (x3) != E_V8QImode
          || !neon_struct_operand (operands[1], E_V8QImode)
          || !
#line 4940 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2499; /* 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 4940 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2500; /* 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 4940 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2501; /* 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 4940 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2502; /* 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 4940 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2503; /* 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 4940 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2504; /* 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 4940 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2505; /* 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 4940 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2506; /* 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 4940 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2507; /* 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 4940 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2508; /* 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 4940 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2509; /* 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 4940 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2510; /* 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 4940 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2511; /* 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 4940 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2512; /* neon_vld1v2di */

    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
          || !s_register_operand (operands[1], E_V8QImode)
          || !
#line 4382 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2221; /* 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 4382 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2222; /* 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 4382 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2223; /* 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 4382 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2224; /* 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 4382 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2225; /* 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 4382 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2226; /* 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 4382 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2227; /* 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 4382 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2228; /* 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 4382 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2229; /* 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 4382 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2230; /* 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 4382 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2231; /* neon_vrev64v2di */

    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_V4BFmode:
      if (!register_operand (operands[0], E_V4BFmode)
          || GET_MODE (x3) != E_V4BFmode
          || !register_operand (operands[1], E_V4SFmode)
          || !
#line 6378 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
        return -1;
      return 2824; /* neon_vbfcvtv4sfv4bf */

    case E_V8BFmode:
      if (!register_operand (operands[0], E_V8BFmode)
          || GET_MODE (x3) != E_V8BFmode
          || !register_operand (operands[1], E_V4SFmode)
          || !
#line 6378 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
        return -1;
      return 2825; /* neon_vbfcvtv4sfv8bf */

    case E_BFmode:
      if (!register_operand (operands[0], E_BFmode)
          || GET_MODE (x3) != E_BFmode
          || !register_operand (operands[1], E_SFmode)
          || !
#line 6397 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_BF16_FP))
        return -1;
      return 2827; /* 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 6406 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
            return -1;
          return 2828; /* neon_vbfcvtv4bf */

        case E_V8BFmode:
          if (!register_operand (operands[1], E_V8BFmode)
              || !
#line 6406 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
            return -1;
          return 2829; /* 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 6447 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_BF16_FP))
        return -1;
      return 2831; /* 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 6447 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_BF16_FP))
        return -1;
      return 2832; /* neon_vbfcvtbf_cvtmodesf */

    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, 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO && fix_aes_erratum_1742098))
        return -1;
      return 2842; /* aes_op_protect */

    case UNSPEC:
      if (XVECLEN (x4, 0) != 1
          || GET_MODE (x4) != E_V16QImode)
        return -1;
      switch (XINT (x4, 1))
        {
        case 343:
          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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO && fix_aes_erratum_1742098))
            return -1;
          return 2843; /* *aes_op_protect_misalign_load */

        case 197:
          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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/crypto.md"
(TARGET_NEON))
            return -1;
          return 2844; /* aes_op_protect_neon_vld1v16qi */

        case 131:
          x5 = XVECEXP (x4, 0, 0);
          switch (pattern465 (x5, 129))
            {
            case 0:
              if (!
#line 126 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO && fix_aes_erratum_1742098))
                return -1;
              return 2845; /* *crypto_aesmc_protected */

            case 1:
              if (!
#line 163 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO && fix_aes_erratum_1742098
   && arm_fusion_enabled_p (tune_params::FUSE_AES_AESMC)))
                return -1;
              return 2848; /* *aarch32_crypto_aese_fused_protected */

            default:
              return -1;
            }

        case 130:
          x5 = XVECEXP (x4, 0, 0);
          switch (pattern465 (x5, 128))
            {
            case 0:
              if (!
#line 126 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO && fix_aes_erratum_1742098))
                return -1;
              return 2846; /* *crypto_aesimc_protected */

            case 1:
              if (!
#line 200 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO && fix_aes_erratum_1742098
   && arm_fusion_enabled_p (tune_params::FUSE_AES_AESMC)))
                return -1;
              return 2850; /* *aarch32_crypto_aesd_fused_protected */

            default:
              return -1;
            }

        default:
          return -1;
        }

    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, 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
    return -1;
  return 662; /* iwmmxt_waligni */
}

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;
  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 4391 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2232; /* 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 4391 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2233; /* 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 4391 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2234; /* 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 4391 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2235; /* neon_vrev32v8hi */

    default:
      return -1;
    }
}

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_DImode:
      if (!memory_operand (operands[0], E_DImode)
          || GET_MODE (x3) != E_DImode
          || !s_register_operand (operands[1], E_DImode)
          || !
#line 4958 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && TARGET_LDRD))
        return -1;
      return 157; /* 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 4969 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(unaligned_access))
        return -1;
      return 158; /* 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 4984 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(unaligned_access))
        return -1;
      return 159; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1060; /* unaligned_storev8qi */

    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_V2SImode:
      if (!register_operand (operands[0], E_V2SImode)
          || GET_MODE (x3) != E_V2SImode
          || !register_operand (operands[1], E_V2SImode)
          || !
#line 24 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 672; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 673; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 674; /* iwmmxt_wabsv8qi3 */

    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, 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 12188 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_HARD_TP))
    return 401; /* load_tp_hard */
  if (pnum_clobbers == NULL
      || GET_CODE (x4) != REG
      || REGNO (x4) != 0
      || GET_MODE (x4) != E_SImode)
    return -1;
  if (
#line 12210 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_SOFT_TP && TARGET_FDPIC))
    {
      *pnum_clobbers = 4;
      return 403; /* load_tp_soft_fdpic */
    }
  if (!
#line 12222 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_SOFT_TP && !TARGET_FDPIC))
    return -1;
  *pnum_clobbers = 3;
  return 404; /* load_tp_soft */
}

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, 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO && INTVAL (operands[2]) == NEON_ENDIAN_LANE_N (V2SImode, 0)))
    return -1;
  return 2857; /* crypto_sha1h_lb */
}

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, 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 4400 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2236; /* 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 4400 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2237; /* neon_vrev16v16qi */

    default:
      return -1;
    }
}

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;
  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 3683 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_FP16))
        return -1;
      return 2093; /* 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 3692 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_FP16))
        return -1;
      return 2094; /* neon_vcvtv4hfv4sf */

    default:
      return -1;
    }
}

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];
  int res ATTRIBUTE_UNUSED;
  switch (pattern115 (x1))
    {
    case 0:
      if (!
#line 3665 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2086; /* neon_vcvtuv2sf */

    case 1:
      if (!
#line 3665 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2088; /* neon_vcvtuv4sf */

    case 2:
      if (!
#line 3674 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2090; /* neon_vcvtuv2si */

    case 3:
      if (!
#line 3674 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2092; /* neon_vcvtuv4si */

    case 4:
      if (!
#line 3703 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2096; /* neon_vcvtuv4hi */

    case 5:
      if (!
#line 3703 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2098; /* neon_vcvtuv8hi */

    case 6:
      if (!
#line 3714 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2100; /* neon_vcvtuv8hf */

    case 7:
      if (!
#line 3714 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2102; /* neon_vcvtuv4hf */

    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];
  int res ATTRIBUTE_UNUSED;
  switch (pattern115 (x1))
    {
    case 0:
      if (!
#line 3665 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2085; /* neon_vcvtsv2sf */

    case 1:
      if (!
#line 3665 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2087; /* neon_vcvtsv4sf */

    case 2:
      if (!
#line 3674 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2089; /* neon_vcvtsv2si */

    case 3:
      if (!
#line 3674 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2091; /* neon_vcvtsv4si */

    case 4:
      if (!
#line 3703 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2095; /* neon_vcvtsv4hi */

    case 5:
      if (!
#line 3703 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2097; /* neon_vcvtsv8hi */

    case 6:
      if (!
#line 3714 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2099; /* neon_vcvtsv8hf */

    case 7:
      if (!
#line 3714 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2101; /* neon_vcvtsv4hf */

    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];
  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 4902 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && TARGET_LDRD))
        return -1;
      return 153; /* 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 4913 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(unaligned_access))
        return -1;
      return 154; /* unaligned_loadsi */

    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 (pattern112 (x1))
    {
    case 0:
      if (!
#line 3131 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2003; /* neon_vrecpev8hf */

    case 1:
      if (!
#line 3131 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2004; /* neon_vrecpev4hf */

    case 2:
      if (!
#line 3140 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2005; /* neon_vrecpev2si */

    case 3:
      if (!
#line 3140 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2006; /* neon_vrecpev2sf */

    case 4:
      if (!
#line 3140 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2007; /* neon_vrecpev4si */

    case 5:
      if (!
#line 3140 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2008; /* neon_vrecpev4sf */

    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];
  int res ATTRIBUTE_UNUSED;
  switch (pattern114 (x1))
    {
    case 0:
      if (!
#line 3097 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1989; /* neon_vclsv8qi */

    case 1:
      if (!
#line 3097 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1990; /* neon_vclsv16qi */

    case 2:
      if (!
#line 3097 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1991; /* neon_vclsv4hi */

    case 3:
      if (!
#line 3097 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1992; /* neon_vclsv8hi */

    case 4:
      if (!
#line 3097 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1993; /* neon_vclsv2si */

    case 5:
      if (!
#line 3097 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1994; /* neon_vclsv4si */

    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 (pattern114 (x1))
    {
    case 0:
      if (!
#line 3088 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1983; /* neon_vqnegv8qi */

    case 1:
      if (!
#line 3088 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1984; /* neon_vqnegv16qi */

    case 2:
      if (!
#line 3088 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1985; /* neon_vqnegv4hi */

    case 3:
      if (!
#line 3088 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1986; /* neon_vqnegv8hi */

    case 4:
      if (!
#line 3088 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1987; /* neon_vqnegv2si */

    case 5:
      if (!
#line 3088 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1988; /* neon_vqnegv4si */

    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 (pattern114 (x1))
    {
    case 0:
      if (!
#line 2793 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1894; /* neon_vqabsv8qi */

    case 1:
      if (!
#line 2793 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1895; /* neon_vqabsv16qi */

    case 2:
      if (!
#line 2793 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1896; /* neon_vqabsv4hi */

    case 3:
      if (!
#line 2793 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1897; /* neon_vqabsv8hi */

    case 4:
      if (!
#line 2793 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1898; /* neon_vqabsv2si */

    case 5:
      if (!
#line 2793 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1899; /* neon_vqabsv4si */

    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 (pattern113 (x1))
    {
    case 0:
      if (!
#line 2703 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1847; /* neon_vpaddluv8qi */

    case 1:
      if (!
#line 2703 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1849; /* neon_vpaddluv16qi */

    case 2:
      if (!
#line 2703 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1851; /* neon_vpaddluv4hi */

    case 3:
      if (!
#line 2703 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1853; /* neon_vpaddluv8hi */

    case 4:
      if (!
#line 2703 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1855; /* neon_vpaddluv2si */

    case 5:
      if (!
#line 2703 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1857; /* neon_vpaddluv4si */

    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 (pattern113 (x1))
    {
    case 0:
      if (!
#line 2703 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1846; /* neon_vpaddlsv8qi */

    case 1:
      if (!
#line 2703 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1848; /* neon_vpaddlsv16qi */

    case 2:
      if (!
#line 2703 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1850; /* neon_vpaddlsv4hi */

    case 3:
      if (!
#line 2703 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1852; /* neon_vpaddlsv8hi */

    case 4:
      if (!
#line 2703 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1854; /* neon_vpaddlsv2si */

    case 5:
      if (!
#line 2703 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1856; /* neon_vpaddlsv4si */

    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 (pattern112 (x1))
    {
    case 0:
      if (!
#line 788 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1314; /* neon_vrsqrtev8hf */

    case 1:
      if (!
#line 788 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1315; /* neon_vrsqrtev4hf */

    case 2:
      if (!
#line 3149 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2009; /* neon_vrsqrtev2si */

    case 3:
      if (!
#line 3149 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2010; /* neon_vrsqrtev2sf */

    case 4:
      if (!
#line 3149 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2011; /* neon_vrsqrtev4si */

    case 5:
      if (!
#line 3149 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2012; /* neon_vrsqrtev4sf */

    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];
  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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 680; /* addcv4hi3 */

    case E_V2SImode:
      if (pattern430 (x2, E_V2SImode) != 0
          || !
#line 111 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 681; /* addcv2si3 */

    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];
  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 304; /* *stack_protect_combined_set_insn */
}

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;
  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 5062 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2553; /* neon_vst1_lanev8qi */

        case E_V16QImode:
          if (!s_register_operand (operands[1], E_V16QImode)
              || !
#line 5083 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2560; /* 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 5062 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2554; /* neon_vst1_lanev4hi */

        case E_V8HImode:
          if (!s_register_operand (operands[1], E_V8HImode)
              || !
#line 5083 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2561; /* 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 5062 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2555; /* neon_vst1_lanev4hf */

        case E_V8HFmode:
          if (!s_register_operand (operands[1], E_V8HFmode)
              || !
#line 5083 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2562; /* 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 5062 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2556; /* neon_vst1_lanev4bf */

        case E_V8BFmode:
          if (!s_register_operand (operands[1], E_V8BFmode)
              || !
#line 5083 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2563; /* 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 5062 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2557; /* neon_vst1_lanev2si */

        case E_V4SImode:
          if (!s_register_operand (operands[1], E_V4SImode)
              || !
#line 5083 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2564; /* 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 5062 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2558; /* neon_vst1_lanev2sf */

        case E_V4SFmode:
          if (!s_register_operand (operands[1], E_V4SFmode)
              || !
#line 5083 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2565; /* 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 5062 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2559; /* neon_vst1_lanedi */

        case E_V2DImode:
          if (!s_register_operand (operands[1], E_V2DImode)
              || !
#line 5083 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2566; /* neon_vst1_lanev2di */

        default:
          return -1;
        }

    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, 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) != 326)
    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 5196 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2591; /* neon_vld2_dupv8qi */

        case E_SImode:
          if (!neon_struct_operand (operands[1], E_SImode)
              || GET_MODE (x3) != E_V4HImode
              || !
#line 5196 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2592; /* neon_vld2_dupv4hi */

        case E_SFmode:
          if (!neon_struct_operand (operands[1], E_SFmode)
              || GET_MODE (x3) != E_V4HFmode
              || !
#line 5196 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2593; /* neon_vld2_dupv4hf */

        case E_BFmode:
          if (!neon_struct_operand (operands[1], E_BFmode)
              || GET_MODE (x3) != E_V4BFmode
              || !(
#line 5196 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 94 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
            return -1;
          return 2594; /* neon_vld2_dupv4bf */

        case E_V2SImode:
          if (!neon_struct_operand (operands[1], E_V2SImode)
              || GET_MODE (x3) != E_V2SImode
              || !
#line 5196 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2595; /* neon_vld2_dupv2si */

        case E_V2SFmode:
          if (!neon_struct_operand (operands[1], E_V2SFmode)
              || GET_MODE (x3) != E_V2SFmode
              || !
#line 5196 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2596; /* neon_vld2_dupv2sf */

        case E_V2DImode:
          if (!neon_struct_operand (operands[1], E_V2DImode)
              || GET_MODE (x3) != E_DImode
              || !
#line 5196 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2597; /* neon_vld2_dupdi */

        default:
          return -1;
        }

    case E_OImode:
      if (pattern489 (x2, E_OImode) != 0
          || !
#line 5214 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
        return -1;
      return 2598; /* neon_vld2_dupv8bf */

    case E_CImode:
      if (pattern489 (x2, E_CImode) != 0
          || !
#line 5497 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
        return -1;
      return 2660; /* neon_vld3_dupv8bf */

    case E_XImode:
      if (pattern489 (x2, E_XImode) != 0
          || !
#line 5832 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
        return -1;
      return 2728; /* neon_vld4_dupv8bf */

    default:
      return -1;
    }
}

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;
  int res ATTRIBUTE_UNUSED;
  if (pattern172 (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 5803 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2721; /* 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 5803 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2722; /* 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 5803 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2723; /* 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 5803 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 94 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
        return -1;
      return 2724; /* 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 5803 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2725; /* 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 5803 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2726; /* 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 5803 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2727; /* neon_vld4_dupdi */

    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;
  int res ATTRIBUTE_UNUSED;
  switch (pattern169 (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 5242 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2599; /* neon_vst2v8qi */

        case E_V4HImode:
          if (!
#line 5242 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2600; /* neon_vst2v4hi */

        case E_V4HFmode:
          if (!
#line 5242 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2601; /* neon_vst2v4hf */

        case E_V4BFmode:
          if (!(
#line 5242 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 94 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
            return -1;
          return 2602; /* neon_vst2v4bf */

        case E_V2SImode:
          if (!
#line 5242 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2603; /* neon_vst2v2si */

        case E_V2SFmode:
          if (!
#line 5242 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2604; /* neon_vst2v2sf */

        case E_DImode:
          if (!
#line 5242 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2605; /* 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 5260 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2606; /* neon_vst2v16qi */

        case E_V8HImode:
          if (!
#line 5260 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2607; /* neon_vst2v8hi */

        case E_V8HFmode:
          if (!
#line 5260 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2608; /* neon_vst2v8hf */

        case E_V8BFmode:
          if (!(
#line 5260 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 116 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
            return -1;
          return 2609; /* neon_vst2v8bf */

        case E_V4SImode:
          if (!
#line 5260 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2610; /* neon_vst2v4si */

        case E_V4SFmode:
          if (!
#line 5260 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2611; /* neon_vst2v4sf */

        default:
          return -1;
        }

    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;
  switch (pattern169 (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 5115 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2567; /* neon_vld2v8qi */

        case E_V4HImode:
          if (!
#line 5115 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2568; /* neon_vld2v4hi */

        case E_V4HFmode:
          if (!
#line 5115 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2569; /* neon_vld2v4hf */

        case E_V4BFmode:
          if (!(
#line 5115 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 94 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
            return -1;
          return 2570; /* neon_vld2v4bf */

        case E_V2SImode:
          if (!
#line 5115 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2571; /* neon_vld2v2si */

        case E_V2SFmode:
          if (!
#line 5115 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2572; /* neon_vld2v2sf */

        case E_DImode:
          if (!
#line 5115 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2573; /* 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 5133 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2574; /* neon_vld2v16qi */

        case E_V8HImode:
          if (!
#line 5133 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2575; /* neon_vld2v8hi */

        case E_V8HFmode:
          if (!
#line 5133 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2576; /* neon_vld2v8hf */

        case E_V8BFmode:
          if (!(
#line 5133 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 116 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
            return -1;
          return 2577; /* neon_vld2v8bf */

        case E_V4SImode:
          if (!
#line 5133 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2578; /* neon_vld2v4si */

        case E_V4SFmode:
          if (!
#line 5133 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2579; /* neon_vld2v4sf */

        default:
          return -1;
        }

    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];
  int res ATTRIBUTE_UNUSED;
  switch (pattern163 (x1))
    {
    case 0:
      if (!(
#line 2827 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 153 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
        return -1;
      return 1906; /* neon_vcadd270v4hf */

    case 1:
      if (register_operand (operands[0], E_V8HFmode)
          && register_operand (operands[1], E_V8HFmode)
          && register_operand (operands[2], E_V8HFmode)
          && (
#line 2827 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 154 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
        return 1908; /* 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 1902 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3551; /* mve_vcaddq_rot270v8hf */

    case 2:
      if (!
#line 2827 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
        return -1;
      return 1910; /* neon_vcadd270v2sf */

    case 3:
      if (register_operand (operands[0], E_V4SFmode)
          && register_operand (operands[1], E_V4SFmode)
          && register_operand (operands[2], E_V4SFmode)
          && 
#line 2827 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
        return 1912; /* 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 1902 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3553; /* mve_vcaddq_rot270v4sf */

    case 4:
      if (!
#line 985 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3282; /* mve_vcaddq_rot270v16qi */

    case 5:
      if (!
#line 985 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3284; /* mve_vcaddq_rot270v8hi */

    case 6:
      if (!
#line 985 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3286; /* mve_vcaddq_rot270v4si */

    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];
  int res ATTRIBUTE_UNUSED;
  switch (pattern163 (x1))
    {
    case 0:
      if (!(
#line 2827 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 153 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
        return -1;
      return 1905; /* neon_vcadd90v4hf */

    case 1:
      if (register_operand (operands[0], E_V8HFmode)
          && register_operand (operands[1], E_V8HFmode)
          && register_operand (operands[2], E_V8HFmode)
          && (
#line 2827 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 154 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
        return 1907; /* 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 1902 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3550; /* mve_vcaddq_rot90v8hf */

    case 2:
      if (!
#line 2827 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
        return -1;
      return 1909; /* neon_vcadd90v2sf */

    case 3:
      if (register_operand (operands[0], E_V4SFmode)
          && register_operand (operands[1], E_V4SFmode)
          && register_operand (operands[2], E_V4SFmode)
          && 
#line 2827 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
        return 1911; /* 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 1902 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3552; /* mve_vcaddq_rot90v4sf */

    case 4:
      if (!
#line 985 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3281; /* mve_vcaddq_rot90v16qi */

    case 5:
      if (!
#line 985 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3283; /* mve_vcaddq_rot90v8hi */

    case 6:
      if (!
#line 985 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3285; /* mve_vcaddq_rot90v4si */

    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];
  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 4618 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2458; /* neon_vtbl1v8qi */

        case E_TImode:
          if (!s_register_operand (operands[1], E_TImode)
              || !
#line 4628 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2459; /* neon_vtbl2v8qi */

        case E_EImode:
          if (!s_register_operand (operands[1], E_EImode)
              || !
#line 4649 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2460; /* neon_vtbl3v8qi */

        case E_OImode:
          if (!s_register_operand (operands[1], E_OImode)
              || !
#line 4671 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2461; /* 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 4695 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2462; /* neon_vtbl1v16qi */

        case 1:
          if (!
#line 4726 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2463; /* neon_vtbl2v16qi */

        default:
          return -1;
        }

    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];
  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 2191 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_CDE && (TARGET_ARM_FP || TARGET_HAVE_MVE)))
        return -1;
      return 912; /* 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 2191 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_CDE && (TARGET_ARM_FP || TARGET_HAVE_MVE)))
        return -1;
      return 913; /* 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 10358 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_CDE && TARGET_HAVE_MVE))
        return -1;
      return 4932; /* arm_vcx1qv16qi */

    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;
  int res ATTRIBUTE_UNUSED;
  if (pattern172 (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 5471 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2653; /* neon_vld3_dupv8qi */

        case E_V4HImode:
          if (!
#line 5471 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2654; /* neon_vld3_dupv4hi */

        case E_V4HFmode:
          if (!
#line 5471 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2655; /* neon_vld3_dupv4hf */

        case E_V4BFmode:
          if (!(
#line 5471 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 94 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
            return -1;
          return 2656; /* neon_vld3_dupv4bf */

        case E_V2SImode:
          if (!
#line 5471 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2657; /* neon_vld3_dupv2si */

        case E_V2SFmode:
          if (!
#line 5471 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2658; /* 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 5471 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2659; /* neon_vld3_dupdi */

    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];
  int res ATTRIBUTE_UNUSED;
  switch (pattern159 (x1))
    {
    case 0:
      if (!
#line 2617 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1802; /* neon_vminsv8qi */

    case 1:
      if (!
#line 2617 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1806; /* neon_vminsv16qi */

    case 2:
      if (!
#line 2617 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1810; /* neon_vminsv4hi */

    case 3:
      if (!
#line 2617 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1814; /* neon_vminsv8hi */

    case 4:
      if (!
#line 2617 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1818; /* neon_vminsv2si */

    case 5:
      if (!
#line 2617 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1822; /* neon_vminsv4si */

    case 6:
      if (!
#line 2627 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1825; /* neon_vminfv2sf */

    case 7:
      if (!
#line 2627 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1827; /* neon_vminfv4sf */

    case 8:
      if (!
#line 2638 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1829; /* neon_vminfv8hf */

    case 9:
      if (!
#line 2638 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1831; /* neon_vminfv4hf */

    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];
  int res ATTRIBUTE_UNUSED;
  switch (pattern159 (x1))
    {
    case 0:
      if (!
#line 2617 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1800; /* neon_vmaxsv8qi */

    case 1:
      if (!
#line 2617 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1804; /* neon_vmaxsv16qi */

    case 2:
      if (!
#line 2617 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1808; /* neon_vmaxsv4hi */

    case 3:
      if (!
#line 2617 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1812; /* neon_vmaxsv8hi */

    case 4:
      if (!
#line 2617 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1816; /* neon_vmaxsv2si */

    case 5:
      if (!
#line 2617 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1820; /* neon_vmaxsv4si */

    case 6:
      if (!
#line 2627 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1824; /* neon_vmaxfv2sf */

    case 7:
      if (!
#line 2627 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1826; /* neon_vmaxfv4sf */

    case 8:
      if (!
#line 2638 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1828; /* neon_vmaxfv8hf */

    case 9:
      if (!
#line 2638 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1830; /* neon_vmaxfv4hf */

    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, 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 1287 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1408; /* neon_vpadd_internalv8qi */

    case E_V4HImode:
      if (pattern42 (x3, E_V4HImode) != 0
          || !
#line 1287 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1409; /* neon_vpadd_internalv4hi */

    case E_V2SImode:
      if (pattern42 (x3, E_V2SImode) != 0
          || !
#line 1287 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1410; /* neon_vpadd_internalv2si */

    case E_V2SFmode:
      if (pattern42 (x3, E_V2SFmode) != 0
          || !
#line 1287 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1411; /* neon_vpadd_internalv2sf */

    case E_V4HFmode:
      if (pattern42 (x3, E_V4HFmode) != 0
          || !
#line 1302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1412; /* neon_vpaddv4hf */

    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];
  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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
        return -1;
      return 835; /* neon_vrsqrtshf */

    case E_V2SFmode:
      if (pattern42 (x3, E_V2SFmode) != 0
          || !
#line 2764 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1890; /* neon_vrsqrtsv2sf */

    case E_V4SFmode:
      if (pattern42 (x3, E_V4SFmode) != 0
          || !
#line 2764 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1891; /* neon_vrsqrtsv4sf */

    case E_V8HFmode:
      if (pattern42 (x3, E_V8HFmode) != 0
          || !
#line 2775 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1892; /* neon_vrsqrtsv8hf */

    case E_V4HFmode:
      if (pattern42 (x3, E_V4HFmode) != 0
          || !
#line 2775 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1893; /* neon_vrsqrtsv4hf */

    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];
  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 718 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3169; /* mve_vcreateq_fv8hf */

    case E_V4SFmode:
      if (!s_register_operand (operands[0], E_V4SFmode)
          || GET_MODE (x3) != E_V4SFmode
          || !
#line 718 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3170; /* mve_vcreateq_fv4sf */

    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];
  int res ATTRIBUTE_UNUSED;
  switch (pattern165 (x1))
    {
    case 0:
      if (!
#line 4548 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2396; /* neon_vqshlu_nv8qi */

    case 1:
      if (!
#line 4548 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2397; /* neon_vqshlu_nv16qi */

    case 2:
      if (!
#line 4548 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2398; /* neon_vqshlu_nv4hi */

    case 3:
      if (!
#line 4548 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2399; /* neon_vqshlu_nv8hi */

    case 4:
      if (!
#line 4548 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2400; /* neon_vqshlu_nv2si */

    case 5:
      if (!
#line 4548 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2401; /* neon_vqshlu_nv4si */

    case 6:
      if (!
#line 4548 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2402; /* neon_vqshlu_ndi */

    case 7:
      if (!
#line 4548 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2403; /* neon_vqshlu_nv2di */

    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];
  int res ATTRIBUTE_UNUSED;
  switch (pattern165 (x1))
    {
    case 0:
      if (!
#line 4535 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2381; /* neon_vqshl_u_nv8qi */

    case 1:
      if (!
#line 4535 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2383; /* neon_vqshl_u_nv16qi */

    case 2:
      if (!
#line 4535 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2385; /* neon_vqshl_u_nv4hi */

    case 3:
      if (!
#line 4535 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2387; /* neon_vqshl_u_nv8hi */

    case 4:
      if (!
#line 4535 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2389; /* neon_vqshl_u_nv2si */

    case 5:
      if (!
#line 4535 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2391; /* neon_vqshl_u_nv4si */

    case 6:
      if (!
#line 4535 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2393; /* neon_vqshl_u_ndi */

    case 7:
      if (!
#line 4535 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2395; /* neon_vqshl_u_nv2di */

    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];
  int res ATTRIBUTE_UNUSED;
  switch (pattern165 (x1))
    {
    case 0:
      if (!
#line 4535 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2380; /* neon_vqshl_s_nv8qi */

    case 1:
      if (!
#line 4535 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2382; /* neon_vqshl_s_nv16qi */

    case 2:
      if (!
#line 4535 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2384; /* neon_vqshl_s_nv4hi */

    case 3:
      if (!
#line 4535 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2386; /* neon_vqshl_s_nv8hi */

    case 4:
      if (!
#line 4535 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2388; /* neon_vqshl_s_nv2si */

    case 5:
      if (!
#line 4535 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2390; /* neon_vqshl_s_nv4si */

    case 6:
      if (!
#line 4535 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2392; /* neon_vqshl_s_ndi */

    case 7:
      if (!
#line 4535 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2394; /* neon_vqshl_s_nv2di */

    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 (pattern165 (x1))
    {
    case 0:
      if (!
#line 4522 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2372; /* neon_vshl_nv8qi */

    case 1:
      if (!
#line 4522 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2373; /* neon_vshl_nv16qi */

    case 2:
      if (!
#line 4522 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2374; /* neon_vshl_nv4hi */

    case 3:
      if (!
#line 4522 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2375; /* neon_vshl_nv8hi */

    case 4:
      if (!
#line 4522 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2376; /* neon_vshl_nv2si */

    case 5:
      if (!
#line 4522 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2377; /* neon_vshl_nv4si */

    case 6:
      if (!
#line 4522 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2378; /* neon_vshl_ndi */

    case 7:
      if (!
#line 4522 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2379; /* neon_vshl_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 (pattern165 (x1))
    {
    case 0:
      if (!
#line 4467 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2319; /* neon_vrshru_nv8qi */

    case 1:
      if (!
#line 4467 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2323; /* neon_vrshru_nv16qi */

    case 2:
      if (!
#line 4467 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2327; /* neon_vrshru_nv4hi */

    case 3:
      if (!
#line 4467 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2331; /* neon_vrshru_nv8hi */

    case 4:
      if (!
#line 4467 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2335; /* neon_vrshru_nv2si */

    case 5:
      if (!
#line 4467 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2339; /* neon_vrshru_nv4si */

    case 6:
      if (!
#line 4467 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2343; /* neon_vrshru_ndi */

    case 7:
      if (!
#line 4467 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2347; /* neon_vrshru_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 (pattern165 (x1))
    {
    case 0:
      if (!
#line 4467 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2318; /* neon_vrshrs_nv8qi */

    case 1:
      if (!
#line 4467 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2322; /* neon_vrshrs_nv16qi */

    case 2:
      if (!
#line 4467 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2326; /* neon_vrshrs_nv4hi */

    case 3:
      if (!
#line 4467 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2330; /* neon_vrshrs_nv8hi */

    case 4:
      if (!
#line 4467 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2334; /* neon_vrshrs_nv2si */

    case 5:
      if (!
#line 4467 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2338; /* neon_vrshrs_nv4si */

    case 6:
      if (!
#line 4467 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2342; /* neon_vrshrs_ndi */

    case 7:
      if (!
#line 4467 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2346; /* neon_vrshrs_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 (pattern165 (x1))
    {
    case 0:
      if (!
#line 4467 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2317; /* neon_vshru_nv8qi */

    case 1:
      if (!
#line 4467 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2321; /* neon_vshru_nv16qi */

    case 2:
      if (!
#line 4467 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2325; /* neon_vshru_nv4hi */

    case 3:
      if (!
#line 4467 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2329; /* neon_vshru_nv8hi */

    case 4:
      if (!
#line 4467 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2333; /* neon_vshru_nv2si */

    case 5:
      if (!
#line 4467 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2337; /* neon_vshru_nv4si */

    case 6:
      if (!
#line 4467 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2341; /* neon_vshru_ndi */

    case 7:
      if (!
#line 4467 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2345; /* neon_vshru_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 (pattern165 (x1))
    {
    case 0:
      if (!
#line 4467 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2316; /* neon_vshrs_nv8qi */

    case 1:
      if (!
#line 4467 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2320; /* neon_vshrs_nv16qi */

    case 2:
      if (!
#line 4467 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2324; /* neon_vshrs_nv4hi */

    case 3:
      if (!
#line 4467 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2328; /* neon_vshrs_nv8hi */

    case 4:
      if (!
#line 4467 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2332; /* neon_vshrs_nv2si */

    case 5:
      if (!
#line 4467 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2336; /* neon_vshrs_nv4si */

    case 6:
      if (!
#line 4467 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2340; /* neon_vshrs_ndi */

    case 7:
      if (!
#line 4467 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2344; /* neon_vshrs_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 (pattern152 (x1))
    {
    case 0:
      if (!
#line 4456 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2287; /* neon_vqrshluv8qi */

    case 1:
      if (!
#line 4456 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2291; /* neon_vqrshluv16qi */

    case 2:
      if (!
#line 4456 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2295; /* neon_vqrshluv4hi */

    case 3:
      if (!
#line 4456 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2299; /* neon_vqrshluv8hi */

    case 4:
      if (!
#line 4456 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2303; /* neon_vqrshluv2si */

    case 5:
      if (!
#line 4456 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2307; /* neon_vqrshluv4si */

    case 6:
      if (!
#line 4456 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2311; /* neon_vqrshludi */

    case 7:
      if (!
#line 4456 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2315; /* neon_vqrshluv2di */

    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 (pattern152 (x1))
    {
    case 0:
      if (!
#line 4456 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2286; /* neon_vqrshlsv8qi */

    case 1:
      if (!
#line 4456 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2290; /* neon_vqrshlsv16qi */

    case 2:
      if (!
#line 4456 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2294; /* neon_vqrshlsv4hi */

    case 3:
      if (!
#line 4456 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2298; /* neon_vqrshlsv8hi */

    case 4:
      if (!
#line 4456 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2302; /* neon_vqrshlsv2si */

    case 5:
      if (!
#line 4456 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2306; /* neon_vqrshlsv4si */

    case 6:
      if (!
#line 4456 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2310; /* neon_vqrshlsdi */

    case 7:
      if (!
#line 4456 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2314; /* neon_vqrshlsv2di */

    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 (pattern152 (x1))
    {
    case 0:
      if (!
#line 4456 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2285; /* neon_vqshluv8qi */

    case 1:
      if (!
#line 4456 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2289; /* neon_vqshluv16qi */

    case 2:
      if (!
#line 4456 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2293; /* neon_vqshluv4hi */

    case 3:
      if (!
#line 4456 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2297; /* neon_vqshluv8hi */

    case 4:
      if (!
#line 4456 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2301; /* neon_vqshluv2si */

    case 5:
      if (!
#line 4456 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2305; /* neon_vqshluv4si */

    case 6:
      if (!
#line 4456 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2309; /* neon_vqshludi */

    case 7:
      if (!
#line 4456 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2313; /* neon_vqshluv2di */

    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 (pattern152 (x1))
    {
    case 0:
      if (!
#line 4456 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2284; /* neon_vqshlsv8qi */

    case 1:
      if (!
#line 4456 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2288; /* neon_vqshlsv16qi */

    case 2:
      if (!
#line 4456 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2292; /* neon_vqshlsv4hi */

    case 3:
      if (!
#line 4456 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2296; /* neon_vqshlsv8hi */

    case 4:
      if (!
#line 4456 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2300; /* neon_vqshlsv2si */

    case 5:
      if (!
#line 4456 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2304; /* neon_vqshlsv4si */

    case 6:
      if (!
#line 4456 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2308; /* neon_vqshlsdi */

    case 7:
      if (!
#line 4456 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2312; /* neon_vqshlsv2di */

    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 (pattern152 (x1))
    {
    case 0:
      if (!
#line 4445 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2255; /* neon_vrshluv8qi */

    case 1:
      if (!
#line 4445 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2259; /* neon_vrshluv16qi */

    case 2:
      if (!
#line 4445 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2263; /* neon_vrshluv4hi */

    case 3:
      if (!
#line 4445 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2267; /* neon_vrshluv8hi */

    case 4:
      if (!
#line 4445 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2271; /* neon_vrshluv2si */

    case 5:
      if (!
#line 4445 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2275; /* neon_vrshluv4si */

    case 6:
      if (!
#line 4445 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2279; /* neon_vrshludi */

    case 7:
      if (!
#line 4445 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2283; /* neon_vrshluv2di */

    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 (pattern152 (x1))
    {
    case 0:
      if (!
#line 4445 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2254; /* neon_vrshlsv8qi */

    case 1:
      if (!
#line 4445 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2258; /* neon_vrshlsv16qi */

    case 2:
      if (!
#line 4445 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2262; /* neon_vrshlsv4hi */

    case 3:
      if (!
#line 4445 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2266; /* neon_vrshlsv8hi */

    case 4:
      if (!
#line 4445 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2270; /* neon_vrshlsv2si */

    case 5:
      if (!
#line 4445 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2274; /* neon_vrshlsv4si */

    case 6:
      if (!
#line 4445 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2278; /* neon_vrshlsdi */

    case 7:
      if (!
#line 4445 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2282; /* neon_vrshlsv2di */

    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 (pattern152 (x1))
    {
    case 0:
      if (!
#line 4445 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2253; /* neon_vshluv8qi */

    case 1:
      if (!
#line 4445 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2257; /* neon_vshluv16qi */

    case 2:
      if (!
#line 4445 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2261; /* neon_vshluv4hi */

    case 3:
      if (!
#line 4445 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2265; /* neon_vshluv8hi */

    case 4:
      if (!
#line 4445 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2269; /* neon_vshluv2si */

    case 5:
      if (!
#line 4445 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2273; /* neon_vshluv4si */

    case 6:
      if (!
#line 4445 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2277; /* neon_vshludi */

    case 7:
      if (!
#line 4445 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2281; /* neon_vshluv2di */

    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 (pattern152 (x1))
    {
    case 0:
      if (!
#line 4445 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2252; /* neon_vshlsv8qi */

    case 1:
      if (!
#line 4445 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2256; /* neon_vshlsv16qi */

    case 2:
      if (!
#line 4445 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2260; /* neon_vshlsv4hi */

    case 3:
      if (!
#line 4445 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2264; /* neon_vshlsv8hi */

    case 4:
      if (!
#line 4445 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2268; /* neon_vshlsv2si */

    case 5:
      if (!
#line 4445 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2272; /* neon_vshlsv4si */

    case 6:
      if (!
#line 4445 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2276; /* neon_vshlsdi */

    case 7:
      if (!
#line 4445 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2280; /* neon_vshlsv2di */

    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 (pattern164 (x1))
    {
    case 0:
      if (!
#line 3724 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2104; /* neon_vcvtu_nv2sf */

    case 1:
      if (!
#line 3724 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2106; /* neon_vcvtu_nv4sf */

    case 2:
      if (!
#line 3738 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2108; /* neon_vcvtu_nv8hf */

    case 3:
      if (!
#line 3738 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2110; /* neon_vcvtu_nv4hf */

    case 4:
      if (!
#line 3751 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2112; /* neon_vcvtu_nv2si */

    case 5:
      if (!
#line 3751 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2114; /* neon_vcvtu_nv4si */

    case 6:
      if (!
#line 3765 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2116; /* neon_vcvtu_nv4hi */

    case 7:
      if (!
#line 3765 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2118; /* neon_vcvtu_nv8hi */

    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 (pattern164 (x1))
    {
    case 0:
      if (!
#line 3724 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2103; /* neon_vcvts_nv2sf */

    case 1:
      if (!
#line 3724 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2105; /* neon_vcvts_nv4sf */

    case 2:
      if (!
#line 3738 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2107; /* neon_vcvts_nv8hf */

    case 3:
      if (!
#line 3738 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2109; /* neon_vcvts_nv4hf */

    case 4:
      if (!
#line 3751 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2111; /* neon_vcvts_nv2si */

    case 5:
      if (!
#line 3751 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2113; /* neon_vcvts_nv4si */

    case 6:
      if (!
#line 3765 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2115; /* neon_vcvts_nv4hi */

    case 7:
      if (!
#line 3765 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2117; /* neon_vcvts_nv8hi */

    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];
  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 2743 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1886; /* neon_vrecpsv2sf */

    case E_V4SFmode:
      if (pattern42 (x3, E_V4SFmode) != 0
          || !
#line 2743 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1887; /* neon_vrecpsv4sf */

    case E_V8HFmode:
      if (pattern42 (x3, E_V8HFmode) != 0
          || !
#line 2754 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1888; /* neon_vrecpsv8hf */

    case E_V4HFmode:
      if (pattern42 (x3, E_V4HFmode) != 0
          || !
#line 2754 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1889; /* neon_vrecpsv4hf */

    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];
  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 2539 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1772; /* neon_vabdv8hf */

    case E_V4HFmode:
      if (pattern42 (x3, E_V4HFmode) != 0
          || !
#line 2539 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1773; /* neon_vabdv4hf */

    case E_V2SFmode:
      if (pattern42 (x3, E_V2SFmode) != 0
          || !
#line 2549 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1774; /* neon_vabdfv2sf */

    case E_V4SFmode:
      if (pattern42 (x3, E_V4SFmode) != 0
          || !
#line 2549 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1775; /* neon_vabdfv4sf */

    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 (pattern152 (x1))
    {
    case 0:
      if (!
#line 2229 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1607; /* neon_vqsubuv8qi */

    case 1:
      if (!
#line 2229 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1609; /* neon_vqsubuv16qi */

    case 2:
      if (!
#line 2229 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1611; /* neon_vqsubuv4hi */

    case 3:
      if (!
#line 2229 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1613; /* neon_vqsubuv8hi */

    case 4:
      if (!
#line 2229 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1615; /* neon_vqsubuv2si */

    case 5:
      if (!
#line 2229 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1617; /* neon_vqsubuv4si */

    case 6:
      if (!
#line 2229 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1619; /* neon_vqsubudi */

    case 7:
      if (!
#line 2229 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1621; /* neon_vqsubuv2di */

    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];
  int res ATTRIBUTE_UNUSED;
  switch (pattern152 (x1))
    {
    case 0:
      if (!
#line 2229 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1606; /* neon_vqsubsv8qi */

    case 1:
      if (!
#line 2229 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1608; /* neon_vqsubsv16qi */

    case 2:
      if (!
#line 2229 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1610; /* neon_vqsubsv4hi */

    case 3:
      if (!
#line 2229 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1612; /* neon_vqsubsv8hi */

    case 4:
      if (!
#line 2229 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1614; /* neon_vqsubsv2si */

    case 5:
      if (!
#line 2229 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1616; /* neon_vqsubsv4si */

    case 6:
      if (!
#line 2229 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1618; /* neon_vqsubsdi */

    case 7:
      if (!
#line 2229 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1620; /* neon_vqsubsv2di */

    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_V8QImode:
      if (pattern42 (x3, E_V8QImode) != 0
          || !
#line 1557 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1503; /* neon_vmulpv8qi */

    case E_V16QImode:
      if (pattern42 (x3, E_V16QImode) != 0
          || !
#line 1557 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1504; /* neon_vmulpv16qi */

    case E_V2SFmode:
      if (pattern42 (x3, E_V2SFmode) != 0
          || !
#line 1557 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1505; /* neon_vmulfv2sf */

    case E_V4SFmode:
      if (pattern42 (x3, E_V4SFmode) != 0
          || !
#line 1557 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1506; /* neon_vmulfv4sf */

    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 (pattern152 (x1))
    {
    case 0:
      if (!
#line 1536 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1482; /* neon_vqadduv8qi */

    case 1:
      if (!
#line 1536 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1484; /* neon_vqadduv16qi */

    case 2:
      if (!
#line 1536 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1486; /* neon_vqadduv4hi */

    case 3:
      if (!
#line 1536 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1488; /* neon_vqadduv8hi */

    case 4:
      if (!
#line 1536 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1490; /* neon_vqadduv2si */

    case 5:
      if (!
#line 1536 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1492; /* neon_vqadduv4si */

    case 6:
      if (!
#line 1536 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1494; /* neon_vqaddudi */

    case 7:
      if (!
#line 1536 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1496; /* neon_vqadduv2di */

    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 (pattern152 (x1))
    {
    case 0:
      if (!
#line 1536 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1481; /* neon_vqaddsv8qi */

    case 1:
      if (!
#line 1536 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1483; /* neon_vqaddsv16qi */

    case 2:
      if (!
#line 1536 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1485; /* neon_vqaddsv4hi */

    case 3:
      if (!
#line 1536 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1487; /* neon_vqaddsv8hi */

    case 4:
      if (!
#line 1536 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1489; /* neon_vqaddsv2si */

    case 5:
      if (!
#line 1536 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1491; /* neon_vqaddsv4si */

    case 6:
      if (!
#line 1536 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1493; /* neon_vqaddsdi */

    case 7:
      if (!
#line 1536 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1495; /* neon_vqaddsv2di */

    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, 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 670; /* iwmmxt_wsadbz */

    case E_V4HImode:
      if (!register_operand (operands[1], E_V4HImode)
          || !register_operand (operands[2], E_V4HImode)
          || !
#line 1760 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 671; /* iwmmxt_wsadhz */

    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 (pattern173 (x1, E_OImode))
    {
    case 0:
      if (!
#line 5860 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2729; /* neon_vst4v8qi */

    case 1:
      if (!
#line 5860 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2730; /* neon_vst4v4hi */

    case 2:
      if (!
#line 5860 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2731; /* neon_vst4v4hf */

    case 3:
      if (!(
#line 5860 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 94 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
        return -1;
      return 2732; /* neon_vst4v4bf */

    case 4:
      if (!
#line 5860 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2733; /* neon_vst4v2si */

    case 5:
      if (!
#line 5860 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2734; /* neon_vst4v2sf */

    case 6:
      if (!
#line 5860 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2735; /* neon_vst4di */

    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 (pattern170 (x1, E_OImode))
    {
    case 0:
      if (!
#line 5669 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2691; /* neon_vld4v8qi */

    case 1:
      if (!
#line 5669 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2692; /* neon_vld4v4hi */

    case 2:
      if (!
#line 5669 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2693; /* neon_vld4v4hf */

    case 3:
      if (!(
#line 5669 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 94 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
        return -1;
      return 2694; /* neon_vld4v4bf */

    case 4:
      if (!
#line 5669 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2695; /* neon_vld4v2si */

    case 5:
      if (!
#line 5669 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2696; /* neon_vld4v2sf */

    case 6:
      if (!
#line 5669 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2697; /* neon_vld4di */

    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];
  int res ATTRIBUTE_UNUSED;
  switch (pattern173 (x1, E_EImode))
    {
    case 0:
      if (!
#line 5524 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2661; /* neon_vst3v8qi */

    case 1:
      if (!
#line 5524 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2662; /* neon_vst3v4hi */

    case 2:
      if (!
#line 5524 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2663; /* neon_vst3v4hf */

    case 3:
      if (!(
#line 5524 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 94 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
        return -1;
      return 2664; /* neon_vst3v4bf */

    case 4:
      if (!
#line 5524 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2665; /* neon_vst3v2si */

    case 5:
      if (!
#line 5524 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2666; /* neon_vst3v2sf */

    case 6:
      if (!
#line 5524 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2667; /* neon_vst3di */

    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 (pattern170 (x1, E_EImode))
    {
    case 0:
      if (!
#line 5331 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2623; /* neon_vld3v8qi */

    case 1:
      if (!
#line 5331 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2624; /* neon_vld3v4hi */

    case 2:
      if (!
#line 5331 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2625; /* neon_vld3v4hf */

    case 3:
      if (!(
#line 5331 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 94 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
        return -1;
      return 2626; /* neon_vld3v4bf */

    case 4:
      if (!
#line 5331 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2627; /* neon_vld3v2si */

    case 5:
      if (!
#line 5331 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2628; /* neon_vld3v2sf */

    case 6:
      if (!
#line 5331 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2629; /* neon_vld3di */

    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 (pattern145 (x1))
    {
    case 0:
      if (!
#line 888 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1363; /* ashlv8qi3_unsigned */

    case 1:
      if (!
#line 888 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1364; /* ashlv16qi3_unsigned */

    case 2:
      if (!
#line 888 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1365; /* ashlv4hi3_unsigned */

    case 3:
      if (!
#line 888 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1366; /* ashlv8hi3_unsigned */

    case 4:
      if (!
#line 888 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1367; /* ashlv2si3_unsigned */

    case 5:
      if (!
#line 888 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1368; /* ashlv4si3_unsigned */

    case 6:
      if (!
#line 888 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1369; /* ashlv2di3_unsigned */

    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 (pattern145 (x1))
    {
    case 0:
      if (!
#line 875 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1356; /* ashlv8qi3_signed */

    case 1:
      if (!
#line 875 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1357; /* ashlv16qi3_signed */

    case 2:
      if (!
#line 875 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1358; /* ashlv4hi3_signed */

    case 3:
      if (!
#line 875 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1359; /* ashlv8hi3_signed */

    case 4:
      if (!
#line 875 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1360; /* ashlv2si3_signed */

    case 5:
      if (!
#line 875 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1361; /* ashlv4si3_signed */

    case 6:
      if (!
#line 875 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1362; /* ashlv2di3_signed */

    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 (pattern144 (x1))
    {
    case 0:
      if (!
#line 2095 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
        return -1;
      return 903; /* neon_vminnmhf */

    case 1:
      if (!
#line 2106 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
        return -1;
      return 905; /* fminsf3 */

    case 2:
      if (!(
#line 2106 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
        return -1;
      return 907; /* fmindf3 */

    case 3:
      if (!
#line 2661 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1835; /* neon_vminnmv8hf */

    case 4:
      if (!
#line 2661 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1837; /* neon_vminnmv4hf */

    case 5:
      if (!
#line 2672 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
        return -1;
      return 1839; /* neon_vminnmv2sf */

    case 6:
      if (!
#line 2672 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
        return -1;
      return 1841; /* neon_vminnmv4sf */

    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 (pattern144 (x1))
    {
    case 0:
      if (!
#line 2095 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
        return -1;
      return 902; /* neon_vmaxnmhf */

    case 1:
      if (!
#line 2106 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
        return -1;
      return 904; /* fmaxsf3 */

    case 2:
      if (!(
#line 2106 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
        return -1;
      return 906; /* fmaxdf3 */

    case 3:
      if (!
#line 2661 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1834; /* neon_vmaxnmv8hf */

    case 4:
      if (!
#line 2661 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1836; /* neon_vmaxnmv4hf */

    case 5:
      if (!
#line 2672 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
        return -1;
      return 1838; /* neon_vmaxnmv2sf */

    case 6:
      if (!
#line 2672 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
        return -1;
      return 1840; /* neon_vmaxnmv4sf */

    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 (pattern174 (x1, E_XImode, E_OImode))
    {
    case 0:
      if (!
#line 5913 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2742; /* neon_vst4qbv16qi */

    case 1:
      if (!
#line 5913 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2743; /* neon_vst4qbv8hi */

    case 2:
      if (!
#line 5913 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2744; /* neon_vst4qbv8hf */

    case 3:
      if (!(
#line 5913 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 116 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
        return -1;
      return 2745; /* neon_vst4qbv8bf */

    case 4:
      if (!
#line 5913 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2746; /* neon_vst4qbv4si */

    case 5:
      if (!
#line 5913 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2747; /* neon_vst4qbv4sf */

    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 (pattern174 (x1, E_XImode, E_OImode))
    {
    case 0:
      if (!
#line 5893 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2736; /* neon_vst4qav16qi */

    case 1:
      if (!
#line 5893 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2737; /* neon_vst4qav8hi */

    case 2:
      if (!
#line 5893 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2738; /* neon_vst4qav8hf */

    case 3:
      if (!(
#line 5893 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 116 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
        return -1;
      return 2739; /* neon_vst4qav8bf */

    case 4:
      if (!
#line 5893 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2740; /* neon_vst4qav4si */

    case 5:
      if (!
#line 5893 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2741; /* neon_vst4qav4sf */

    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 (pattern171 (x1, E_OImode, E_XImode))
    {
    case 0:
      if (!
#line 5702 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2698; /* neon_vld4qav16qi */

    case 1:
      if (!
#line 5702 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2699; /* neon_vld4qav8hi */

    case 2:
      if (!
#line 5702 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2700; /* neon_vld4qav8hf */

    case 3:
      if (!(
#line 5702 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 116 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
        return -1;
      return 2701; /* neon_vld4qav8bf */

    case 4:
      if (!
#line 5702 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2702; /* neon_vld4qav4si */

    case 5:
      if (!
#line 5702 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2703; /* neon_vld4qav4sf */

    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];
  int res ATTRIBUTE_UNUSED;
  switch (pattern174 (x1, E_CImode, E_EImode))
    {
    case 0:
      if (!
#line 5585 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2674; /* neon_vst3qbv16qi */

    case 1:
      if (!
#line 5585 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2675; /* neon_vst3qbv8hi */

    case 2:
      if (!
#line 5585 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2676; /* neon_vst3qbv8hf */

    case 3:
      if (!(
#line 5585 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 116 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
        return -1;
      return 2677; /* neon_vst3qbv8bf */

    case 4:
      if (!
#line 5585 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2678; /* neon_vst3qbv4si */

    case 5:
      if (!
#line 5585 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2679; /* neon_vst3qbv4sf */

    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 (pattern174 (x1, E_CImode, E_EImode))
    {
    case 0:
      if (!
#line 5566 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2668; /* neon_vst3qav16qi */

    case 1:
      if (!
#line 5566 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2669; /* neon_vst3qav8hi */

    case 2:
      if (!
#line 5566 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2670; /* neon_vst3qav8hf */

    case 3:
      if (!(
#line 5566 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 116 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
        return -1;
      return 2671; /* neon_vst3qav8bf */

    case 4:
      if (!
#line 5566 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2672; /* neon_vst3qav4si */

    case 5:
      if (!
#line 5566 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2673; /* neon_vst3qav4sf */

    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 (pattern171 (x1, E_EImode, E_CImode))
    {
    case 0:
      if (!
#line 5374 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2630; /* neon_vld3qav16qi */

    case 1:
      if (!
#line 5374 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2631; /* neon_vld3qav8hi */

    case 2:
      if (!
#line 5374 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2632; /* neon_vld3qav8hf */

    case 3:
      if (!(
#line 5374 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 116 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
        return -1;
      return 2633; /* neon_vld3qav8bf */

    case 4:
      if (!
#line 5374 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2634; /* neon_vld3qav4si */

    case 5:
      if (!
#line 5374 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2635; /* neon_vld3qav4sf */

    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 (pattern161 (x1))
    {
    case 0:
      if (!
#line 2713 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1859; /* neon_vpadaluv8qi */

    case 1:
      if (!
#line 2713 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1861; /* neon_vpadaluv16qi */

    case 2:
      if (!
#line 2713 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1863; /* neon_vpadaluv4hi */

    case 3:
      if (!
#line 2713 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1865; /* neon_vpadaluv8hi */

    case 4:
      if (!
#line 2713 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1867; /* neon_vpadaluv2si */

    case 5:
      if (!
#line 2713 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1869; /* neon_vpadaluv4si */

    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 (pattern161 (x1))
    {
    case 0:
      if (!
#line 2713 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1858; /* neon_vpadalsv8qi */

    case 1:
      if (!
#line 2713 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1860; /* neon_vpadalsv16qi */

    case 2:
      if (!
#line 2713 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1862; /* neon_vpadalsv4hi */

    case 3:
      if (!
#line 2713 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1864; /* neon_vpadalsv8hi */

    case 4:
      if (!
#line 2713 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1866; /* neon_vpadalsv2si */

    case 5:
      if (!
#line 2713 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1868; /* neon_vpadalsv4si */

    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 (pattern160 (x1))
    {
    case 0:
      if (!
#line 2649 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1833; /* neon_vpminfv4hf */

    case 1:
      if (!
#line 2723 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1872; /* neon_vpminsv8qi */

    case 2:
      if (!
#line 2723 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1876; /* neon_vpminsv4hi */

    case 3:
      if (!
#line 2723 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1880; /* neon_vpminsv2si */

    case 4:
      if (!
#line 2733 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1883; /* neon_vpminfv2sf */

    case 5:
      if (!
#line 2733 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1885; /* neon_vpminfv4sf */

    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 (pattern160 (x1))
    {
    case 0:
      if (!
#line 2649 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1832; /* neon_vpmaxfv4hf */

    case 1:
      if (!
#line 2723 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1870; /* neon_vpmaxsv8qi */

    case 2:
      if (!
#line 2723 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1874; /* neon_vpmaxsv4hi */

    case 3:
      if (!
#line 2723 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1878; /* neon_vpmaxsv2si */

    case 4:
      if (!
#line 2733 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1882; /* neon_vpmaxfv2sf */

    case 5:
      if (!
#line 2733 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1884; /* neon_vpmaxfv4sf */

    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 (pattern151 (x1))
    {
    case 0:
      if (!
#line 2617 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1803; /* neon_vminuv8qi */

    case 1:
      if (!
#line 2617 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1807; /* neon_vminuv16qi */

    case 2:
      if (!
#line 2617 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1811; /* neon_vminuv4hi */

    case 3:
      if (!
#line 2617 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1815; /* neon_vminuv8hi */

    case 4:
      if (!
#line 2617 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1819; /* neon_vminuv2si */

    case 5:
      if (!
#line 2617 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1823; /* neon_vminuv4si */

    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 (pattern151 (x1))
    {
    case 0:
      if (!
#line 2617 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1801; /* neon_vmaxuv8qi */

    case 1:
      if (!
#line 2617 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1805; /* neon_vmaxuv16qi */

    case 2:
      if (!
#line 2617 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1809; /* neon_vmaxuv4hi */

    case 3:
      if (!
#line 2617 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1813; /* neon_vmaxuv8hi */

    case 4:
      if (!
#line 2617 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1817; /* neon_vmaxuv2si */

    case 5:
      if (!
#line 2617 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1821; /* neon_vmaxuv4si */

    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 (pattern151 (x1))
    {
    case 0:
      if (!
#line 2529 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1761; /* neon_vabduv8qi */

    case 1:
      if (!
#line 2529 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1763; /* neon_vabduv16qi */

    case 2:
      if (!
#line 2529 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1765; /* neon_vabduv4hi */

    case 3:
      if (!
#line 2529 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1767; /* neon_vabduv8hi */

    case 4:
      if (!
#line 2529 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1769; /* neon_vabduv2si */

    case 5:
      if (!
#line 2529 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1771; /* neon_vabduv4si */

    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 (pattern151 (x1))
    {
    case 0:
      if (!
#line 2529 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1760; /* neon_vabdsv8qi */

    case 1:
      if (!
#line 2529 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1762; /* neon_vabdsv16qi */

    case 2:
      if (!
#line 2529 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1764; /* neon_vabdsv4hi */

    case 3:
      if (!
#line 2529 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1766; /* neon_vabdsv8hi */

    case 4:
      if (!
#line 2529 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1768; /* neon_vabdsv2si */

    case 5:
      if (!
#line 2529 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1770; /* neon_vabdsv4si */

    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 (pattern151 (x1))
    {
    case 0:
      if (!
#line 2239 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1623; /* neon_vhsubuv8qi */

    case 1:
      if (!
#line 2239 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1625; /* neon_vhsubuv16qi */

    case 2:
      if (!
#line 2239 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1627; /* neon_vhsubuv4hi */

    case 3:
      if (!
#line 2239 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1629; /* neon_vhsubuv8hi */

    case 4:
      if (!
#line 2239 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1631; /* neon_vhsubuv2si */

    case 5:
      if (!
#line 2239 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1633; /* neon_vhsubuv4si */

    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 (pattern151 (x1))
    {
    case 0:
      if (!
#line 2239 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1622; /* neon_vhsubsv8qi */

    case 1:
      if (!
#line 2239 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1624; /* neon_vhsubsv16qi */

    case 2:
      if (!
#line 2239 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1626; /* neon_vhsubsv4hi */

    case 3:
      if (!
#line 2239 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1628; /* neon_vhsubsv8hi */

    case 4:
      if (!
#line 2239 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1630; /* neon_vhsubsv2si */

    case 5:
      if (!
#line 2239 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1632; /* neon_vhsubsv4si */

    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 (pattern151 (x1))
    {
    case 0:
      if (!
#line 1526 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1460; /* neon_vhadduv8qi */

    case 1:
      if (!
#line 1526 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1464; /* neon_vhadduv16qi */

    case 2:
      if (!
#line 1526 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1468; /* neon_vhadduv4hi */

    case 3:
      if (!
#line 1526 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1472; /* neon_vhadduv8hi */

    case 4:
      if (!
#line 1526 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1476; /* neon_vhadduv2si */

    case 5:
      if (!
#line 1526 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1480; /* neon_vhadduv4si */

    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 (pattern151 (x1))
    {
    case 0:
      if (!
#line 1526 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1459; /* neon_vhaddsv8qi */

    case 1:
      if (!
#line 1526 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1463; /* neon_vhaddsv16qi */

    case 2:
      if (!
#line 1526 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1467; /* neon_vhaddsv4hi */

    case 3:
      if (!
#line 1526 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1471; /* neon_vhaddsv8hi */

    case 4:
      if (!
#line 1526 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1475; /* neon_vhaddsv2si */

    case 5:
      if (!
#line 1526 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1479; /* neon_vhaddsv4si */

    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 (pattern151 (x1))
    {
    case 0:
      if (!
#line 1526 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1458; /* neon_vrhadduv8qi */

    case 1:
      if (!
#line 1526 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1462; /* neon_vrhadduv16qi */

    case 2:
      if (!
#line 1526 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1466; /* neon_vrhadduv4hi */

    case 3:
      if (!
#line 1526 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1470; /* neon_vrhadduv8hi */

    case 4:
      if (!
#line 1526 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1474; /* neon_vrhadduv2si */

    case 5:
      if (!
#line 1526 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1478; /* neon_vrhadduv4si */

    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 (pattern151 (x1))
    {
    case 0:
      if (!
#line 1526 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1457; /* neon_vrhaddsv8qi */

    case 1:
      if (!
#line 1526 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1461; /* neon_vrhaddsv16qi */

    case 2:
      if (!
#line 1526 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1465; /* neon_vrhaddsv4hi */

    case 3:
      if (!
#line 1526 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1469; /* neon_vrhaddsv8hi */

    case 4:
      if (!
#line 1526 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1473; /* neon_vrhaddsv2si */

    case 5:
      if (!
#line 1526 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1477; /* neon_vrhaddsv4si */

    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];
  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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
    return -1;
  *pnum_clobbers = 2;
  return 982; /* thumb1_casesi_dispatch */
}

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 (pattern140 (x1))
    {
    case 0:
      if (!
#line 313 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vec-common.md"
(ARM_HAVE_V8QI_ARITH && !TARGET_REALLY_IWMMXT))
        return -1;
      return 504; /* mve_vshlq_uv8qi */

    case 1:
      if (!
#line 313 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vec-common.md"
(ARM_HAVE_V16QI_ARITH && !TARGET_REALLY_IWMMXT))
        return -1;
      return 506; /* mve_vshlq_uv16qi */

    case 2:
      if (!
#line 313 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vec-common.md"
(ARM_HAVE_V4HI_ARITH && !TARGET_REALLY_IWMMXT))
        return -1;
      return 508; /* mve_vshlq_uv4hi */

    case 3:
      if (!
#line 313 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vec-common.md"
(ARM_HAVE_V8HI_ARITH && !TARGET_REALLY_IWMMXT))
        return -1;
      return 510; /* mve_vshlq_uv8hi */

    case 4:
      if (!
#line 313 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vec-common.md"
(ARM_HAVE_V2SI_ARITH && !TARGET_REALLY_IWMMXT))
        return -1;
      return 512; /* mve_vshlq_uv2si */

    case 5:
      if (!
#line 313 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vec-common.md"
(ARM_HAVE_V4SI_ARITH && !TARGET_REALLY_IWMMXT))
        return -1;
      return 514; /* mve_vshlq_uv4si */

    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 (pattern140 (x1))
    {
    case 0:
      if (!
#line 313 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vec-common.md"
(ARM_HAVE_V8QI_ARITH && !TARGET_REALLY_IWMMXT))
        return -1;
      return 503; /* mve_vshlq_sv8qi */

    case 1:
      if (!
#line 313 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vec-common.md"
(ARM_HAVE_V16QI_ARITH && !TARGET_REALLY_IWMMXT))
        return -1;
      return 505; /* mve_vshlq_sv16qi */

    case 2:
      if (!
#line 313 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vec-common.md"
(ARM_HAVE_V4HI_ARITH && !TARGET_REALLY_IWMMXT))
        return -1;
      return 507; /* mve_vshlq_sv4hi */

    case 3:
      if (!
#line 313 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vec-common.md"
(ARM_HAVE_V8HI_ARITH && !TARGET_REALLY_IWMMXT))
        return -1;
      return 509; /* mve_vshlq_sv8hi */

    case 4:
      if (!
#line 313 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vec-common.md"
(ARM_HAVE_V2SI_ARITH && !TARGET_REALLY_IWMMXT))
        return -1;
      return 511; /* mve_vshlq_sv2si */

    case 5:
      if (!
#line 313 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vec-common.md"
(ARM_HAVE_V4SI_ARITH && !TARGET_REALLY_IWMMXT))
        return -1;
      return 513; /* mve_vshlq_sv4si */

    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 (pattern221 (x1, E_XImode))
    {
    case 0:
      if (!
#line 10016 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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_vld4qv16qi */

    case 1:
      if (!
#line 10016 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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_vld4qv8hi */

    case 2:
      if (!
#line 10016 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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_vld4qv4si */

    case 3:
      if (!
#line 10016 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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_vld4qv8hf */

    case 4:
      if (!
#line 10016 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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_vld4qv4sf */

    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];
  int res ATTRIBUTE_UNUSED;
  switch (pattern221 (x1, E_OImode))
    {
    case 0:
      if (!
#line 9988 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 4884; /* mve_vld2qv16qi */

    case 1:
      if (!
#line 9988 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 4885; /* mve_vld2qv8hi */

    case 2:
      if (!
#line 9988 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 4886; /* mve_vld2qv4si */

    case 3:
      if (!
#line 9988 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 4887; /* mve_vld2qv8hf */

    case 4:
      if (!
#line 9988 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 4888; /* mve_vld2qv4sf */

    default:
      return -1;
    }
}

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 (pattern175 (x1, E_OImode))
    {
    case 0:
      if (!
#line 9960 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 4879; /* mve_vst2qv16qi */

    case 1:
      if (!
#line 9960 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 4880; /* mve_vst2qv8hi */

    case 2:
      if (!
#line 9960 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 4881; /* mve_vst2qv4si */

    case 3:
      if (!
#line 9960 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 4882; /* mve_vst2qv8hf */

    case 4:
      if (!
#line 9960 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 4883; /* mve_vst2qv4sf */

    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 (pattern175 (x1, E_XImode))
    {
    case 0:
      if (!
#line 100 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3043; /* mve_vst4qv16qi */

    case 1:
      if (!
#line 100 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3044; /* mve_vst4qv8hi */

    case 2:
      if (!
#line 100 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3045; /* mve_vst4qv4si */

    case 3:
      if (!
#line 100 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3046; /* mve_vst4qv8hf */

    case 4:
      if (!
#line 100 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3047; /* mve_vst4qv4sf */

    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];
  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 381; /* stack_tie */
}

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];
  rtx x2, x3, x4, x5;
  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)
      || !
#line 8077 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
    return -1;
  return 4751; /* mve_vstrhq_p_fv8hf */
}

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];
  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 7501 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
    return -1;
  return 4709; /* mve_vldrhq_z_fv8hf */
}

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];
  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 (!mve_imm_7 (operands[2], E_SImode))
    return -1;
  switch (pattern125 (x3))
    {
    case 0:
      if (!
#line 1623 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3464; /* mve_vqshluq_n_sv16qi */

    case 1:
      if (!
#line 1623 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3465; /* mve_vqshluq_n_sv8hi */

    case 2:
      if (!
#line 1623 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3466; /* mve_vqshluq_n_sv4si */

    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];
  int res ATTRIBUTE_UNUSED;
  switch (pattern178 (x1))
    {
    case 0:
      if (!
#line 733 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3172; /* mve_vcreateq_sv16qi */

    case 1:
      if (!
#line 733 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3174; /* mve_vcreateq_sv8hi */

    case 2:
      if (!
#line 733 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3176; /* mve_vcreateq_sv4si */

    case 3:
      if (!
#line 733 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3178; /* mve_vcreateq_sv2di */

    default:
      return -1;
    }
}

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];
  int res ATTRIBUTE_UNUSED;
  switch (pattern178 (x1))
    {
    case 0:
      if (!
#line 733 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3171; /* mve_vcreateq_uv16qi */

    case 1:
      if (!
#line 733 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3173; /* mve_vcreateq_uv8hi */

    case 2:
      if (!
#line 733 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3175; /* mve_vcreateq_uv4si */

    case 3:
      if (!
#line 733 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3177; /* mve_vcreateq_uv2di */

    default:
      return -1;
    }
}

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];
  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 6388 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
    return -1;
  return 2826; /* neon_vbfcvtv4sf_highv8bf */
}

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 (pattern158 (x1))
    {
    case 0:
      if (!
#line 2452 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1733; /* neon_vcaltv2sf_insn_unspec */

    case 1:
      if (!
#line 2452 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1737; /* neon_vcaltv4sf_insn_unspec */

    case 2:
      if (!
#line 2493 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1749; /* neon_vcaltv8hf_fp16insn_unspec */

    case 3:
      if (!
#line 2493 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1753; /* neon_vcaltv4hf_fp16insn_unspec */

    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];
  int res ATTRIBUTE_UNUSED;
  switch (pattern158 (x1))
    {
    case 0:
      if (!
#line 2452 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1732; /* neon_vcalev2sf_insn_unspec */

    case 1:
      if (!
#line 2452 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1736; /* neon_vcalev4sf_insn_unspec */

    case 2:
      if (!
#line 2493 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1748; /* neon_vcalev8hf_fp16insn_unspec */

    case 3:
      if (!
#line 2493 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1752; /* neon_vcalev4hf_fp16insn_unspec */

    default:
      return -1;
    }
}

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 (pattern158 (x1))
    {
    case 0:
      if (!
#line 2452 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1731; /* neon_vcagtv2sf_insn_unspec */

    case 1:
      if (!
#line 2452 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1735; /* neon_vcagtv4sf_insn_unspec */

    case 2:
      if (!
#line 2493 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1747; /* neon_vcagtv8hf_fp16insn_unspec */

    case 3:
      if (!
#line 2493 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1751; /* neon_vcagtv4hf_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 (pattern158 (x1))
    {
    case 0:
      if (!
#line 2452 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1730; /* neon_vcagev2sf_insn_unspec */

    case 1:
      if (!
#line 2452 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1734; /* neon_vcagev4sf_insn_unspec */

    case 2:
      if (!
#line 2493 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1746; /* neon_vcagev8hf_fp16insn_unspec */

    case 3:
      if (!
#line 2493 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1750; /* neon_vcagev4hf_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 (pattern157 (x1))
    {
    case 0:
      if (!
#line 2327 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1684; /* neon_vclev2sf_insn_unspec */

    case 1:
      if (!
#line 2327 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1689; /* neon_vclev4sf_insn_unspec */

    case 2:
      if (!
#line 2394 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1704; /* neon_vclev8hf_fp16insn_unspec */

    case 3:
      if (!
#line 2394 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1709; /* neon_vclev4hf_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 (pattern157 (x1))
    {
    case 0:
      if (!
#line 2327 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1683; /* neon_vcltv2sf_insn_unspec */

    case 1:
      if (!
#line 2327 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1688; /* neon_vcltv4sf_insn_unspec */

    case 2:
      if (!
#line 2394 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1703; /* neon_vcltv8hf_fp16insn_unspec */

    case 3:
      if (!
#line 2394 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1708; /* neon_vcltv4hf_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 (pattern157 (x1))
    {
    case 0:
      if (!
#line 2327 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1682; /* neon_vcgev2sf_insn_unspec */

    case 1:
      if (!
#line 2327 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1687; /* neon_vcgev4sf_insn_unspec */

    case 2:
      if (!
#line 2394 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1702; /* neon_vcgev8hf_fp16insn_unspec */

    case 3:
      if (!
#line 2394 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1707; /* neon_vcgev4hf_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 (pattern157 (x1))
    {
    case 0:
      if (!
#line 2327 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1681; /* neon_vcgtv2sf_insn_unspec */

    case 1:
      if (!
#line 2327 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1686; /* neon_vcgtv4sf_insn_unspec */

    case 2:
      if (!
#line 2394 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1701; /* neon_vcgtv8hf_fp16insn_unspec */

    case 3:
      if (!
#line 2394 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1706; /* neon_vcgtv4hf_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 (pattern157 (x1))
    {
    case 0:
      if (!
#line 2327 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1680; /* neon_vceqv2sf_insn_unspec */

    case 1:
      if (!
#line 2327 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1685; /* neon_vceqv4sf_insn_unspec */

    case 2:
      if (!
#line 2394 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1700; /* neon_vceqv8hf_fp16insn_unspec */

    case 3:
      if (!
#line 2394 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1705; /* neon_vceqv4hf_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 (pattern154 (x1))
    {
    case 0:
      if (!
#line 2116 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1562; /* neon_vqrdmulhv4hi */

    case 1:
      if (!
#line 2116 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1564; /* neon_vqrdmulhv2si */

    case 2:
      if (!
#line 2116 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1566; /* neon_vqrdmulhv8hi */

    case 3:
      if (!
#line 2116 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1568; /* neon_vqrdmulhv4si */

    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 (pattern154 (x1))
    {
    case 0:
      if (!
#line 2116 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1561; /* neon_vqdmulhv4hi */

    case 1:
      if (!
#line 2116 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1563; /* neon_vqdmulhv2si */

    case 2:
      if (!
#line 2116 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1565; /* neon_vqdmulhv8hi */

    case 3:
      if (!
#line 2116 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1567; /* neon_vqdmulhv4si */

    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 (pattern146 (x1))
    {
    case 0:
      if (!
#line 1325 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1417; /* neon_vpsmaxv8qi */

    case 1:
      if (!
#line 1325 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1418; /* neon_vpsmaxv4hi */

    case 2:
      if (!
#line 1325 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1419; /* neon_vpsmaxv2si */

    case 3:
      if (!
#line 1325 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1420; /* neon_vpsmaxv2sf */

    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 (pattern146 (x1))
    {
    case 0:
      if (!
#line 1312 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1413; /* neon_vpsminv8qi */

    case 1:
      if (!
#line 1312 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1414; /* neon_vpsminv4hi */

    case 2:
      if (!
#line 1312 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1415; /* neon_vpsminv2si */

    case 3:
      if (!
#line 1312 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1416; /* neon_vpsminv2sf */

    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];
  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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
    return -1;
  return 578; /* iwmmxt_wshufh */
}

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];
  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 6063 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ))
    return -1;
  return 248; /* arm_usat16_insn */
}

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_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 6063 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ))
    return -1;
  return 246; /* arm_ssat16_insn */
}

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, 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 4425 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_CDE))
        return -1;
      return 135; /* arm_cx1si */

    case 1:
      if (!
#line 4425 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_CDE))
        return -1;
      return 136; /* arm_cx1di */

    default:
      return -1;
    }
}

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;
  int res ATTRIBUTE_UNUSED;
  if (pattern230 (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 5747 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2710; /* 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 5747 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2711; /* 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 5747 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2712; /* 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 5747 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2713; /* 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 5747 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2714; /* 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 5747 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2715; /* 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 5774 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2716; /* 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 5774 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2717; /* 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 5774 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2718; /* 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 5774 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2719; /* 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 5774 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 119 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
            return -1;
          return 2720; /* neon_vld4_lanev8bf */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

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;
  int res ATTRIBUTE_UNUSED;
  if (pattern230 (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 5146 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2580; /* 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 5146 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2581; /* 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 5146 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2582; /* 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 5146 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2583; /* 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 5146 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2584; /* 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 5146 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2585; /* 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 5170 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2586; /* 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 5170 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2587; /* 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 5170 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2588; /* 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 5170 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2589; /* 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 5170 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 119 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
            return -1;
          return 2590; /* neon_vld2_lanev8bf */

        default:
          return -1;
        }

    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, 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) != 326)
    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 5417 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2642; /* neon_vld3_lanev8qi */

        case E_V4HImode:
          if (!
#line 5417 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2643; /* neon_vld3_lanev4hi */

        case E_V4HFmode:
          if (!
#line 5417 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2644; /* neon_vld3_lanev4hf */

        case E_V4BFmode:
          if (!
#line 5417 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2645; /* neon_vld3_lanev4bf */

        case E_V2SImode:
          if (!
#line 5417 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2646; /* neon_vld3_lanev2si */

        case E_V2SFmode:
          if (!
#line 5417 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2647; /* 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 5443 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2648; /* neon_vld3_lanev8hi */

        case E_V8HFmode:
          if (!
#line 5443 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2649; /* neon_vld3_lanev8hf */

        case E_V4SImode:
          if (!
#line 5443 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2650; /* neon_vld3_lanev4si */

        case E_V4SFmode:
          if (!
#line 5443 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2651; /* neon_vld3_lanev4sf */

        case E_V8BFmode:
          if (!(
#line 5443 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 119 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_BF16_SIMD)))
            return -1;
          return 2652; /* neon_vld3_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;
  int res ATTRIBUTE_UNUSED;
  switch (pattern226 (x1))
    {
    case 0:
      x2 = XEXP (x1, 1);
      if (pattern517 (x2, E_SImode) != 0
          || !
#line 2237 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_CDE && (TARGET_ARM_FP || TARGET_HAVE_MVE)))
        return -1;
      return 920; /* arm_vcx3si */

    case 1:
      x2 = XEXP (x1, 1);
      if (pattern517 (x2, E_DImode) != 0
          || !
#line 2237 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_CDE && (TARGET_ARM_FP || TARGET_HAVE_MVE)))
        return -1;
      return 921; /* arm_vcx3di */

    case 2:
      x2 = XEXP (x1, 1);
      if (pattern516 (x2) != 0
          || !const_int_mve_cde3_operand (operands[4], E_SImode)
          || !
#line 10404 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_CDE && TARGET_HAVE_MVE))
        return -1;
      return 4936; /* arm_vcx3qv16qi */

    case 3:
      if (!
#line 10429 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_CDE && TARGET_HAVE_MVE))
        return -1;
      return 4938; /* arm_vcx1q_p_v16qi */

    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;
  int res ATTRIBUTE_UNUSED;
  switch (pattern226 (x1))
    {
    case 0:
      x2 = XEXP (x1, 1);
      if (pattern515 (x2, E_SImode) != 0
          || !
#line 2225 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_CDE && (TARGET_ARM_FP || TARGET_HAVE_MVE)))
        return -1;
      return 918; /* arm_vcx2asi */

    case 1:
      x2 = XEXP (x1, 1);
      if (pattern515 (x2, E_DImode) != 0
          || !
#line 2225 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_CDE && (TARGET_ARM_FP || TARGET_HAVE_MVE)))
        return -1;
      return 919; /* arm_vcx2adi */

    case 2:
      x2 = XEXP (x1, 1);
      if (pattern516 (x2) != 0
          || !const_int_mve_cde2_operand (operands[4], E_SImode)
          || !
#line 10392 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_CDE && TARGET_HAVE_MVE))
        return -1;
      return 4935; /* arm_vcx2qav16qi */

    case 3:
      if (!
#line 10429 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_CDE && TARGET_HAVE_MVE))
        return -1;
      return 4939; /* arm_vcx1qa_p_v16qi */

    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];
  int res ATTRIBUTE_UNUSED;
  switch (pattern228 (x1))
    {
    case 0:
      if (!
#line 4029 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2195; /* neon_vmls_lanev4hi */

    case 1:
      if (!
#line 4029 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2196; /* neon_vmls_lanev2si */

    case 2:
      if (!
#line 4029 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2197; /* neon_vmls_lanev2sf */

    case 3:
      if (!
#line 4047 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2198; /* neon_vmls_lanev8hi */

    case 4:
      if (!
#line 4047 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2199; /* neon_vmls_lanev4si */

    case 5:
      if (!
#line 4047 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2200; /* neon_vmls_lanev4sf */

    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];
  int res ATTRIBUTE_UNUSED;
  switch (pattern228 (x1))
    {
    case 0:
      if (!
#line 3963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2183; /* neon_vmla_lanev4hi */

    case 1:
      if (!
#line 3963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2184; /* neon_vmla_lanev2si */

    case 2:
      if (!
#line 3963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2185; /* neon_vmla_lanev2sf */

    case 3:
      if (!
#line 3981 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2186; /* neon_vmla_lanev8hi */

    case 4:
      if (!
#line 3981 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2187; /* neon_vmla_lanev4si */

    case 5:
      if (!
#line 3981 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2188; /* neon_vmla_lanev4sf */

    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];
  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 4471 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_CDE))
        return -1;
      return 143; /* arm_cx3si */

    case 1:
      if (!
#line 4471 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_CDE))
        return -1;
      return 144; /* arm_cx3di */

    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];
  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 (pattern236 (x3, E_V8BImode, E_V8HFmode) != 0
          || !
#line 6681 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4584; /* mve_vbrsrq_m_n_fv8hf */

    case E_V4SFmode:
      if (pattern236 (x3, E_V4BImode, E_V4SFmode) != 0
          || !
#line 6681 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4585; /* mve_vbrsrq_m_n_fv4sf */

    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;
  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 (pattern461 (x3))
    {
    case 0:
      if (!
#line 4459 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_CDE))
        return -1;
      return 141; /* arm_cx2asi */

    case 1:
      if (!
#line 4459 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_CDE))
        return -1;
      return 142; /* arm_cx2adi */

    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;
  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 (!mve_imm_7 (operands[3], E_SImode))
    return -1;
  switch (pattern237 (x3))
    {
    case 0:
      if (!
#line 4987 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4171; /* mve_vqshluq_m_n_sv16qi */

    case 1:
      if (!
#line 4987 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4172; /* mve_vqshluq_m_n_sv8hi */

    case 2:
      if (!
#line 4987 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4173; /* mve_vqshluq_m_n_sv4si */

    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];
  int res ATTRIBUTE_UNUSED;
  switch (pattern227 (x1))
    {
    case 0:
      if (!
#line 3931 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
        return -1;
      return 2176; /* neon_vqrdmlsh_lanev8hi */

    case 1:
      if (!
#line 3931 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
        return -1;
      return 2178; /* neon_vqrdmlsh_lanev4si */

    case 2:
      if (!
#line 3947 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
        return -1;
      return 2180; /* neon_vqrdmlsh_lanev4hi */

    case 3:
      if (!
#line 3947 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
        return -1;
      return 2182; /* neon_vqrdmlsh_lanev2si */

    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 (pattern227 (x1))
    {
    case 0:
      if (!
#line 3931 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
        return -1;
      return 2175; /* neon_vqrdmlah_lanev8hi */

    case 1:
      if (!
#line 3931 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
        return -1;
      return 2177; /* neon_vqrdmlah_lanev4si */

    case 2:
      if (!
#line 3947 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
        return -1;
      return 2179; /* neon_vqrdmlah_lanev4hi */

    case 3:
      if (!
#line 3947 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
        return -1;
      return 2181; /* neon_vqrdmlah_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];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (XINT (x2, 1))
    {
    case 102:
      return recog_219 (x1, insn, pnum_clobbers);

    case 47:
      if (pattern137 (x1) != 0
          || !
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 188; /* arm_qadd8 */

    case 48:
      if (pattern137 (x1) != 0
          || !
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 189; /* arm_qsub8 */

    case 49:
      if (pattern137 (x1) != 0
          || !
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 190; /* arm_shadd8 */

    case 50:
      if (pattern137 (x1) != 0
          || !
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 191; /* arm_shsub8 */

    case 51:
      if (pattern137 (x1) != 0
          || !
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 192; /* arm_uhadd8 */

    case 52:
      if (pattern137 (x1) != 0
          || !
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 193; /* arm_uhsub8 */

    case 53:
      if (pattern137 (x1) != 0
          || !
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 194; /* arm_uqadd8 */

    case 54:
      if (pattern137 (x1) != 0
          || !
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 195; /* arm_uqsub8 */

    case 55:
      if (pattern137 (x1) != 0
          || !
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 196; /* arm_qadd16 */

    case 56:
      if (pattern137 (x1) != 0
          || !
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 197; /* arm_qasx */

    case 57:
      if (pattern137 (x1) != 0
          || !
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 198; /* arm_qsax */

    case 58:
      if (pattern137 (x1) != 0
          || !
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 199; /* arm_qsub16 */

    case 59:
      if (pattern137 (x1) != 0
          || !
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 200; /* arm_shadd16 */

    case 60:
      if (pattern137 (x1) != 0
          || !
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 201; /* arm_shasx */

    case 61:
      if (pattern137 (x1) != 0
          || !
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 202; /* arm_shsax */

    case 62:
      if (pattern137 (x1) != 0
          || !
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 203; /* arm_shsub16 */

    case 63:
      if (pattern137 (x1) != 0
          || !
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 204; /* arm_uhadd16 */

    case 64:
      if (pattern137 (x1) != 0
          || !
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 205; /* arm_uhasx */

    case 65:
      if (pattern137 (x1) != 0
          || !
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 206; /* arm_uhsax */

    case 66:
      if (pattern137 (x1) != 0
          || !
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 207; /* arm_uhsub16 */

    case 67:
      if (pattern137 (x1) != 0
          || !
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 208; /* arm_uqadd16 */

    case 68:
      if (pattern137 (x1) != 0
          || !
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 209; /* arm_uqasx */

    case 69:
      if (pattern137 (x1) != 0
          || !
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 210; /* arm_uqsax */

    case 70:
      if (pattern137 (x1) != 0
          || !
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 211; /* arm_uqsub16 */

    case 71:
      if (pattern137 (x1) != 0
          || !
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 212; /* arm_smusd */

    case 72:
      if (pattern137 (x1) != 0
          || !
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 213; /* arm_smusdx */

    case 43:
      if (pattern137 (x1) != 0
          || !
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 214; /* arm_sxtab16 */

    case 44:
      if (pattern137 (x1) != 0
          || !
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 215; /* arm_uxtab16 */

    case 73:
      if (pattern137 (x1) != 0
          || !
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 216; /* arm_usad8 */

    case 98:
      if (pattern137 (x1) != 0
          || !
#line 6036 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ))
        return -1;
      return 242; /* arm_smuad_insn */

    case 99:
      if (pattern137 (x1) != 0
          || !
#line 6036 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ))
        return -1;
      return 244; /* arm_smuadx_insn */

    case 100:
      return recog_218 (x1, insn, pnum_clobbers);

    case 101:
      return recog_217 (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 6587 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(flag_pic))
        return -1;
      return 254; /* 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 285; /* restore_pic_register_after_call */

    case 3:
      return recog_196 (x1, insn, pnum_clobbers);

    case 122:
      if (pattern138 (x1, E_QImode, E_SImode) != 0
          || !
#line 12611 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_CRC32))
        return -1;
      return 418; /* arm_crc32b */

    case 123:
      if (pattern138 (x1, E_HImode, E_SImode) != 0
          || !
#line 12611 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_CRC32))
        return -1;
      return 419; /* arm_crc32h */

    case 124:
      if (pattern137 (x1) != 0
          || !
#line 12611 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_CRC32))
        return -1;
      return 420; /* arm_crc32w */

    case 125:
      if (pattern138 (x1, E_QImode, E_SImode) != 0
          || !
#line 12611 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_CRC32))
        return -1;
      return 421; /* arm_crc32cb */

    case 126:
      if (pattern138 (x1, E_HImode, E_SImode) != 0
          || !
#line 12611 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_CRC32))
        return -1;
      return 422; /* arm_crc32ch */

    case 127:
      if (pattern137 (x1) != 0
          || !
#line 12611 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_CRC32))
        return -1;
      return 423; /* arm_crc32cw */

    case 451:
      return recog_191 (x1, insn, pnum_clobbers);

    case 452:
      return recog_190 (x1, insn, pnum_clobbers);

    case 13:
      if (pattern141 (x1, E_V4HImode, E_DImode) != 0
          || !
#line 528 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 559; /* iwmmxt_wmacsz */

    case 14:
      if (pattern141 (x1, E_V4HImode, E_DImode) != 0
          || !
#line 549 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 561; /* iwmmxt_wmacuz */

    case 6:
      return recog_216 (x1, insn, pnum_clobbers);

    case 10:
      return recog_160 (x1, insn, pnum_clobbers);

    case 112:
      if (pattern142 (x1, E_V4HImode) != 0
          || !
#line 371 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 695; /* iwmmxt_wqmulm */

    case 111:
      if (pattern142 (x1, E_V2SImode) != 0
          || !
#line 381 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 696; /* iwmmxt_wqmulwm */

    case 110:
      if (pattern142 (x1, E_V4HImode) != 0
          || !
#line 391 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 697; /* iwmmxt_wqmulmr */

    case 109:
      if (pattern142 (x1, E_V2SImode) != 0
          || !
#line 401 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 698; /* iwmmxt_wqmulwmr */

    case 294:
      return recog_133 (x1, insn, pnum_clobbers);

    case 178:
      if (pattern143 (x1) != 0
          || !
#line 1982 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
        return -1;
      return 863; /* neon_vcvths_nsi_unspec */

    case 179:
      if (pattern143 (x1) != 0
          || !
#line 1982 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
        return -1;
      return 864; /* neon_vcvthu_nsi_unspec */

    case 214:
      return recog_168 (x1, insn, pnum_clobbers);

    case 217:
      return recog_167 (x1, insn, pnum_clobbers);

    case 104:
      return recog_128 (x1, insn, pnum_clobbers);

    case 21:
      return recog_189 (x1, insn, pnum_clobbers);

    case 120:
      return recog_166 (x1, insn, pnum_clobbers);

    case 121:
      return recog_165 (x1, insn, pnum_clobbers);

    case 245:
      return recog_132 (x1, insn, pnum_clobbers);

    case 253:
      return recog_215 (x1, insn, pnum_clobbers);

    case 252:
      return recog_214 (x1, insn, pnum_clobbers);

    case 255:
      switch (pattern147 (x1))
        {
        case 0:
          if (!
#line 1338 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1421; /* neon_vpuminv8qi */

        case 1:
          if (!
#line 1338 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1422; /* neon_vpuminv4hi */

        case 2:
          if (!
#line 1338 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1423; /* neon_vpuminv2si */

        default:
          return -1;
        }

    case 254:
      switch (pattern147 (x1))
        {
        case 0:
          if (!
#line 1348 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1424; /* neon_vpumaxv8qi */

        case 1:
          if (!
#line 1348 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1425; /* neon_vpumaxv4hi */

        case 2:
          if (!
#line 1348 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1426; /* neon_vpumaxv2si */

        default:
          return -1;
        }

    case 152:
      switch (pattern148 (x1))
        {
        case 0:
          if (!
#line 1491 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1443; /* neon_vaddv2sf_unspec */

        case 1:
          if (!
#line 1491 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1444; /* neon_vaddv4sf_unspec */

        default:
          return -1;
        }

    case 155:
      switch (pattern149 (x1, E_V8QImode, E_V4HImode, E_V2SImode))
        {
        case 0:
          if (!
#line 1504 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1445; /* neon_vaddlsv8qi */

        case 1:
          if (!
#line 1504 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1447; /* neon_vaddlsv4hi */

        case 2:
          if (!
#line 1504 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1449; /* neon_vaddlsv2si */

        default:
          return -1;
        }

    case 156:
      switch (pattern149 (x1, E_V8QImode, E_V4HImode, E_V2SImode))
        {
        case 0:
          if (!
#line 1504 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1446; /* neon_vaddluv8qi */

        case 1:
          if (!
#line 1504 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1448; /* neon_vaddluv4hi */

        case 2:
          if (!
#line 1504 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1450; /* neon_vaddluv2si */

        default:
          return -1;
        }

    case 157:
      switch (pattern150 (x1))
        {
        case 0:
          if (!
#line 1514 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1451; /* neon_vaddwsv8qi */

        case 1:
          if (!
#line 1514 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1453; /* neon_vaddwsv4hi */

        case 2:
          if (!
#line 1514 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1455; /* neon_vaddwsv2si */

        default:
          return -1;
        }

    case 158:
      switch (pattern150 (x1))
        {
        case 0:
          if (!
#line 1514 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1452; /* neon_vaddwuv8qi */

        case 1:
          if (!
#line 1514 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1454; /* neon_vaddwuv4hi */

        case 2:
          if (!
#line 1514 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1456; /* neon_vaddwuv2si */

        default:
          return -1;
        }

    case 193:
      return recog_188 (x1, insn, pnum_clobbers);

    case 194:
      return recog_187 (x1, insn, pnum_clobbers);

    case 191:
      return recog_186 (x1, insn, pnum_clobbers);

    case 192:
      return recog_185 (x1, insn, pnum_clobbers);

    case 257:
      return recog_159 (x1, insn, pnum_clobbers);

    case 258:
      return recog_158 (x1, insn, pnum_clobbers);

    case 153:
      switch (pattern153 (x1))
        {
        case 0:
          if (!
#line 1546 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1497; /* neon_vaddhnv8hi */

        case 1:
          if (!
#line 1546 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1499; /* neon_vaddhnv4si */

        case 2:
          if (!
#line 1546 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1501; /* neon_vaddhnv2di */

        default:
          return -1;
        }

    case 154:
      switch (pattern153 (x1))
        {
        case 0:
          if (!
#line 1546 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1498; /* neon_vraddhnv8hi */

        case 1:
          if (!
#line 1546 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1500; /* neon_vraddhnv4si */

        case 2:
          if (!
#line 1546 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1502; /* neon_vraddhnv2di */

        default:
          return -1;
        }

    case 236:
      return recog_157 (x1, insn, pnum_clobbers);

    case 263:
      return recog_213 (x1, insn, pnum_clobbers);

    case 265:
      return recog_212 (x1, insn, pnum_clobbers);

    case 238:
      switch (pattern149 (x1, E_V8QImode, E_V4HImode, E_V2SImode))
        {
        case 0:
          if (!
#line 2160 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1581; /* neon_vmullsv8qi */

        case 1:
          if (!
#line 2160 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1584; /* neon_vmullsv4hi */

        case 2:
          if (!
#line 2160 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1587; /* neon_vmullsv2si */

        default:
          return -1;
        }

    case 239:
      switch (pattern149 (x1, E_V8QImode, E_V4HImode, E_V2SImode))
        {
        case 0:
          if (!
#line 2160 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1582; /* neon_vmulluv8qi */

        case 1:
          if (!
#line 2160 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1585; /* neon_vmulluv4hi */

        case 2:
          if (!
#line 2160 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1588; /* neon_vmulluv2si */

        default:
          return -1;
        }

    case 237:
      switch (pattern149 (x1, E_V8QImode, E_V4HImode, E_V2SImode))
        {
        case 0:
          if (!
#line 2160 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1583; /* neon_vmullpv8qi */

        case 1:
          if (!
#line 2160 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1586; /* neon_vmullpv4hi */

        case 2:
          if (!
#line 2160 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1589; /* neon_vmullpv2si */

        default:
          return -1;
        }

    case 267:
      switch (pattern155 (x1, E_V4HImode, E_V2SImode))
        {
        case 0:
          if (!
#line 2170 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1590; /* neon_vqdmullv4hi */

        case 1:
          if (!
#line 2170 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1591; /* neon_vqdmullv2si */

        default:
          return -1;
        }

    case 327:
      switch (pattern148 (x1))
        {
        case 0:
          if (!
#line 2196 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1592; /* neon_vsubv2sf_unspec */

        case 1:
          if (!
#line 2196 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1593; /* neon_vsubv4sf_unspec */

        default:
          return -1;
        }

    case 330:
      switch (pattern149 (x1, E_V8QImode, E_V4HImode, E_V2SImode))
        {
        case 0:
          if (!
#line 2209 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1594; /* neon_vsublsv8qi */

        case 1:
          if (!
#line 2209 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1596; /* neon_vsublsv4hi */

        case 2:
          if (!
#line 2209 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1598; /* neon_vsublsv2si */

        default:
          return -1;
        }

    case 331:
      switch (pattern149 (x1, E_V8QImode, E_V4HImode, E_V2SImode))
        {
        case 0:
          if (!
#line 2209 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1595; /* neon_vsubluv8qi */

        case 1:
          if (!
#line 2209 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1597; /* neon_vsubluv4hi */

        case 2:
          if (!
#line 2209 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1599; /* neon_vsubluv2si */

        default:
          return -1;
        }

    case 332:
      switch (pattern150 (x1))
        {
        case 0:
          if (!
#line 2219 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1600; /* neon_vsubwsv8qi */

        case 1:
          if (!
#line 2219 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1602; /* neon_vsubwsv4hi */

        case 2:
          if (!
#line 2219 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1604; /* neon_vsubwsv2si */

        default:
          return -1;
        }

    case 333:
      switch (pattern150 (x1))
        {
        case 0:
          if (!
#line 2219 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1601; /* neon_vsubwuv8qi */

        case 1:
          if (!
#line 2219 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1603; /* neon_vsubwuv4hi */

        case 2:
          if (!
#line 2219 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1605; /* neon_vsubwuv2si */

        default:
          return -1;
        }

    case 286:
      return recog_156 (x1, insn, pnum_clobbers);

    case 287:
      return recog_155 (x1, insn, pnum_clobbers);

    case 195:
      return recog_184 (x1, insn, pnum_clobbers);

    case 196:
      return recog_183 (x1, insn, pnum_clobbers);

    case 328:
      switch (pattern153 (x1))
        {
        case 0:
          if (!
#line 2249 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1634; /* neon_vsubhnv8hi */

        case 1:
          if (!
#line 2249 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1636; /* neon_vsubhnv4si */

        case 2:
          if (!
#line 2249 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1638; /* neon_vsubhnv2di */

        default:
          return -1;
        }

    case 329:
      switch (pattern153 (x1))
        {
        case 0:
          if (!
#line 2249 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1635; /* neon_vrsubhnv8hi */

        case 1:
          if (!
#line 2249 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1637; /* neon_vrsubhnv4si */

        case 2:
          if (!
#line 2249 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1639; /* neon_vrsubhnv2di */

        default:
          return -1;
        }

    case 164:
      return recog_211 (x1, insn, pnum_clobbers);

    case 167:
      return recog_210 (x1, insn, pnum_clobbers);

    case 165:
      return recog_209 (x1, insn, pnum_clobbers);

    case 345:
      return recog_208 (x1, insn, pnum_clobbers);

    case 344:
      return recog_207 (x1, insn, pnum_clobbers);

    case 160:
      return recog_206 (x1, insn, pnum_clobbers);

    case 161:
      return recog_205 (x1, insn, pnum_clobbers);

    case 162:
      return recog_204 (x1, insn, pnum_clobbers);

    case 163:
      return recog_203 (x1, insn, pnum_clobbers);

    case 148:
      return recog_182 (x1, insn, pnum_clobbers);

    case 149:
      return recog_181 (x1, insn, pnum_clobbers);

    case 147:
      return recog_154 (x1, insn, pnum_clobbers);

    case 150:
      switch (pattern149 (x1, E_V8QImode, E_V4HImode, E_V2SImode))
        {
        case 0:
          if (!
#line 2559 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1776; /* neon_vabdlsv8qi */

        case 1:
          if (!
#line 2559 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1778; /* neon_vabdlsv4hi */

        case 2:
          if (!
#line 2559 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1780; /* neon_vabdlsv2si */

        default:
          return -1;
        }

    case 151:
      switch (pattern149 (x1, E_V8QImode, E_V4HImode, E_V2SImode))
        {
        case 0:
          if (!
#line 2559 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1777; /* neon_vabdluv8qi */

        case 1:
          if (!
#line 2559 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1779; /* neon_vabdluv4hi */

        case 2:
          if (!
#line 2559 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1781; /* neon_vabdluv2si */

        default:
          return -1;
        }

    case 212:
      return recog_131 (x1, insn, pnum_clobbers);

    case 213:
      return recog_180 (x1, insn, pnum_clobbers);

    case 215:
      return recog_130 (x1, insn, pnum_clobbers);

    case 216:
      return recog_179 (x1, insn, pnum_clobbers);

    case 248:
      return recog_178 (x1, insn, pnum_clobbers);

    case 250:
      return recog_177 (x1, insn, pnum_clobbers);

    case 243:
      return recog_176 (x1, insn, pnum_clobbers);

    case 244:
      return recog_175 (x1, insn, pnum_clobbers);

    case 249:
      switch (pattern147 (x1))
        {
        case 0:
          if (!
#line 2723 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1871; /* neon_vpmaxuv8qi */

        case 1:
          if (!
#line 2723 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1875; /* neon_vpmaxuv4hi */

        case 2:
          if (!
#line 2723 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1879; /* neon_vpmaxuv2si */

        default:
          return -1;
        }

    case 251:
      switch (pattern147 (x1))
        {
        case 0:
          if (!
#line 2723 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1873; /* neon_vpminuv8qi */

        case 1:
          if (!
#line 2723 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1877; /* neon_vpminuv4hi */

        case 2:
          if (!
#line 2723 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1881; /* neon_vpminuv2si */

        default:
          return -1;
        }

    case 289:
      return recog_153 (x1, insn, pnum_clobbers);

    case 367:
      return recog_126 (x1, insn, pnum_clobbers);

    case 368:
      return recog_125 (x1, insn, pnum_clobbers);

    case 174:
      return recog_152 (x1, insn, pnum_clobbers);

    case 175:
      return recog_151 (x1, insn, pnum_clobbers);

    case 295:
      return recog_150 (x1, insn, pnum_clobbers);

    case 296:
      return recog_149 (x1, insn, pnum_clobbers);

    case 297:
      return recog_148 (x1, insn, pnum_clobbers);

    case 298:
      return recog_147 (x1, insn, pnum_clobbers);

    case 273:
      return recog_146 (x1, insn, pnum_clobbers);

    case 274:
      return recog_145 (x1, insn, pnum_clobbers);

    case 275:
      return recog_144 (x1, insn, pnum_clobbers);

    case 276:
      return recog_143 (x1, insn, pnum_clobbers);

    case 302:
      return recog_142 (x1, insn, pnum_clobbers);

    case 303:
      return recog_141 (x1, insn, pnum_clobbers);

    case 304:
      return recog_140 (x1, insn, pnum_clobbers);

    case 305:
      return recog_139 (x1, insn, pnum_clobbers);

    case 306:
      switch (pattern166 (x1))
        {
        case 0:
          if (!
#line 4481 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2348; /* neon_vshrn_nv8hi */

        case 1:
          if (!
#line 4481 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2350; /* neon_vshrn_nv4si */

        case 2:
          if (!
#line 4481 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2352; /* neon_vshrn_nv2di */

        default:
          return -1;
        }

    case 307:
      switch (pattern166 (x1))
        {
        case 0:
          if (!
#line 4481 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2349; /* neon_vrshrn_nv8hi */

        case 1:
          if (!
#line 4481 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2351; /* neon_vrshrn_nv4si */

        case 2:
          if (!
#line 4481 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2353; /* neon_vrshrn_nv2di */

        default:
          return -1;
        }

    case 280:
      switch (pattern166 (x1))
        {
        case 0:
          if (!
#line 4495 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2354; /* neon_vqshrns_nv8hi */

        case 1:
          if (!
#line 4495 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2358; /* neon_vqshrns_nv4si */

        case 2:
          if (!
#line 4495 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2362; /* neon_vqshrns_nv2di */

        default:
          return -1;
        }

    case 281:
      switch (pattern166 (x1))
        {
        case 0:
          if (!
#line 4495 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2355; /* neon_vqshrnu_nv8hi */

        case 1:
          if (!
#line 4495 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2359; /* neon_vqshrnu_nv4si */

        case 2:
          if (!
#line 4495 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2363; /* neon_vqshrnu_nv2di */

        default:
          return -1;
        }

    case 282:
      switch (pattern166 (x1))
        {
        case 0:
          if (!
#line 4495 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2356; /* neon_vqrshrns_nv8hi */

        case 1:
          if (!
#line 4495 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2360; /* neon_vqrshrns_nv4si */

        case 2:
          if (!
#line 4495 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2364; /* neon_vqrshrns_nv2di */

        default:
          return -1;
        }

    case 283:
      switch (pattern166 (x1))
        {
        case 0:
          if (!
#line 4495 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2357; /* neon_vqrshrnu_nv8hi */

        case 1:
          if (!
#line 4495 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2361; /* neon_vqrshrnu_nv4si */

        case 2:
          if (!
#line 4495 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2365; /* neon_vqrshrnu_nv2di */

        default:
          return -1;
        }

    case 284:
      switch (pattern166 (x1))
        {
        case 0:
          if (!
#line 4509 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2366; /* neon_vqshrun_nv8hi */

        case 1:
          if (!
#line 4509 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2368; /* neon_vqshrun_nv4si */

        case 2:
          if (!
#line 4509 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2370; /* neon_vqshrun_nv2di */

        default:
          return -1;
        }

    case 285:
      switch (pattern166 (x1))
        {
        case 0:
          if (!
#line 4509 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2367; /* neon_vqrshrun_nv8hi */

        case 1:
          if (!
#line 4509 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2369; /* neon_vqrshrun_nv4si */

        case 2:
          if (!
#line 4509 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2371; /* neon_vqrshrun_nv2di */

        default:
          return -1;
        }

    case 301:
      return recog_138 (x1, insn, pnum_clobbers);

    case 277:
      return recog_137 (x1, insn, pnum_clobbers);

    case 278:
      return recog_136 (x1, insn, pnum_clobbers);

    case 279:
      return recog_135 (x1, insn, pnum_clobbers);

    case 299:
      switch (pattern167 (x1))
        {
        case 0:
          if (!
#line 4561 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2404; /* neon_vshlls_nv8qi */

        case 1:
          if (!
#line 4561 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2406; /* neon_vshlls_nv4hi */

        case 2:
          if (!
#line 4561 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2408; /* neon_vshlls_nv2si */

        default:
          return -1;
        }

    case 300:
      switch (pattern167 (x1))
        {
        case 0:
          if (!
#line 4561 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2405; /* neon_vshllu_nv8qi */

        case 1:
          if (!
#line 4561 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2407; /* neon_vshllu_nv4hi */

        case 2:
          if (!
#line 4561 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2409; /* neon_vshllu_nv2si */

        default:
          return -1;
        }

    case 334:
      return recog_127 (x1, insn, pnum_clobbers);

    case 170:
      if (pattern168 (x1, E_V16QImode, E_OImode) != 0
          || !
#line 4761 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2464; /* neon_vcombinev16qi */

    case 315:
      return recog_120 (x1, insn, pnum_clobbers);

    case 199:
      return recog_124 (x1, insn, pnum_clobbers);

    case 200:
      return recog_121 (x1, insn, pnum_clobbers);

    case 316:
      return recog_123 (x1, insn, pnum_clobbers);

    case 202:
      return recog_164 (x1, insn, pnum_clobbers);

    case 203:
      return recog_174 (x1, insn, pnum_clobbers);

    case 205:
      return recog_129 (x1, insn, pnum_clobbers);

    case 318:
      return recog_163 (x1, insn, pnum_clobbers);

    case 319:
      return recog_173 (x1, insn, pnum_clobbers);

    case 320:
      return recog_172 (x1, insn, pnum_clobbers);

    case 207:
      return recog_162 (x1, insn, pnum_clobbers);

    case 208:
      return recog_171 (x1, insn, pnum_clobbers);

    case 210:
      return recog_122 (x1, insn, pnum_clobbers);

    case 322:
      return recog_161 (x1, insn, pnum_clobbers);

    case 323:
      return recog_170 (x1, insn, pnum_clobbers);

    case 324:
      return recog_169 (x1, insn, pnum_clobbers);

    case 384:
      return recog_202 (x1, insn, pnum_clobbers);

    case 138:
      if (pattern142 (x1, E_V4SImode) != 0
          || !
#line 213 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO))
        return -1;
      return 2851; /* crypto_sha1su1 */

    case 141:
      if (pattern142 (x1, E_V4SImode) != 0
          || !
#line 213 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO))
        return -1;
      return 2852; /* crypto_sha256su0 */

    case 143:
      if (pattern141 (x1, E_DImode, E_TImode) != 0
          || !
#line 262 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO))
        return -1;
      return 2858; /* crypto_vmullp64 */

    case 388:
      return recog_195 (x1, insn, pnum_clobbers);

    case 442:
      switch (pattern176 (x1))
        {
        case 0:
          if (!
#line 674 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3161; /* mve_vsubq_n_fv8hf */

        case 1:
          if (!
#line 674 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3162; /* mve_vsubq_n_fv4sf */

        default:
          return -1;
        }

    case 441:
      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 (pattern122 (x2))
        {
        case 0:
          if (!
#line 689 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3163; /* mve_vbrsrq_n_fv8hf */

        case 1:
          if (!
#line 689 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3164; /* mve_vbrsrq_n_fv4sf */

        default:
          return -1;
        }

    case 439:
      switch (pattern177 (x1))
        {
        case 0:
          if (!
#line 704 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3165; /* mve_vcvtq_n_to_f_sv8hf */

        case 1:
          if (!
#line 704 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3167; /* mve_vcvtq_n_to_f_sv4sf */

        default:
          return -1;
        }

    case 440:
      switch (pattern177 (x1))
        {
        case 0:
          if (!
#line 704 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3166; /* mve_vcvtq_n_to_f_uv8hf */

        case 1:
          if (!
#line 704 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3168; /* mve_vcvtq_n_to_f_uv4sf */

        default:
          return -1;
        }

    case 438:
      return recog_134 (x1, insn, pnum_clobbers);

    case 443:
      return recog_201 (x1, insn, pnum_clobbers);

    case 444:
      return recog_200 (x1, insn, pnum_clobbers);

    case 445:
      switch (pattern181 (x1))
        {
        case 0:
          if (!
#line 749 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3179; /* mve_vshrq_n_sv16qi */

        case 1:
          if (!
#line 749 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3181; /* mve_vshrq_n_sv8hi */

        case 2:
          if (!
#line 749 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3183; /* mve_vshrq_n_sv4si */

        default:
          return -1;
        }

    case 446:
      switch (pattern181 (x1))
        {
        case 0:
          if (!
#line 749 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3180; /* mve_vshrq_n_uv16qi */

        case 1:
          if (!
#line 749 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3182; /* mve_vshrq_n_uv8hi */

        case 2:
          if (!
#line 749 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3184; /* mve_vshrq_n_uv4si */

        default:
          return -1;
        }

    case 447:
      switch (pattern182 (x1))
        {
        case 0:
          if (!
#line 797 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3191; /* mve_vcvtq_n_from_f_sv8hi */

        case 1:
          if (!
#line 797 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3193; /* mve_vcvtq_n_from_f_sv4si */

        default:
          return -1;
        }

    case 448:
      switch (pattern182 (x1))
        {
        case 0:
          if (!
#line 797 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3192; /* mve_vcvtq_n_from_f_uv8hi */

        case 1:
          if (!
#line 797 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3194; /* mve_vcvtq_n_from_f_uv4si */

        default:
          return -1;
        }

    case 449:
      if (pattern183 (x1) != 0
          || !
#line 812 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3195; /* mve_vaddlvq_p_sv4si */

    case 450:
      if (pattern183 (x1) != 0
          || !
#line 812 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3196; /* mve_vaddlvq_p_uv4si */

    case 453:
      switch (pattern184 (x1))
        {
        case 0:
          if (!
#line 859 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3245; /* mve_vabdq_sv16qi */

        case 1:
          if (!
#line 859 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3247; /* mve_vabdq_sv8hi */

        case 2:
          if (!
#line 859 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3249; /* mve_vabdq_sv4si */

        default:
          return -1;
        }

    case 490:
      switch (pattern184 (x1))
        {
        case 0:
          if (!
#line 859 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3246; /* mve_vabdq_uv16qi */

        case 1:
          if (!
#line 859 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3248; /* mve_vabdq_uv8hi */

        case 2:
          if (!
#line 859 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3250; /* mve_vabdq_uv4si */

        default:
          return -1;
        }

    case 454:
      switch (pattern185 (x1))
        {
        case 0:
          if (!
#line 874 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3251; /* mve_vaddq_n_sv16qi */

        case 1:
          if (!
#line 874 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3253; /* mve_vaddq_n_sv8hi */

        case 2:
          if (!
#line 874 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3255; /* mve_vaddq_n_sv4si */

        default:
          return -1;
        }

    case 491:
      switch (pattern185 (x1))
        {
        case 0:
          if (!
#line 874 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3252; /* mve_vaddq_n_uv16qi */

        case 1:
          if (!
#line 874 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3254; /* mve_vaddq_n_uv8hi */

        case 2:
          if (!
#line 874 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3256; /* mve_vaddq_n_uv4si */

        default:
          return -1;
        }

    case 455:
      switch (pattern186 (x1))
        {
        case 0:
          if (!
#line 889 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3257; /* mve_vaddvaq_sv16qi */

        case 1:
          if (!
#line 889 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3259; /* mve_vaddvaq_sv8hi */

        case 2:
          if (!
#line 889 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3261; /* mve_vaddvaq_sv4si */

        default:
          return -1;
        }

    case 492:
      switch (pattern186 (x1))
        {
        case 0:
          if (!
#line 889 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3258; /* mve_vaddvaq_uv16qi */

        case 1:
          if (!
#line 889 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3260; /* mve_vaddvaq_uv8hi */

        case 2:
          if (!
#line 889 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3262; /* mve_vaddvaq_uv4si */

        default:
          return -1;
        }

    case 493:
      switch (pattern187 (x1))
        {
        case 0:
          if (!
#line 904 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3263; /* mve_vaddvq_p_uv16qi */

        case 1:
          if (!
#line 904 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3265; /* mve_vaddvq_p_uv8hi */

        case 2:
          if (!
#line 904 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3267; /* mve_vaddvq_p_uv4si */

        default:
          return -1;
        }

    case 456:
      switch (pattern187 (x1))
        {
        case 0:
          if (!
#line 904 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3264; /* mve_vaddvq_p_sv16qi */

        case 1:
          if (!
#line 904 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3266; /* mve_vaddvq_p_sv8hi */

        case 2:
          if (!
#line 904 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3268; /* mve_vaddvq_p_sv4si */

        default:
          return -1;
        }

    case 494:
      switch (pattern188 (x1))
        {
        case 0:
          if (!
#line 970 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3275; /* mve_vbrsrq_n_uv16qi */

        case 1:
          if (!
#line 970 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3277; /* mve_vbrsrq_n_uv8hi */

        case 2:
          if (!
#line 970 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3279; /* mve_vbrsrq_n_uv4si */

        default:
          return -1;
        }

    case 457:
      switch (pattern188 (x1))
        {
        case 0:
          if (!
#line 970 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3276; /* mve_vbrsrq_n_sv16qi */

        case 1:
          if (!
#line 970 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3278; /* mve_vbrsrq_n_sv8hi */

        case 2:
          if (!
#line 970 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3280; /* mve_vbrsrq_n_sv4si */

        default:
          return -1;
        }

    case 496:
      switch (pattern185 (x1))
        {
        case 0:
          if (!
#line 1031 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3290; /* mve_vhaddq_n_uv16qi */

        case 1:
          if (!
#line 1031 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3292; /* mve_vhaddq_n_uv8hi */

        case 2:
          if (!
#line 1031 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3294; /* mve_vhaddq_n_uv4si */

        default:
          return -1;
        }

    case 459:
      switch (pattern185 (x1))
        {
        case 0:
          if (!
#line 1031 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3291; /* mve_vhaddq_n_sv16qi */

        case 1:
          if (!
#line 1031 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3293; /* mve_vhaddq_n_sv8hi */

        case 2:
          if (!
#line 1031 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3295; /* mve_vhaddq_n_sv4si */

        default:
          return -1;
        }

    case 458:
      switch (pattern184 (x1))
        {
        case 0:
          if (!
#line 1046 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3296; /* mve_vhaddq_sv16qi */

        case 1:
          if (!
#line 1046 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3298; /* mve_vhaddq_sv8hi */

        case 2:
          if (!
#line 1046 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3300; /* mve_vhaddq_sv4si */

        default:
          return -1;
        }

    case 495:
      switch (pattern184 (x1))
        {
        case 0:
          if (!
#line 1046 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3297; /* mve_vhaddq_uv16qi */

        case 1:
          if (!
#line 1046 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3299; /* mve_vhaddq_uv8hi */

        case 2:
          if (!
#line 1046 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3301; /* mve_vhaddq_uv4si */

        default:
          return -1;
        }

    case 527:
      switch (pattern184 (x1))
        {
        case 0:
          if (!
#line 1061 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3302; /* mve_vhcaddq_rot270_sv16qi */

        case 1:
          if (!
#line 1061 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3303; /* mve_vhcaddq_rot270_sv8hi */

        case 2:
          if (!
#line 1061 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3304; /* mve_vhcaddq_rot270_sv4si */

        default:
          return -1;
        }

    case 528:
      switch (pattern184 (x1))
        {
        case 0:
          if (!
#line 1076 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3305; /* mve_vhcaddq_rot90_sv16qi */

        case 1:
          if (!
#line 1076 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3306; /* mve_vhcaddq_rot90_sv8hi */

        case 2:
          if (!
#line 1076 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3307; /* mve_vhcaddq_rot90_sv4si */

        default:
          return -1;
        }

    case 498:
      switch (pattern185 (x1))
        {
        case 0:
          if (!
#line 1091 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3308; /* mve_vhsubq_n_uv16qi */

        case 1:
          if (!
#line 1091 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3310; /* mve_vhsubq_n_uv8hi */

        case 2:
          if (!
#line 1091 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3312; /* mve_vhsubq_n_uv4si */

        default:
          return -1;
        }

    case 461:
      switch (pattern185 (x1))
        {
        case 0:
          if (!
#line 1091 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3309; /* mve_vhsubq_n_sv16qi */

        case 1:
          if (!
#line 1091 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3311; /* mve_vhsubq_n_sv8hi */

        case 2:
          if (!
#line 1091 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3313; /* mve_vhsubq_n_sv4si */

        default:
          return -1;
        }

    case 460:
      switch (pattern184 (x1))
        {
        case 0:
          if (!
#line 1106 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3314; /* mve_vhsubq_sv16qi */

        case 1:
          if (!
#line 1106 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3316; /* mve_vhsubq_sv8hi */

        case 2:
          if (!
#line 1106 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3318; /* mve_vhsubq_sv4si */

        default:
          return -1;
        }

    case 497:
      switch (pattern184 (x1))
        {
        case 0:
          if (!
#line 1106 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3315; /* mve_vhsubq_uv16qi */

        case 1:
          if (!
#line 1106 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3317; /* mve_vhsubq_uv8hi */

        case 2:
          if (!
#line 1106 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3319; /* mve_vhsubq_uv4si */

        default:
          return -1;
        }

    case 529:
      switch (pattern184 (x1))
        {
        case 0:
          if (!
#line 1121 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3320; /* mve_vmaxaq_sv16qi */

        case 1:
          if (!
#line 1121 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3321; /* mve_vmaxaq_sv8hi */

        case 2:
          if (!
#line 1121 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3322; /* mve_vmaxaq_sv4si */

        default:
          return -1;
        }

    case 530:
      switch (pattern189 (x1))
        {
        case 0:
          if (!
#line 1136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3323; /* mve_vmaxavq_sv16qi */

        case 1:
          if (!
#line 1136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3324; /* mve_vmaxavq_sv8hi */

        case 2:
          if (!
#line 1136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3325; /* mve_vmaxavq_sv4si */

        default:
          return -1;
        }

    case 500:
      switch (pattern189 (x1))
        {
        case 0:
          if (!
#line 1176 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3332; /* mve_vmaxvq_uv16qi */

        case 1:
          if (!
#line 1176 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3334; /* mve_vmaxvq_uv8hi */

        case 2:
          if (!
#line 1176 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3336; /* mve_vmaxvq_uv4si */

        default:
          return -1;
        }

    case 463:
      switch (pattern189 (x1))
        {
        case 0:
          if (!
#line 1176 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3333; /* mve_vmaxvq_sv16qi */

        case 1:
          if (!
#line 1176 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3335; /* mve_vmaxvq_sv8hi */

        case 2:
          if (!
#line 1176 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3337; /* mve_vmaxvq_sv4si */

        default:
          return -1;
        }

    case 531:
      switch (pattern184 (x1))
        {
        case 0:
          if (!
#line 1191 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3338; /* mve_vminaq_sv16qi */

        case 1:
          if (!
#line 1191 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3339; /* mve_vminaq_sv8hi */

        case 2:
          if (!
#line 1191 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3340; /* mve_vminaq_sv4si */

        default:
          return -1;
        }

    case 532:
      switch (pattern189 (x1))
        {
        case 0:
          if (!
#line 1206 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3341; /* mve_vminavq_sv16qi */

        case 1:
          if (!
#line 1206 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3342; /* mve_vminavq_sv8hi */

        case 2:
          if (!
#line 1206 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3343; /* mve_vminavq_sv4si */

        default:
          return -1;
        }

    case 502:
      switch (pattern189 (x1))
        {
        case 0:
          if (!
#line 1246 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3350; /* mve_vminvq_uv16qi */

        case 1:
          if (!
#line 1246 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3352; /* mve_vminvq_uv8hi */

        case 2:
          if (!
#line 1246 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3354; /* mve_vminvq_uv4si */

        default:
          return -1;
        }

    case 465:
      switch (pattern189 (x1))
        {
        case 0:
          if (!
#line 1246 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3351; /* mve_vminvq_sv16qi */

        case 1:
          if (!
#line 1246 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3353; /* mve_vminvq_sv8hi */

        case 2:
          if (!
#line 1246 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3355; /* mve_vminvq_sv4si */

        default:
          return -1;
        }

    case 503:
      switch (pattern190 (x1))
        {
        case 0:
          if (!
#line 1261 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3356; /* mve_vmladavq_uv16qi */

        case 1:
          if (!
#line 1261 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3358; /* mve_vmladavq_uv8hi */

        case 2:
          if (!
#line 1261 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3360; /* mve_vmladavq_uv4si */

        default:
          return -1;
        }

    case 466:
      switch (pattern190 (x1))
        {
        case 0:
          if (!
#line 1261 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3357; /* mve_vmladavq_sv16qi */

        case 1:
          if (!
#line 1261 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3359; /* mve_vmladavq_sv8hi */

        case 2:
          if (!
#line 1261 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3361; /* mve_vmladavq_sv4si */

        default:
          return -1;
        }

    case 533:
      switch (pattern190 (x1))
        {
        case 0:
          if (!
#line 1276 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3362; /* mve_vmladavxq_sv16qi */

        case 1:
          if (!
#line 1276 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3363; /* mve_vmladavxq_sv8hi */

        case 2:
          if (!
#line 1276 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3364; /* mve_vmladavxq_sv4si */

        default:
          return -1;
        }

    case 534:
      switch (pattern190 (x1))
        {
        case 0:
          if (!
#line 1291 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3365; /* mve_vmlsdavq_sv16qi */

        case 1:
          if (!
#line 1291 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3366; /* mve_vmlsdavq_sv8hi */

        case 2:
          if (!
#line 1291 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3367; /* mve_vmlsdavq_sv4si */

        default:
          return -1;
        }

    case 535:
      switch (pattern190 (x1))
        {
        case 0:
          if (!
#line 1306 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3368; /* mve_vmlsdavxq_sv16qi */

        case 1:
          if (!
#line 1306 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3369; /* mve_vmlsdavxq_sv8hi */

        case 2:
          if (!
#line 1306 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3370; /* mve_vmlsdavxq_sv4si */

        default:
          return -1;
        }

    case 467:
      switch (pattern184 (x1))
        {
        case 0:
          if (!
#line 1321 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3371; /* mve_vmulhq_sv16qi */

        case 1:
          if (!
#line 1321 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3373; /* mve_vmulhq_sv8hi */

        case 2:
          if (!
#line 1321 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3375; /* mve_vmulhq_sv4si */

        default:
          return -1;
        }

    case 504:
      switch (pattern184 (x1))
        {
        case 0:
          if (!
#line 1321 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3372; /* mve_vmulhq_uv16qi */

        case 1:
          if (!
#line 1321 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3374; /* mve_vmulhq_uv8hi */

        case 2:
          if (!
#line 1321 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3376; /* mve_vmulhq_uv4si */

        default:
          return -1;
        }

    case 505:
      switch (pattern149 (x1, E_V16QImode, E_V8HImode, E_V4SImode))
        {
        case 0:
          if (!
#line 1336 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3377; /* mve_vmullbq_int_uv16qi */

        case 1:
          if (!
#line 1336 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3379; /* mve_vmullbq_int_uv8hi */

        case 2:
          if (!
#line 1336 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3381; /* mve_vmullbq_int_uv4si */

        default:
          return -1;
        }

    case 468:
      switch (pattern149 (x1, E_V16QImode, E_V8HImode, E_V4SImode))
        {
        case 0:
          if (!
#line 1336 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3378; /* mve_vmullbq_int_sv16qi */

        case 1:
          if (!
#line 1336 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3380; /* mve_vmullbq_int_sv8hi */

        case 2:
          if (!
#line 1336 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3382; /* mve_vmullbq_int_sv4si */

        default:
          return -1;
        }

    case 506:
      switch (pattern149 (x1, E_V16QImode, E_V8HImode, E_V4SImode))
        {
        case 0:
          if (!
#line 1351 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3383; /* mve_vmulltq_int_uv16qi */

        case 1:
          if (!
#line 1351 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3385; /* mve_vmulltq_int_uv8hi */

        case 2:
          if (!
#line 1351 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3387; /* mve_vmulltq_int_uv4si */

        default:
          return -1;
        }

    case 469:
      switch (pattern149 (x1, E_V16QImode, E_V8HImode, E_V4SImode))
        {
        case 0:
          if (!
#line 1351 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3384; /* mve_vmulltq_int_sv16qi */

        case 1:
          if (!
#line 1351 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3386; /* mve_vmulltq_int_sv8hi */

        case 2:
          if (!
#line 1351 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3388; /* mve_vmulltq_int_sv4si */

        default:
          return -1;
        }

    case 508:
      switch (pattern185 (x1))
        {
        case 0:
          if (!
#line 1366 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3389; /* mve_vmulq_n_uv16qi */

        case 1:
          if (!
#line 1366 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3391; /* mve_vmulq_n_uv8hi */

        case 2:
          if (!
#line 1366 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3393; /* mve_vmulq_n_uv4si */

        default:
          return -1;
        }

    case 471:
      switch (pattern185 (x1))
        {
        case 0:
          if (!
#line 1366 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3390; /* mve_vmulq_n_sv16qi */

        case 1:
          if (!
#line 1366 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3392; /* mve_vmulq_n_sv8hi */

        case 2:
          if (!
#line 1366 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3394; /* mve_vmulq_n_sv4si */

        default:
          return -1;
        }

    case 507:
      switch (pattern184 (x1))
        {
        case 0:
          if (!
#line 1381 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3395; /* mve_vmulq_uv16qi */

        case 1:
          if (!
#line 1381 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3397; /* mve_vmulq_uv8hi */

        case 2:
          if (!
#line 1381 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3399; /* mve_vmulq_uv4si */

        default:
          return -1;
        }

    case 470:
      switch (pattern184 (x1))
        {
        case 0:
          if (!
#line 1381 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3396; /* mve_vmulq_sv16qi */

        case 1:
          if (!
#line 1381 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3398; /* mve_vmulq_sv8hi */

        case 2:
          if (!
#line 1381 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3400; /* mve_vmulq_sv4si */

        default:
          return -1;
        }

    case 473:
      switch (pattern185 (x1))
        {
        case 0:
          if (!
#line 1458 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3410; /* mve_vqaddq_n_sv16qi */

        case 1:
          if (!
#line 1458 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3412; /* mve_vqaddq_n_sv8hi */

        case 2:
          if (!
#line 1458 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3414; /* mve_vqaddq_n_sv4si */

        default:
          return -1;
        }

    case 510:
      switch (pattern185 (x1))
        {
        case 0:
          if (!
#line 1458 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3411; /* mve_vqaddq_n_uv16qi */

        case 1:
          if (!
#line 1458 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3413; /* mve_vqaddq_n_uv8hi */

        case 2:
          if (!
#line 1458 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3415; /* mve_vqaddq_n_uv4si */

        default:
          return -1;
        }

    case 509:
      switch (pattern184 (x1))
        {
        case 0:
          if (!
#line 1473 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3416; /* mve_vqaddq_uv16qi */

        case 1:
          if (!
#line 1473 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3418; /* mve_vqaddq_uv8hi */

        case 2:
          if (!
#line 1473 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3420; /* mve_vqaddq_uv4si */

        default:
          return -1;
        }

    case 472:
      switch (pattern184 (x1))
        {
        case 0:
          if (!
#line 1473 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3417; /* mve_vqaddq_sv16qi */

        case 1:
          if (!
#line 1473 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3419; /* mve_vqaddq_sv8hi */

        case 2:
          if (!
#line 1473 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3421; /* mve_vqaddq_sv4si */

        default:
          return -1;
        }

    case 536:
      switch (pattern185 (x1))
        {
        case 0:
          if (!
#line 1488 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3422; /* mve_vqdmulhq_n_sv16qi */

        case 1:
          if (!
#line 1488 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3423; /* mve_vqdmulhq_n_sv8hi */

        case 2:
          if (!
#line 1488 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3424; /* mve_vqdmulhq_n_sv4si */

        default:
          return -1;
        }

    case 537:
      switch (pattern184 (x1))
        {
        case 0:
          if (!
#line 1503 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3425; /* mve_vqdmulhq_sv16qi */

        case 1:
          if (!
#line 1503 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3426; /* mve_vqdmulhq_sv8hi */

        case 2:
          if (!
#line 1503 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3427; /* mve_vqdmulhq_sv4si */

        default:
          return -1;
        }

    case 538:
      switch (pattern185 (x1))
        {
        case 0:
          if (!
#line 1518 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3428; /* mve_vqrdmulhq_n_sv16qi */

        case 1:
          if (!
#line 1518 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3429; /* mve_vqrdmulhq_n_sv8hi */

        case 2:
          if (!
#line 1518 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3430; /* mve_vqrdmulhq_n_sv4si */

        default:
          return -1;
        }

    case 539:
      switch (pattern184 (x1))
        {
        case 0:
          if (!
#line 1533 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3431; /* mve_vqrdmulhq_sv16qi */

        case 1:
          if (!
#line 1533 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3432; /* mve_vqrdmulhq_sv8hi */

        case 2:
          if (!
#line 1533 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3433; /* mve_vqrdmulhq_sv4si */

        default:
          return -1;
        }

    case 475:
      switch (pattern188 (x1))
        {
        case 0:
          if (!
#line 1548 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3434; /* mve_vqrshlq_n_sv16qi */

        case 1:
          if (!
#line 1548 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3436; /* mve_vqrshlq_n_sv8hi */

        case 2:
          if (!
#line 1548 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3438; /* mve_vqrshlq_n_sv4si */

        default:
          return -1;
        }

    case 512:
      switch (pattern188 (x1))
        {
        case 0:
          if (!
#line 1548 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3435; /* mve_vqrshlq_n_uv16qi */

        case 1:
          if (!
#line 1548 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3437; /* mve_vqrshlq_n_uv8hi */

        case 2:
          if (!
#line 1548 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3439; /* mve_vqrshlq_n_uv4si */

        default:
          return -1;
        }

    case 474:
      switch (pattern184 (x1))
        {
        case 0:
          if (!
#line 1563 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3440; /* mve_vqrshlq_sv16qi */

        case 1:
          if (!
#line 1563 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3442; /* mve_vqrshlq_sv8hi */

        case 2:
          if (!
#line 1563 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3444; /* mve_vqrshlq_sv4si */

        default:
          return -1;
        }

    case 511:
      switch (pattern184 (x1))
        {
        case 0:
          if (!
#line 1563 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3441; /* mve_vqrshlq_uv16qi */

        case 1:
          if (!
#line 1563 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3443; /* mve_vqrshlq_uv8hi */

        case 2:
          if (!
#line 1563 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3445; /* mve_vqrshlq_uv4si */

        default:
          return -1;
        }

    case 477:
      switch (pattern191 (x1))
        {
        case 0:
          if (!
#line 1578 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3446; /* mve_vqshlq_n_sv16qi */

        case 1:
          if (!
#line 1578 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3448; /* mve_vqshlq_n_sv8hi */

        case 2:
          if (!
#line 1578 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3450; /* mve_vqshlq_n_sv4si */

        default:
          return -1;
        }

    case 514:
      switch (pattern191 (x1))
        {
        case 0:
          if (!
#line 1578 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3447; /* mve_vqshlq_n_uv16qi */

        case 1:
          if (!
#line 1578 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3449; /* mve_vqshlq_n_uv8hi */

        case 2:
          if (!
#line 1578 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3451; /* mve_vqshlq_n_uv4si */

        default:
          return -1;
        }

    case 515:
      switch (pattern188 (x1))
        {
        case 0:
          if (!
#line 1593 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3452; /* mve_vqshlq_r_uv16qi */

        case 1:
          if (!
#line 1593 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3454; /* mve_vqshlq_r_uv8hi */

        case 2:
          if (!
#line 1593 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3456; /* mve_vqshlq_r_uv4si */

        default:
          return -1;
        }

    case 478:
      switch (pattern188 (x1))
        {
        case 0:
          if (!
#line 1593 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3453; /* mve_vqshlq_r_sv16qi */

        case 1:
          if (!
#line 1593 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3455; /* mve_vqshlq_r_sv8hi */

        case 2:
          if (!
#line 1593 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3457; /* mve_vqshlq_r_sv4si */

        default:
          return -1;
        }

    case 476:
      switch (pattern184 (x1))
        {
        case 0:
          if (!
#line 1608 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3458; /* mve_vqshlq_sv16qi */

        case 1:
          if (!
#line 1608 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3460; /* mve_vqshlq_sv8hi */

        case 2:
          if (!
#line 1608 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3462; /* mve_vqshlq_sv4si */

        default:
          return -1;
        }

    case 513:
      switch (pattern184 (x1))
        {
        case 0:
          if (!
#line 1608 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3459; /* mve_vqshlq_uv16qi */

        case 1:
          if (!
#line 1608 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3461; /* mve_vqshlq_uv8hi */

        case 2:
          if (!
#line 1608 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3463; /* mve_vqshlq_uv4si */

        default:
          return -1;
        }

    case 540:
      return recog_199 (x1, insn, pnum_clobbers);

    case 480:
      switch (pattern185 (x1))
        {
        case 0:
          if (!
#line 1638 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3467; /* mve_vqsubq_n_sv16qi */

        case 1:
          if (!
#line 1638 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3469; /* mve_vqsubq_n_sv8hi */

        case 2:
          if (!
#line 1638 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3471; /* mve_vqsubq_n_sv4si */

        default:
          return -1;
        }

    case 517:
      switch (pattern185 (x1))
        {
        case 0:
          if (!
#line 1638 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3468; /* mve_vqsubq_n_uv16qi */

        case 1:
          if (!
#line 1638 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3470; /* mve_vqsubq_n_uv8hi */

        case 2:
          if (!
#line 1638 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3472; /* mve_vqsubq_n_uv4si */

        default:
          return -1;
        }

    case 516:
      switch (pattern184 (x1))
        {
        case 0:
          if (!
#line 1653 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3473; /* mve_vqsubq_uv16qi */

        case 1:
          if (!
#line 1653 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3475; /* mve_vqsubq_uv8hi */

        case 2:
          if (!
#line 1653 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3477; /* mve_vqsubq_uv4si */

        default:
          return -1;
        }

    case 479:
      switch (pattern184 (x1))
        {
        case 0:
          if (!
#line 1653 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3474; /* mve_vqsubq_sv16qi */

        case 1:
          if (!
#line 1653 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3476; /* mve_vqsubq_sv8hi */

        case 2:
          if (!
#line 1653 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3478; /* mve_vqsubq_sv4si */

        default:
          return -1;
        }

    case 481:
      switch (pattern184 (x1))
        {
        case 0:
          if (!
#line 1668 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3479; /* mve_vrhaddq_sv16qi */

        case 1:
          if (!
#line 1668 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3481; /* mve_vrhaddq_sv8hi */

        case 2:
          if (!
#line 1668 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3483; /* mve_vrhaddq_sv4si */

        default:
          return -1;
        }

    case 518:
      switch (pattern184 (x1))
        {
        case 0:
          if (!
#line 1668 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3480; /* mve_vrhaddq_uv16qi */

        case 1:
          if (!
#line 1668 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3482; /* mve_vrhaddq_uv8hi */

        case 2:
          if (!
#line 1668 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3484; /* mve_vrhaddq_uv4si */

        default:
          return -1;
        }

    case 482:
      switch (pattern184 (x1))
        {
        case 0:
          if (!
#line 1683 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3485; /* mve_vrmulhq_sv16qi */

        case 1:
          if (!
#line 1683 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3487; /* mve_vrmulhq_sv8hi */

        case 2:
          if (!
#line 1683 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3489; /* mve_vrmulhq_sv4si */

        default:
          return -1;
        }

    case 519:
      switch (pattern184 (x1))
        {
        case 0:
          if (!
#line 1683 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3486; /* mve_vrmulhq_uv16qi */

        case 1:
          if (!
#line 1683 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3488; /* mve_vrmulhq_uv8hi */

        case 2:
          if (!
#line 1683 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3490; /* mve_vrmulhq_uv4si */

        default:
          return -1;
        }

    case 521:
      switch (pattern188 (x1))
        {
        case 0:
          if (!
#line 1698 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3491; /* mve_vrshlq_n_uv16qi */

        case 1:
          if (!
#line 1698 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3493; /* mve_vrshlq_n_uv8hi */

        case 2:
          if (!
#line 1698 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3495; /* mve_vrshlq_n_uv4si */

        default:
          return -1;
        }

    case 484:
      switch (pattern188 (x1))
        {
        case 0:
          if (!
#line 1698 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3492; /* mve_vrshlq_n_sv16qi */

        case 1:
          if (!
#line 1698 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3494; /* mve_vrshlq_n_sv8hi */

        case 2:
          if (!
#line 1698 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3496; /* mve_vrshlq_n_sv4si */

        default:
          return -1;
        }

    case 483:
      switch (pattern184 (x1))
        {
        case 0:
          if (!
#line 1713 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3497; /* mve_vrshlq_sv16qi */

        case 1:
          if (!
#line 1713 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3499; /* mve_vrshlq_sv8hi */

        case 2:
          if (!
#line 1713 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3501; /* mve_vrshlq_sv4si */

        default:
          return -1;
        }

    case 520:
      switch (pattern184 (x1))
        {
        case 0:
          if (!
#line 1713 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3498; /* mve_vrshlq_uv16qi */

        case 1:
          if (!
#line 1713 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3500; /* mve_vrshlq_uv8hi */

        case 2:
          if (!
#line 1713 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3502; /* mve_vrshlq_uv4si */

        default:
          return -1;
        }

    case 485:
      switch (pattern181 (x1))
        {
        case 0:
          if (!
#line 1728 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3503; /* mve_vrshrq_n_sv16qi */

        case 1:
          if (!
#line 1728 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3505; /* mve_vrshrq_n_sv8hi */

        case 2:
          if (!
#line 1728 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3507; /* mve_vrshrq_n_sv4si */

        default:
          return -1;
        }

    case 522:
      switch (pattern181 (x1))
        {
        case 0:
          if (!
#line 1728 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3504; /* mve_vrshrq_n_uv16qi */

        case 1:
          if (!
#line 1728 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3506; /* mve_vrshrq_n_uv8hi */

        case 2:
          if (!
#line 1728 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3508; /* mve_vrshrq_n_uv4si */

        default:
          return -1;
        }

    case 523:
      switch (pattern191 (x1))
        {
        case 0:
          if (!
#line 1743 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3509; /* mve_vshlq_n_uv16qi */

        case 1:
          if (!
#line 1743 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3511; /* mve_vshlq_n_uv8hi */

        case 2:
          if (!
#line 1743 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3513; /* mve_vshlq_n_uv4si */

        default:
          return -1;
        }

    case 486:
      switch (pattern191 (x1))
        {
        case 0:
          if (!
#line 1743 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3510; /* mve_vshlq_n_sv16qi */

        case 1:
          if (!
#line 1743 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3512; /* mve_vshlq_n_sv8hi */

        case 2:
          if (!
#line 1743 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3514; /* mve_vshlq_n_sv4si */

        default:
          return -1;
        }

    case 487:
      switch (pattern188 (x1))
        {
        case 0:
          if (!
#line 1758 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3515; /* mve_vshlq_r_sv16qi */

        case 1:
          if (!
#line 1758 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3517; /* mve_vshlq_r_sv8hi */

        case 2:
          if (!
#line 1758 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3519; /* mve_vshlq_r_sv4si */

        default:
          return -1;
        }

    case 524:
      switch (pattern188 (x1))
        {
        case 0:
          if (!
#line 1758 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3516; /* mve_vshlq_r_uv16qi */

        case 1:
          if (!
#line 1758 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3518; /* mve_vshlq_r_uv8hi */

        case 2:
          if (!
#line 1758 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3520; /* mve_vshlq_r_uv4si */

        default:
          return -1;
        }

    case 489:
      switch (pattern185 (x1))
        {
        case 0:
          if (!
#line 1773 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3521; /* mve_vsubq_n_sv16qi */

        case 1:
          if (!
#line 1773 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3523; /* mve_vsubq_n_sv8hi */

        case 2:
          if (!
#line 1773 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3525; /* mve_vsubq_n_sv4si */

        default:
          return -1;
        }

    case 526:
      switch (pattern185 (x1))
        {
        case 0:
          if (!
#line 1773 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3522; /* mve_vsubq_n_uv16qi */

        case 1:
          if (!
#line 1773 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3524; /* mve_vsubq_n_uv8hi */

        case 2:
          if (!
#line 1773 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3526; /* mve_vsubq_n_uv4si */

        default:
          return -1;
        }

    case 488:
      switch (pattern184 (x1))
        {
        case 0:
          if (!
#line 1788 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3527; /* mve_vsubq_sv16qi */

        case 1:
          if (!
#line 1788 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3529; /* mve_vsubq_sv8hi */

        case 2:
          if (!
#line 1788 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3531; /* mve_vsubq_sv4si */

        default:
          return -1;
        }

    case 525:
      switch (pattern184 (x1))
        {
        case 0:
          if (!
#line 1788 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3528; /* mve_vsubq_uv16qi */

        case 1:
          if (!
#line 1788 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3530; /* mve_vsubq_uv8hi */

        case 2:
          if (!
#line 1788 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3532; /* mve_vsubq_uv4si */

        default:
          return -1;
        }

    case 543:
      switch (pattern192 (x1))
        {
        case 0:
          if (!
#line 1814 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3536; /* mve_vabdq_fv8hf */

        case 1:
          if (!
#line 1814 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3537; /* mve_vabdq_fv4sf */

        default:
          return -1;
        }

    case 557:
      if (pattern138 (x1, E_V4SImode, E_DImode) != 0
          || !
#line 1829 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3538; /* mve_vaddlvaq_sv4si */

    case 556:
      if (pattern138 (x1, E_V4SImode, E_DImode) != 0
          || !
#line 1829 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3539; /* mve_vaddlvaq_uv4si */

    case 544:
      switch (pattern176 (x1))
        {
        case 0:
          if (!
#line 1844 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3540; /* mve_vaddq_n_fv8hf */

        case 1:
          if (!
#line 1844 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3541; /* mve_vaddq_n_fv4sf */

        default:
          return -1;
        }

    case 559:
      switch (pattern193 (x1))
        {
        case 0:
          if (!
#line 1887 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3546; /* mve_vbicq_n_sv8hi */

        case 1:
          if (!
#line 1887 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3548; /* mve_vbicq_n_sv4si */

        default:
          return -1;
        }

    case 558:
      switch (pattern193 (x1))
        {
        case 0:
          if (!
#line 1887 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3547; /* mve_vbicq_n_uv8hi */

        case 1:
          if (!
#line 1887 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3549; /* mve_vbicq_n_uv4si */

        default:
          return -1;
        }

    case 375:
      switch (pattern192 (x1))
        {
        case 0:
          if (!
#line 1945 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3578; /* mve_vcmulqv8hf */

        case 1:
          if (!
#line 1945 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3582; /* mve_vcmulqv4sf */

        default:
          return -1;
        }

    case 376:
      switch (pattern192 (x1))
        {
        case 0:
          if (!
#line 1945 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3579; /* mve_vcmulq_rot90v8hf */

        case 1:
          if (!
#line 1945 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3583; /* mve_vcmulq_rot90v4sf */

        default:
          return -1;
        }

    case 377:
      switch (pattern192 (x1))
        {
        case 0:
          if (!
#line 1945 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3580; /* mve_vcmulq_rot180v8hf */

        case 1:
          if (!
#line 1945 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3584; /* mve_vcmulq_rot180v4sf */

        default:
          return -1;
        }

    case 378:
      switch (pattern192 (x1))
        {
        case 0:
          if (!
#line 1945 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3581; /* mve_vcmulq_rot270v8hf */

        case 1:
          if (!
#line 1945 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3585; /* mve_vcmulq_rot270v4sf */

        default:
          return -1;
        }

    case 560:
      if (pattern194 (x1) != 0
          || !
#line 1960 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3586; /* mve_vctp8q_mhi */

    case 561:
      if (pattern194 (x1) != 0
          || !
#line 1960 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3587; /* mve_vctp16q_mhi */

    case 562:
      if (pattern194 (x1) != 0
          || !
#line 1960 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3588; /* mve_vctp32q_mhi */

    case 563:
      if (pattern194 (x1) != 0
          || !
#line 1960 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3589; /* mve_vctp64q_mhi */

    case 564:
      if (pattern138 (x1, E_V4SFmode, E_V8HFmode) != 0
          || !
#line 1975 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3590; /* mve_vcvtbq_f16_f32v8hf */

    case 565:
      if (pattern138 (x1, E_V4SFmode, E_V8HFmode) != 0
          || !
#line 1990 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3591; /* mve_vcvttq_f16_f32v8hf */

    case 545:
      switch (pattern192 (x1))
        {
        case 0:
          if (!
#line 2019 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3594; /* mve_vmaxnmaq_fv8hf */

        case 1:
          if (!
#line 2019 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3595; /* mve_vmaxnmaq_fv4sf */

        default:
          return -1;
        }

    case 546:
      switch (pattern195 (x1))
        {
        case 0:
          if (!
#line 2034 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3596; /* mve_vmaxnmavq_fv8hf */

        case 1:
          if (!
#line 2034 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3597; /* mve_vmaxnmavq_fv4sf */

        default:
          return -1;
        }

    case 548:
      switch (pattern195 (x1))
        {
        case 0:
          if (!
#line 2063 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3600; /* mve_vmaxnmvq_fv8hf */

        case 1:
          if (!
#line 2063 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3601; /* mve_vmaxnmvq_fv4sf */

        default:
          return -1;
        }

    case 549:
      switch (pattern192 (x1))
        {
        case 0:
          if (!
#line 2078 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3602; /* mve_vminnmaq_fv8hf */

        case 1:
          if (!
#line 2078 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3603; /* mve_vminnmaq_fv4sf */

        default:
          return -1;
        }

    case 550:
      switch (pattern195 (x1))
        {
        case 0:
          if (!
#line 2093 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3604; /* mve_vminnmavq_fv8hf */

        case 1:
          if (!
#line 2093 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3605; /* mve_vminnmavq_fv4sf */

        default:
          return -1;
        }

    case 552:
      switch (pattern195 (x1))
        {
        case 0:
          if (!
#line 2122 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3608; /* mve_vminnmvq_fv8hf */

        case 1:
          if (!
#line 2122 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3609; /* mve_vminnmvq_fv4sf */

        default:
          return -1;
        }

    case 566:
      switch (pattern196 (x1))
        {
        case 0:
          if (!
#line 2137 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3610; /* mve_vmlaldavq_uv8hi */

        case 1:
          if (!
#line 2137 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3612; /* mve_vmlaldavq_uv4si */

        default:
          return -1;
        }

    case 569:
      switch (pattern196 (x1))
        {
        case 0:
          if (!
#line 2137 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3611; /* mve_vmlaldavq_sv8hi */

        case 1:
          if (!
#line 2137 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3613; /* mve_vmlaldavq_sv4si */

        default:
          return -1;
        }

    case 568:
      switch (pattern196 (x1))
        {
        case 0:
          if (!
#line 2152 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3614; /* mve_vmlaldavxq_sv8hi */

        case 1:
          if (!
#line 2152 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3615; /* mve_vmlaldavxq_sv4si */

        default:
          return -1;
        }

    case 570:
      switch (pattern196 (x1))
        {
        case 0:
          if (!
#line 2167 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3616; /* mve_vmlsldavq_sv8hi */

        case 1:
          if (!
#line 2167 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3617; /* mve_vmlsldavq_sv4si */

        default:
          return -1;
        }

    case 571:
      switch (pattern196 (x1))
        {
        case 0:
          if (!
#line 2182 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3618; /* mve_vmlsldavxq_sv8hi */

        case 1:
          if (!
#line 2182 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3619; /* mve_vmlsldavxq_sv4si */

        default:
          return -1;
        }

    case 572:
      switch (pattern197 (x1))
        {
        case 0:
          if (!
#line 2197 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3620; /* mve_vmovnbq_uv8hi */

        case 1:
          if (!
#line 2197 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3622; /* mve_vmovnbq_uv4si */

        default:
          return -1;
        }

    case 573:
      switch (pattern197 (x1))
        {
        case 0:
          if (!
#line 2197 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3621; /* mve_vmovnbq_sv8hi */

        case 1:
          if (!
#line 2197 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3623; /* mve_vmovnbq_sv4si */

        default:
          return -1;
        }

    case 575:
      switch (pattern197 (x1))
        {
        case 0:
          if (!
#line 2212 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3624; /* mve_vmovntq_sv8hi */

        case 1:
          if (!
#line 2212 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3626; /* mve_vmovntq_sv4si */

        default:
          return -1;
        }

    case 574:
      switch (pattern197 (x1))
        {
        case 0:
          if (!
#line 2212 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3625; /* mve_vmovntq_uv8hi */

        case 1:
          if (!
#line 2212 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3627; /* mve_vmovntq_uv4si */

        default:
          return -1;
        }

    case 554:
      switch (pattern176 (x1))
        {
        case 0:
          if (!
#line 2241 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3630; /* mve_vmulq_n_fv8hf */

        case 1:
          if (!
#line 2241 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3631; /* mve_vmulq_n_fv4sf */

        default:
          return -1;
        }

    case 577:
      switch (pattern193 (x1))
        {
        case 0:
          if (!
#line 2284 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3636; /* mve_vorrq_n_uv8hi */

        case 1:
          if (!
#line 2284 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3638; /* mve_vorrq_n_uv4si */

        default:
          return -1;
        }

    case 576:
      switch (pattern193 (x1))
        {
        case 0:
          if (!
#line 2284 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3637; /* mve_vorrq_n_sv8hi */

        case 1:
          if (!
#line 2284 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3639; /* mve_vorrq_n_sv4si */

        default:
          return -1;
        }

    case 578:
      switch (pattern199 (x1))
        {
        case 0:
          if (!
#line 2299 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3640; /* mve_vqdmullbq_n_sv8hi */

        case 1:
          if (!
#line 2299 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3641; /* mve_vqdmullbq_n_sv4si */

        default:
          return -1;
        }

    case 579:
      switch (pattern155 (x1, E_V8HImode, E_V4SImode))
        {
        case 0:
          if (!
#line 2314 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3642; /* mve_vqdmullbq_sv8hi */

        case 1:
          if (!
#line 2314 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3643; /* mve_vqdmullbq_sv4si */

        default:
          return -1;
        }

    case 580:
      switch (pattern199 (x1))
        {
        case 0:
          if (!
#line 2329 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3644; /* mve_vqdmulltq_n_sv8hi */

        case 1:
          if (!
#line 2329 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3645; /* mve_vqdmulltq_n_sv4si */

        default:
          return -1;
        }

    case 581:
      switch (pattern155 (x1, E_V8HImode, E_V4SImode))
        {
        case 0:
          if (!
#line 2344 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3646; /* mve_vqdmulltq_sv8hi */

        case 1:
          if (!
#line 2344 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3647; /* mve_vqdmulltq_sv4si */

        default:
          return -1;
        }

    case 582:
      switch (pattern197 (x1))
        {
        case 0:
          if (!
#line 2359 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3648; /* mve_vqmovnbq_uv8hi */

        case 1:
          if (!
#line 2359 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3650; /* mve_vqmovnbq_uv4si */

        default:
          return -1;
        }

    case 583:
      switch (pattern197 (x1))
        {
        case 0:
          if (!
#line 2359 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3649; /* mve_vqmovnbq_sv8hi */

        case 1:
          if (!
#line 2359 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3651; /* mve_vqmovnbq_sv4si */

        default:
          return -1;
        }

    case 593:
      switch (pattern197 (x1))
        {
        case 0:
          if (!
#line 2374 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3652; /* mve_vqmovntq_uv8hi */

        case 1:
          if (!
#line 2374 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3654; /* mve_vqmovntq_uv4si */

        default:
          return -1;
        }

    case 594:
      switch (pattern197 (x1))
        {
        case 0:
          if (!
#line 2374 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3653; /* mve_vqmovntq_sv8hi */

        case 1:
          if (!
#line 2374 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3655; /* mve_vqmovntq_sv4si */

        default:
          return -1;
        }

    case 584:
      switch (pattern197 (x1))
        {
        case 0:
          if (!
#line 2389 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3656; /* mve_vqmovunbq_sv8hi */

        case 1:
          if (!
#line 2389 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3657; /* mve_vqmovunbq_sv4si */

        default:
          return -1;
        }

    case 585:
      switch (pattern197 (x1))
        {
        case 0:
          if (!
#line 2404 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3658; /* mve_vqmovuntq_sv8hi */

        case 1:
          if (!
#line 2404 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3659; /* mve_vqmovuntq_sv4si */

        default:
          return -1;
        }

    case 586:
      if (pattern168 (x1, E_V4SImode, E_DImode) != 0
          || !
#line 2419 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3660; /* mve_vrmlaldavhxq_sv4si */

    case 587:
      if (pattern168 (x1, E_V4SImode, E_DImode) != 0
          || !
#line 2434 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3661; /* mve_vrmlsldavhq_sv4si */

    case 588:
      if (pattern168 (x1, E_V4SImode, E_DImode) != 0
          || !
#line 2449 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3662; /* mve_vrmlsldavhxq_sv4si */

    case 595:
      switch (pattern200 (x1))
        {
        case 0:
          if (!
#line 2464 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3663; /* mve_vshllbq_n_sv16qi */

        case 1:
          if (!
#line 2464 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3665; /* mve_vshllbq_n_sv8hi */

        default:
          return -1;
        }

    case 596:
      switch (pattern200 (x1))
        {
        case 0:
          if (!
#line 2464 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3664; /* mve_vshllbq_n_uv16qi */

        case 1:
          if (!
#line 2464 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3666; /* mve_vshllbq_n_uv8hi */

        default:
          return -1;
        }

    case 597:
      switch (pattern200 (x1))
        {
        case 0:
          if (!
#line 2479 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3667; /* mve_vshlltq_n_uv16qi */

        case 1:
          if (!
#line 2479 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3669; /* mve_vshlltq_n_uv8hi */

        default:
          return -1;
        }

    case 598:
      switch (pattern200 (x1))
        {
        case 0:
          if (!
#line 2479 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3668; /* mve_vshlltq_n_sv16qi */

        case 1:
          if (!
#line 2479 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3670; /* mve_vshlltq_n_sv8hi */

        default:
          return -1;
        }

    case 601:
      switch (pattern201 (x1))
        {
        case 0:
          if (!
#line 2508 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3673; /* mve_vmulltq_poly_pv16qi */

        case 1:
          if (!
#line 2508 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3674; /* mve_vmulltq_poly_pv8hi */

        default:
          return -1;
        }

    case 602:
      switch (pattern201 (x1))
        {
        case 0:
          if (!
#line 2523 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3675; /* mve_vmullbq_poly_pv16qi */

        case 1:
          if (!
#line 2523 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3676; /* mve_vmullbq_poly_pv8hi */

        default:
          return -1;
        }

    case 599:
      if (pattern168 (x1, E_V4SImode, E_DImode) != 0
          || !
#line 2538 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3677; /* mve_vrmlaldavhq_uv4si */

    case 600:
      if (pattern168 (x1, E_V4SImode, E_DImode) != 0
          || !
#line 2538 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3678; /* mve_vrmlaldavhq_sv4si */

    case 1003:
      switch (pattern204 (x1))
        {
        case 0:
          if (!
#line 7155 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4646; /* mve_vldrbq_gather_offset_sv16qi */

        case 1:
          if (!
#line 7155 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4648; /* mve_vldrbq_gather_offset_sv8hi */

        case 2:
          if (!
#line 7155 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4650; /* mve_vldrbq_gather_offset_sv4si */

        default:
          return -1;
        }

    case 1004:
      switch (pattern204 (x1))
        {
        case 0:
          if (!
#line 7155 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4647; /* mve_vldrbq_gather_offset_uv16qi */

        case 1:
          if (!
#line 7155 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4649; /* mve_vldrbq_gather_offset_uv8hi */

        case 2:
          if (!
#line 7155 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4651; /* mve_vldrbq_gather_offset_uv4si */

        default:
          return -1;
        }

    case 1007:
      if (pattern205 (x1, E_V4SImode) != 0
          || !
#line 7200 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4658; /* mve_vldrwq_gather_base_sv4si */

    case 1008:
      if (pattern205 (x1, E_V4SImode) != 0
          || !
#line 7200 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4659; /* mve_vldrwq_gather_base_uv4si */

    case 1001:
      switch (pattern208 (x1))
        {
        case 0:
          if (!
#line 7275 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4668; /* mve_vstrbq_p_sv16qi */

        case 1:
          if (!
#line 7275 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4670; /* mve_vstrbq_p_sv8hi */

        case 2:
          if (!
#line 7275 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4672; /* mve_vstrbq_p_sv4si */

        default:
          return -1;
        }

    case 1002:
      switch (pattern208 (x1))
        {
        case 0:
          if (!
#line 7275 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4669; /* mve_vstrbq_p_uv16qi */

        case 1:
          if (!
#line 7275 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4671; /* mve_vstrbq_p_uv8hi */

        case 2:
          if (!
#line 7275 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4673; /* mve_vstrbq_p_uv4si */

        default:
          return -1;
        }

    case 1005:
      switch (pattern211 (x1))
        {
        case 0:
          if (!
#line 7320 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4680; /* mve_vldrbq_z_sv16qi */

        case 1:
          if (!
#line 7320 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4682; /* mve_vldrbq_z_sv8hi */

        case 2:
          if (!
#line 7320 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4684; /* mve_vldrbq_z_sv4si */

        default:
          return -1;
        }

    case 1006:
      switch (pattern211 (x1))
        {
        case 0:
          if (!
#line 7320 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4681; /* mve_vldrbq_z_uv16qi */

        case 1:
          if (!
#line 7320 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4683; /* mve_vldrbq_z_uv8hi */

        case 2:
          if (!
#line 7320 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4685; /* mve_vldrbq_z_uv4si */

        default:
          return -1;
        }

    case 1013:
      switch (pattern212 (x1))
        {
        case 0:
          if (!
#line 7383 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4689; /* mve_vldrhq_gather_offset_sv8hi */

        case 1:
          if (!
#line 7383 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4691; /* mve_vldrhq_gather_offset_sv4si */

        default:
          return -1;
        }

    case 1014:
      switch (pattern212 (x1))
        {
        case 0:
          if (!
#line 7383 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4690; /* mve_vldrhq_gather_offset_uv8hi */

        case 1:
          if (!
#line 7383 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4692; /* mve_vldrhq_gather_offset_uv4si */

        default:
          return -1;
        }

    case 1015:
      switch (pattern212 (x1))
        {
        case 0:
          if (!
#line 7431 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4697; /* mve_vldrhq_gather_shifted_offset_sv8hi */

        case 1:
          if (!
#line 7431 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4699; /* mve_vldrhq_gather_shifted_offset_sv4si */

        default:
          return -1;
        }

    case 1016:
      switch (pattern212 (x1))
        {
        case 0:
          if (!
#line 7431 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4698; /* mve_vldrhq_gather_shifted_offset_uv8hi */

        case 1:
          if (!
#line 7431 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4700; /* mve_vldrhq_gather_shifted_offset_uv4si */

        default:
          return -1;
        }

    case 1012:
      return recog_198 (x1, insn, pnum_clobbers);

    case 1017:
      switch (pattern213 (x1))
        {
        case 0:
          if (!
#line 7521 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4710; /* mve_vldrhq_z_sv8hi */

        case 1:
          if (!
#line 7521 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4712; /* mve_vldrhq_z_sv4si */

        default:
          return -1;
        }

    case 1018:
      switch (pattern213 (x1))
        {
        case 0:
          if (!
#line 7521 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4711; /* mve_vldrhq_z_uv8hi */

        case 1:
          if (!
#line 7521 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4713; /* mve_vldrhq_z_uv4si */

        default:
          return -1;
        }

    case 1019:
      if (pattern214 (x1, E_V4SFmode) != 0
          || !
#line 7582 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4717; /* mve_vldrwq_z_fv4sf */

    case 1020:
      if (pattern214 (x1, E_V4SImode) != 0
          || !
#line 7602 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4718; /* mve_vldrwq_z_sv4si */

    case 1021:
      if (pattern214 (x1, E_V4SImode) != 0
          || !
#line 7602 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4719; /* mve_vldrwq_z_uv4si */

    case 1022:
      if (pattern215 (x1) != 0
          || !
#line 7642 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4720; /* mve_vldrdq_gather_base_sv2di */

    case 1023:
      if (pattern215 (x1) != 0
          || !
#line 7642 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4721; /* mve_vldrdq_gather_base_uv2di */

    case 1024:
      if (pattern216 (x1) != 0
          || !
#line 7683 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4724; /* mve_vldrdq_gather_offset_sv2di */

    case 1025:
      if (pattern216 (x1) != 0
          || !
#line 7683 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4725; /* mve_vldrdq_gather_offset_uv2di */

    case 1026:
      if (pattern216 (x1) != 0
          || !
#line 7724 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4728; /* mve_vldrdq_gather_shifted_offset_sv2di */

    case 1027:
      if (pattern216 (x1) != 0
          || !
#line 7724 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4729; /* mve_vldrdq_gather_shifted_offset_uv2di */

    case 1028:
      if (pattern217 (x1) != 0
          || !
#line 7765 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4732; /* mve_vldrhq_gather_offset_fv8hf */

    case 1029:
      if (pattern217 (x1) != 0
          || !
#line 7807 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4734; /* mve_vldrhq_gather_shifted_offset_fv8hf */

    case 1030:
      if (pattern205 (x1, E_V4SFmode) != 0
          || !
#line 7849 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4736; /* mve_vldrwq_gather_base_fv4sf */

    case 1031:
      if (pattern218 (x1, E_V4SFmode) != 0
          || !
#line 7890 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4738; /* mve_vldrwq_gather_offset_fv4sf */

    case 1032:
      if (pattern218 (x1, E_V4SImode) != 0
          || !
#line 7910 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4739; /* mve_vldrwq_gather_offset_sv4si */

    case 1033:
      if (pattern218 (x1, E_V4SImode) != 0
          || !
#line 7910 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4740; /* mve_vldrwq_gather_offset_uv4si */

    case 1034:
      if (pattern218 (x1, E_V4SFmode) != 0
          || !
#line 7974 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4744; /* mve_vldrwq_gather_shifted_offset_fv4sf */

    case 1035:
      if (pattern218 (x1, E_V4SImode) != 0
          || !
#line 7994 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4745; /* mve_vldrwq_gather_shifted_offset_sv4si */

    case 1036:
      if (pattern218 (x1, E_V4SImode) != 0
          || !
#line 7994 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4746; /* mve_vldrwq_gather_shifted_offset_uv4si */

    case 1037:
      return recog_197 (x1, insn, pnum_clobbers);

    case 1103:
      switch (pattern219 (x1))
        {
        case 0:
          if (!
#line 8097 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4752; /* mve_vstrhq_p_sv8hi */

        case 1:
          if (!
#line 8097 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4754; /* mve_vstrhq_p_sv4si */

        default:
          return -1;
        }

    case 1041:
      switch (pattern219 (x1))
        {
        case 0:
          if (!
#line 8097 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4753; /* mve_vstrhq_p_uv8hi */

        case 1:
          if (!
#line 8097 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4755; /* mve_vstrhq_p_uv4si */

        default:
          return -1;
        }

    case 1044:
      if (pattern220 (x1, E_V8BImode, E_V4SFmode) != 0
          || !
#line 8276 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4777; /* mve_vstrwq_p_fv4sf */

    case 1042:
      if (pattern220 (x1, E_V4BImode, E_V4SImode) != 0
          || !
#line 8296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4778; /* mve_vstrwq_p_sv4si */

    case 1043:
      if (pattern220 (x1, E_V4BImode, E_V4SImode) != 0
          || !
#line 8296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4779; /* mve_vstrwq_p_uv4si */

    case 1097:
      return recog_194 (x1, insn, pnum_clobbers);

    case 1095:
      return recog_193 (x1, insn, pnum_clobbers);

    case 1096:
      return recog_192 (x1, insn, pnum_clobbers);

    case 1110:
      if (pattern222 (x1) != 0
          || !
#line 10165 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4912; /* mve_uqrshll_sat64_di */

    case 1111:
      if (pattern222 (x1) != 0
          || !
#line 10165 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4913; /* mve_uqrshll_sat48_di */

    case 1112:
      if (pattern222 (x1) != 0
          || !
#line 10177 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4914; /* mve_sqrshrl_sat64_di */

    case 1113:
      if (pattern222 (x1) != 0
          || !
#line 10177 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4915; /* mve_sqrshrl_sat48_di */

    case 1109:
      if (pattern223 (x1) != 0
          || !
#line 10189 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4916; /* mve_uqrshl_si */

    case 1108:
      if (pattern223 (x1) != 0
          || !
#line 10201 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4917; /* mve_sqrshr_si */

    case 1107:
      if (pattern224 (x1) != 0
          || !
#line 10224 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4919; /* mve_urshrl_di */

    case 1106:
      if (pattern225 (x1, E_SImode) != 0
          || !
#line 10247 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4921; /* mve_urshr_si */

    case 1105:
      if (pattern225 (x1, E_DImode) != 0
          || !
#line 10270 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4923; /* mve_srshr_si */

    case 1104:
      if (pattern224 (x1) != 0
          || !
#line 10282 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4924; /* mve_srshrl_di */

    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 2777 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 2777 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY && !ARM_Q_BIT_READ))
        return -1;
      return 88; /* arm_smlawt_insn */

    case 103:
      return recog_93 (x1, insn, pnum_clobbers);

    case 102:
      return recog_86 (x1, insn, pnum_clobbers);

    case 74:
      if (pattern30 (x1) != 0
          || !
#line 5974 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 217; /* arm_usada8 */

    case 75:
      if (pattern31 (x1) != 0
          || !
#line 5985 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 218; /* arm_smlald */

    case 76:
      if (pattern31 (x1) != 0
          || !
#line 5985 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 219; /* arm_smlaldx */

    case 77:
      if (pattern31 (x1) != 0
          || !
#line 5985 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 220; /* arm_smlsld */

    case 78:
      if (pattern31 (x1) != 0
          || !
#line 5985 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 221; /* arm_smlsldx */

    case 94:
      if (pattern30 (x1) != 0
          || !
#line 6008 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ))
        return -1;
      return 234; /* arm_smlad_insn */

    case 95:
      if (pattern30 (x1) != 0
          || !
#line 6008 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ))
        return -1;
      return 236; /* arm_smladx_insn */

    case 96:
      if (pattern30 (x1) != 0
          || !
#line 6008 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ))
        return -1;
      return 238; /* arm_smlsd_insn */

    case 97:
      if (pattern30 (x1) != 0
          || !
#line 6008 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ))
        return -1;
      return 240; /* 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_85 (x1, insn, pnum_clobbers);

    case 11:
      if (pattern32 (x1) != 0
          || !
#line 518 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 558; /* iwmmxt_wmacs */

    case 12:
      if (pattern32 (x1) != 0
          || !
#line 539 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 560; /* 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 218:
      return recog_80 (x1, insn, pnum_clobbers);

    case 220:
      switch (pattern36 (x1))
        {
        case 0:
          if (!
#line 2062 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1541; /* neon_vmlalsv8qi */

        case 1:
          if (!
#line 2062 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1543; /* neon_vmlalsv4hi */

        case 2:
          if (!
#line 2062 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1545; /* neon_vmlalsv2si */

        default:
          return -1;
        }

    case 221:
      switch (pattern36 (x1))
        {
        case 0:
          if (!
#line 2062 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1542; /* neon_vmlaluv8qi */

        case 1:
          if (!
#line 2062 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1544; /* neon_vmlaluv4hi */

        case 2:
          if (!
#line 2062 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1546; /* neon_vmlaluv2si */

        default:
          return -1;
        }

    case 224:
      return recog_79 (x1, insn, pnum_clobbers);

    case 226:
      switch (pattern36 (x1))
        {
        case 0:
          if (!
#line 2105 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1555; /* neon_vmlslsv8qi */

        case 1:
          if (!
#line 2105 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1557; /* neon_vmlslsv4hi */

        case 2:
          if (!
#line 2105 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1559; /* neon_vmlslsv2si */

        default:
          return -1;
        }

    case 227:
      switch (pattern36 (x1))
        {
        case 0:
          if (!
#line 2105 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1556; /* neon_vmlsluv8qi */

        case 1:
          if (!
#line 2105 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1558; /* neon_vmlsluv4hi */

        case 2:
          if (!
#line 2105 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1560; /* neon_vmlsluv2si */

        default:
          return -1;
        }

    case 352:
      return recog_92 (x1, insn, pnum_clobbers);

    case 353:
      return recog_91 (x1, insn, pnum_clobbers);

    case 259:
      switch (pattern38 (x1))
        {
        case 0:
          if (!
#line 2139 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1577; /* neon_vqdmlalv4hi */

        case 1:
          if (!
#line 2139 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1578; /* neon_vqdmlalv2si */

        default:
          return -1;
        }

    case 261:
      switch (pattern38 (x1))
        {
        case 0:
          if (!
#line 2150 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1579; /* neon_vqdmlslv4hi */

        case 1:
          if (!
#line 2150 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1580; /* neon_vqdmlslv2si */

        default:
          return -1;
        }

    case 240:
      return recog_68 (x1, insn, pnum_clobbers);

    case 241:
      switch (pattern40 (x1))
        {
        case 0:
          if (!
#line 3873 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2161; /* neon_vmulls_lanev4hi */

        case 1:
          if (!
#line 3873 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2163; /* neon_vmulls_lanev2si */

        default:
          return -1;
        }

    case 242:
      switch (pattern40 (x1))
        {
        case 0:
          if (!
#line 3873 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2162; /* neon_vmullu_lanev4hi */

        case 1:
          if (!
#line 3873 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2164; /* neon_vmullu_lanev2si */

        default:
          return -1;
        }

    case 268:
      switch (pattern40 (x1))
        {
        case 0:
          if (!
#line 3887 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2165; /* neon_vqdmull_lanev4hi */

        case 1:
          if (!
#line 3887 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2166; /* neon_vqdmull_lanev2si */

        default:
          return -1;
        }

    case 264:
      return recog_90 (x1, insn, pnum_clobbers);

    case 266:
      return recog_89 (x1, insn, pnum_clobbers);

    case 190:
      return recog_63 (x1, insn, pnum_clobbers);

    case 159:
      return recog_64 (x1, insn, pnum_clobbers);

    case 309:
      return recog_78 (x1, insn, pnum_clobbers);

    case 310:
      return recog_76 (x1, insn, pnum_clobbers);

    case 311:
      return recog_77 (x1, insn, pnum_clobbers);

    case 312:
      return recog_75 (x1, insn, pnum_clobbers);

    case 313:
      return recog_74 (x1, insn, pnum_clobbers);

    case 308:
      return recog_73 (x1, insn, pnum_clobbers);

    case 335:
      return recog_69 (x1, insn, pnum_clobbers);

    case 198:
      return recog_62 (x1, insn, pnum_clobbers);

    case 317:
      return recog_67 (x1, insn, pnum_clobbers);

    case 204:
      return recog_83 (x1, insn, pnum_clobbers);

    case 321:
      return recog_65 (x1, insn, pnum_clobbers);

    case 209:
      return recog_82 (x1, insn, pnum_clobbers);

    case 325:
      return recog_66 (x1, insn, pnum_clobbers);

    case 137:
      if (pattern47 (x1) != 0
          || !
#line 225 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO))
        return -1;
      return 2853; /* crypto_sha1su0 */

    case 139:
      if (pattern47 (x1) != 0
          || !
#line 225 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO))
        return -1;
      return 2854; /* crypto_sha256h */

    case 140:
      if (pattern47 (x1) != 0
          || !
#line 225 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO))
        return -1;
      return 2855; /* crypto_sha256h2 */

    case 142:
      if (pattern47 (x1) != 0
          || !
#line 225 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO))
        return -1;
      return 2856; /* crypto_sha256su1 */

    case 133:
      if (pattern48 (x1) != 0
          || !
#line 295 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO && INTVAL (operands[4]) == NEON_ENDIAN_LANE_N (V2SImode, 0)))
        return -1;
      return 2859; /* crypto_sha1c_lb */

    case 134:
      if (pattern48 (x1) != 0
          || !
#line 295 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO && INTVAL (operands[4]) == NEON_ENDIAN_LANE_N (V2SImode, 0)))
        return -1;
      return 2860; /* crypto_sha1m_lb */

    case 135:
      if (pattern48 (x1) != 0
          || !
#line 295 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO && INTVAL (operands[4]) == NEON_ENDIAN_LANE_N (V2SImode, 0)))
        return -1;
      return 2861; /* crypto_sha1p_lb */

    case 755:
      switch (pattern50 (x1))
        {
        case 0:
          if (!
#line 136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3048; /* mve_vrndq_m_fv8hf */

        case 1:
          if (!
#line 136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3049; /* mve_vrndq_m_fv4sf */

        default:
          return -1;
        }

    case 603:
      switch (pattern52 (x1))
        {
        case 0:
          if (!
#line 2554 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3679; /* mve_vbicq_m_n_sv8hi */

        case 1:
          if (!
#line 2554 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3681; /* mve_vbicq_m_n_sv4si */

        default:
          return -1;
        }

    case 604:
      switch (pattern52 (x1))
        {
        case 0:
          if (!
#line 2554 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3680; /* mve_vbicq_m_n_uv8hi */

        case 1:
          if (!
#line 2554 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3682; /* mve_vbicq_m_n_uv4si */

        default:
          return -1;
        }

    case 605:
      switch (pattern54 (x1))
        {
        case 0:
          if (!
#line 2569 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3683; /* mve_vcmpeqq_m_fv8hf */

        case 1:
          if (!
#line 2569 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3684; /* mve_vcmpeqq_m_fv4sf */

        default:
          return -1;
        }

    case 606:
      switch (pattern56 (x1, E_V8BImode, E_V8HFmode, E_V4BImode, E_V4SFmode))
        {
        case 0:
          if (!
#line 2584 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3685; /* mve_vcvtaq_m_sv8hi */

        case 1:
          if (!
#line 2584 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3687; /* mve_vcvtaq_m_sv4si */

        default:
          return -1;
        }

    case 607:
      switch (pattern56 (x1, E_V8BImode, E_V8HFmode, E_V4BImode, E_V4SFmode))
        {
        case 0:
          if (!
#line 2584 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3686; /* mve_vcvtaq_m_uv8hi */

        case 1:
          if (!
#line 2584 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3688; /* mve_vcvtaq_m_uv4si */

        default:
          return -1;
        }

    case 608:
      switch (pattern57 (x1, E_V8HImode, E_V4SImode))
        {
        case 0:
          if (!
#line 2599 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3689; /* mve_vcvtq_m_to_f_sv8hf */

        case 1:
          if (!
#line 2599 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3691; /* mve_vcvtq_m_to_f_sv4sf */

        default:
          return -1;
        }

    case 609:
      switch (pattern57 (x1, E_V8HImode, E_V4SImode))
        {
        case 0:
          if (!
#line 2599 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3690; /* mve_vcvtq_m_to_f_uv8hf */

        case 1:
          if (!
#line 2599 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3692; /* mve_vcvtq_m_to_f_uv4sf */

        default:
          return -1;
        }

    case 610:
      switch (pattern58 (x1))
        {
        case 0:
          if (!
#line 2614 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3693; /* mve_vqrshrnbq_n_uv8hi */

        case 1:
          if (!
#line 2614 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3695; /* mve_vqrshrnbq_n_uv4si */

        default:
          return -1;
        }

    case 611:
      switch (pattern58 (x1))
        {
        case 0:
          if (!
#line 2614 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3694; /* mve_vqrshrnbq_n_sv8hi */

        case 1:
          if (!
#line 2614 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3696; /* mve_vqrshrnbq_n_sv4si */

        default:
          return -1;
        }

    case 612:
      switch (pattern58 (x1))
        {
        case 0:
          if (!
#line 2629 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3697; /* mve_vqrshrunbq_n_sv8hi */

        case 1:
          if (!
#line 2629 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3698; /* mve_vqrshrunbq_n_sv4si */

        default:
          return -1;
        }

    case 613:
      if (pattern59 (x1) != 0
          || !
#line 2644 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3699; /* mve_vrmlaldavhaq_sv4si */

    case 618:
      if (pattern59 (x1) != 0
          || !
#line 2644 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3700; /* mve_vrmlaldavhaq_uv4si */

    case 614:
      switch (pattern60 (x1))
        {
        case 0:
          if (!
#line 2660 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3701; /* mve_vabavq_sv16qi */

        case 1:
          if (!
#line 2660 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3703; /* mve_vabavq_sv8hi */

        case 2:
          if (!
#line 2660 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3705; /* mve_vabavq_sv4si */

        default:
          return -1;
        }

    case 615:
      switch (pattern60 (x1))
        {
        case 0:
          if (!
#line 2660 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3702; /* mve_vabavq_uv16qi */

        case 1:
          if (!
#line 2660 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3704; /* mve_vabavq_uv8hi */

        case 2:
          if (!
#line 2660 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3706; /* mve_vabavq_uv4si */

        default:
          return -1;
        }

    case 619:
      switch (pattern61 (x1))
        {
        case 0:
          if (!
#line 2721 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3713; /* mve_vabsq_m_sv16qi */

        case 1:
          if (!
#line 2721 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3714; /* mve_vabsq_m_sv8hi */

        case 2:
          if (!
#line 2721 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3715; /* mve_vabsq_m_sv4si */

        default:
          return -1;
        }

    case 620:
      switch (pattern62 (x1))
        {
        case 0:
          if (!
#line 2737 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3716; /* mve_vaddvaq_p_sv16qi */

        case 1:
          if (!
#line 2737 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3718; /* mve_vaddvaq_p_sv8hi */

        case 2:
          if (!
#line 2737 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3720; /* mve_vaddvaq_p_sv4si */

        default:
          return -1;
        }

    case 621:
      switch (pattern62 (x1))
        {
        case 0:
          if (!
#line 2737 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3717; /* mve_vaddvaq_p_uv16qi */

        case 1:
          if (!
#line 2737 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3719; /* mve_vaddvaq_p_uv8hi */

        case 2:
          if (!
#line 2737 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3721; /* mve_vaddvaq_p_uv4si */

        default:
          return -1;
        }

    case 622:
      switch (pattern61 (x1))
        {
        case 0:
          if (!
#line 2753 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3722; /* mve_vclsq_m_sv16qi */

        case 1:
          if (!
#line 2753 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3723; /* mve_vclsq_m_sv8hi */

        case 2:
          if (!
#line 2753 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3724; /* mve_vclsq_m_sv4si */

        default:
          return -1;
        }

    case 623:
      switch (pattern61 (x1))
        {
        case 0:
          if (!
#line 2769 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3725; /* mve_vclzq_m_sv16qi */

        case 1:
          if (!
#line 2769 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3727; /* mve_vclzq_m_sv8hi */

        case 2:
          if (!
#line 2769 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3729; /* mve_vclzq_m_sv4si */

        default:
          return -1;
        }

    case 624:
      switch (pattern61 (x1))
        {
        case 0:
          if (!
#line 2769 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3726; /* mve_vclzq_m_uv16qi */

        case 1:
          if (!
#line 2769 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3728; /* mve_vclzq_m_uv8hi */

        case 2:
          if (!
#line 2769 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3730; /* mve_vclzq_m_uv4si */

        default:
          return -1;
        }

    case 625:
      switch (pattern64 (x1))
        {
        case 0:
          if (!
#line 2785 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3731; /* mve_vcmpcsq_m_n_uv16qi */

        case 1:
          if (!
#line 2785 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3732; /* mve_vcmpcsq_m_n_uv8hi */

        case 2:
          if (!
#line 2785 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3733; /* mve_vcmpcsq_m_n_uv4si */

        default:
          return -1;
        }

    case 626:
      switch (pattern65 (x1))
        {
        case 0:
          if (!
#line 2801 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3734; /* mve_vcmpcsq_m_uv16qi */

        case 1:
          if (!
#line 2801 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3735; /* mve_vcmpcsq_m_uv8hi */

        case 2:
          if (!
#line 2801 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3736; /* mve_vcmpcsq_m_uv4si */

        default:
          return -1;
        }

    case 627:
      switch (pattern64 (x1))
        {
        case 0:
          if (!
#line 2817 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3737; /* mve_vcmpeqq_m_n_sv16qi */

        case 1:
          if (!
#line 2817 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3739; /* mve_vcmpeqq_m_n_sv8hi */

        case 2:
          if (!
#line 2817 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3741; /* mve_vcmpeqq_m_n_sv4si */

        default:
          return -1;
        }

    case 628:
      switch (pattern64 (x1))
        {
        case 0:
          if (!
#line 2817 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3738; /* mve_vcmpeqq_m_n_uv16qi */

        case 1:
          if (!
#line 2817 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3740; /* mve_vcmpeqq_m_n_uv8hi */

        case 2:
          if (!
#line 2817 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3742; /* mve_vcmpeqq_m_n_uv4si */

        default:
          return -1;
        }

    case 629:
      switch (pattern65 (x1))
        {
        case 0:
          if (!
#line 2833 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3743; /* mve_vcmpeqq_m_sv16qi */

        case 1:
          if (!
#line 2833 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3745; /* mve_vcmpeqq_m_sv8hi */

        case 2:
          if (!
#line 2833 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3747; /* mve_vcmpeqq_m_sv4si */

        default:
          return -1;
        }

    case 630:
      switch (pattern65 (x1))
        {
        case 0:
          if (!
#line 2833 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3744; /* mve_vcmpeqq_m_uv16qi */

        case 1:
          if (!
#line 2833 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3746; /* mve_vcmpeqq_m_uv8hi */

        case 2:
          if (!
#line 2833 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3748; /* mve_vcmpeqq_m_uv4si */

        default:
          return -1;
        }

    case 631:
      switch (pattern64 (x1))
        {
        case 0:
          if (!
#line 2849 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3749; /* mve_vcmpgeq_m_n_sv16qi */

        case 1:
          if (!
#line 2849 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3750; /* mve_vcmpgeq_m_n_sv8hi */

        case 2:
          if (!
#line 2849 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3751; /* mve_vcmpgeq_m_n_sv4si */

        default:
          return -1;
        }

    case 632:
      switch (pattern65 (x1))
        {
        case 0:
          if (!
#line 2865 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3752; /* mve_vcmpgeq_m_sv16qi */

        case 1:
          if (!
#line 2865 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3753; /* mve_vcmpgeq_m_sv8hi */

        case 2:
          if (!
#line 2865 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3754; /* mve_vcmpgeq_m_sv4si */

        default:
          return -1;
        }

    case 633:
      switch (pattern64 (x1))
        {
        case 0:
          if (!
#line 2881 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3755; /* mve_vcmpgtq_m_n_sv16qi */

        case 1:
          if (!
#line 2881 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3756; /* mve_vcmpgtq_m_n_sv8hi */

        case 2:
          if (!
#line 2881 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3757; /* mve_vcmpgtq_m_n_sv4si */

        default:
          return -1;
        }

    case 634:
      switch (pattern65 (x1))
        {
        case 0:
          if (!
#line 2897 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3758; /* mve_vcmpgtq_m_sv16qi */

        case 1:
          if (!
#line 2897 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3759; /* mve_vcmpgtq_m_sv8hi */

        case 2:
          if (!
#line 2897 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3760; /* mve_vcmpgtq_m_sv4si */

        default:
          return -1;
        }

    case 635:
      switch (pattern64 (x1))
        {
        case 0:
          if (!
#line 2913 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3761; /* mve_vcmphiq_m_n_uv16qi */

        case 1:
          if (!
#line 2913 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3762; /* mve_vcmphiq_m_n_uv8hi */

        case 2:
          if (!
#line 2913 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3763; /* mve_vcmphiq_m_n_uv4si */

        default:
          return -1;
        }

    case 636:
      switch (pattern65 (x1))
        {
        case 0:
          if (!
#line 2929 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3764; /* mve_vcmphiq_m_uv16qi */

        case 1:
          if (!
#line 2929 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3765; /* mve_vcmphiq_m_uv8hi */

        case 2:
          if (!
#line 2929 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3766; /* mve_vcmphiq_m_uv4si */

        default:
          return -1;
        }

    case 637:
      switch (pattern64 (x1))
        {
        case 0:
          if (!
#line 2945 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3767; /* mve_vcmpleq_m_n_sv16qi */

        case 1:
          if (!
#line 2945 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3768; /* mve_vcmpleq_m_n_sv8hi */

        case 2:
          if (!
#line 2945 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3769; /* mve_vcmpleq_m_n_sv4si */

        default:
          return -1;
        }

    case 638:
      switch (pattern65 (x1))
        {
        case 0:
          if (!
#line 2961 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3770; /* mve_vcmpleq_m_sv16qi */

        case 1:
          if (!
#line 2961 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3771; /* mve_vcmpleq_m_sv8hi */

        case 2:
          if (!
#line 2961 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3772; /* mve_vcmpleq_m_sv4si */

        default:
          return -1;
        }

    case 639:
      switch (pattern64 (x1))
        {
        case 0:
          if (!
#line 2977 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3773; /* mve_vcmpltq_m_n_sv16qi */

        case 1:
          if (!
#line 2977 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3774; /* mve_vcmpltq_m_n_sv8hi */

        case 2:
          if (!
#line 2977 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3775; /* mve_vcmpltq_m_n_sv4si */

        default:
          return -1;
        }

    case 640:
      switch (pattern65 (x1))
        {
        case 0:
          if (!
#line 2993 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3776; /* mve_vcmpltq_m_sv16qi */

        case 1:
          if (!
#line 2993 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3777; /* mve_vcmpltq_m_sv8hi */

        case 2:
          if (!
#line 2993 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3778; /* mve_vcmpltq_m_sv4si */

        default:
          return -1;
        }

    case 641:
      switch (pattern64 (x1))
        {
        case 0:
          if (!
#line 3009 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3779; /* mve_vcmpneq_m_n_sv16qi */

        case 1:
          if (!
#line 3009 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3781; /* mve_vcmpneq_m_n_sv8hi */

        case 2:
          if (!
#line 3009 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3783; /* mve_vcmpneq_m_n_sv4si */

        default:
          return -1;
        }

    case 642:
      switch (pattern64 (x1))
        {
        case 0:
          if (!
#line 3009 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3780; /* mve_vcmpneq_m_n_uv16qi */

        case 1:
          if (!
#line 3009 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3782; /* mve_vcmpneq_m_n_uv8hi */

        case 2:
          if (!
#line 3009 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3784; /* mve_vcmpneq_m_n_uv4si */

        default:
          return -1;
        }

    case 643:
      switch (pattern65 (x1))
        {
        case 0:
          if (!
#line 3025 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3785; /* mve_vcmpneq_m_sv16qi */

        case 1:
          if (!
#line 3025 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3787; /* mve_vcmpneq_m_sv8hi */

        case 2:
          if (!
#line 3025 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3789; /* mve_vcmpneq_m_sv4si */

        default:
          return -1;
        }

    case 644:
      switch (pattern65 (x1))
        {
        case 0:
          if (!
#line 3025 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3786; /* mve_vcmpneq_m_uv16qi */

        case 1:
          if (!
#line 3025 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3788; /* mve_vcmpneq_m_uv8hi */

        case 2:
          if (!
#line 3025 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3790; /* mve_vcmpneq_m_uv4si */

        default:
          return -1;
        }

    case 645:
      switch (pattern66 (x1))
        {
        case 0:
          if (!
#line 3041 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3791; /* mve_vdupq_m_n_sv16qi */

        case 1:
          if (!
#line 3041 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3793; /* mve_vdupq_m_n_sv8hi */

        case 2:
          if (!
#line 3041 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3795; /* mve_vdupq_m_n_sv4si */

        default:
          return -1;
        }

    case 646:
      switch (pattern66 (x1))
        {
        case 0:
          if (!
#line 3041 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3792; /* mve_vdupq_m_n_uv16qi */

        case 1:
          if (!
#line 3041 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3794; /* mve_vdupq_m_n_uv8hi */

        case 2:
          if (!
#line 3041 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3796; /* mve_vdupq_m_n_uv4si */

        default:
          return -1;
        }

    case 651:
      switch (pattern61 (x1))
        {
        case 0:
          if (!
#line 3057 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3797; /* mve_vmaxaq_m_sv16qi */

        case 1:
          if (!
#line 3057 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3798; /* mve_vmaxaq_m_sv8hi */

        case 2:
          if (!
#line 3057 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3799; /* mve_vmaxaq_m_sv4si */

        default:
          return -1;
        }

    case 652:
      switch (pattern67 (x1))
        {
        case 0:
          if (!
#line 3073 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3800; /* mve_vmaxavq_p_sv16qi */

        case 1:
          if (!
#line 3073 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3801; /* mve_vmaxavq_p_sv8hi */

        case 2:
          if (!
#line 3073 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3802; /* mve_vmaxavq_p_sv4si */

        default:
          return -1;
        }

    case 653:
      switch (pattern67 (x1))
        {
        case 0:
          if (!
#line 3089 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3803; /* mve_vmaxvq_p_sv16qi */

        case 1:
          if (!
#line 3089 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3805; /* mve_vmaxvq_p_sv8hi */

        case 2:
          if (!
#line 3089 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3807; /* mve_vmaxvq_p_sv4si */

        default:
          return -1;
        }

    case 654:
      switch (pattern67 (x1))
        {
        case 0:
          if (!
#line 3089 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3804; /* mve_vmaxvq_p_uv16qi */

        case 1:
          if (!
#line 3089 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3806; /* mve_vmaxvq_p_uv8hi */

        case 2:
          if (!
#line 3089 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3808; /* mve_vmaxvq_p_uv4si */

        default:
          return -1;
        }

    case 655:
      switch (pattern61 (x1))
        {
        case 0:
          if (!
#line 3105 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3809; /* mve_vminaq_m_sv16qi */

        case 1:
          if (!
#line 3105 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3810; /* mve_vminaq_m_sv8hi */

        case 2:
          if (!
#line 3105 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3811; /* mve_vminaq_m_sv4si */

        default:
          return -1;
        }

    case 656:
      switch (pattern67 (x1))
        {
        case 0:
          if (!
#line 3121 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3812; /* mve_vminavq_p_sv16qi */

        case 1:
          if (!
#line 3121 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3813; /* mve_vminavq_p_sv8hi */

        case 2:
          if (!
#line 3121 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3814; /* mve_vminavq_p_sv4si */

        default:
          return -1;
        }

    case 657:
      switch (pattern67 (x1))
        {
        case 0:
          if (!
#line 3137 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3815; /* mve_vminvq_p_sv16qi */

        case 1:
          if (!
#line 3137 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3817; /* mve_vminvq_p_sv8hi */

        case 2:
          if (!
#line 3137 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3819; /* mve_vminvq_p_sv4si */

        default:
          return -1;
        }

    case 658:
      switch (pattern67 (x1))
        {
        case 0:
          if (!
#line 3137 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3816; /* mve_vminvq_p_uv16qi */

        case 1:
          if (!
#line 3137 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3818; /* mve_vminvq_p_uv8hi */

        case 2:
          if (!
#line 3137 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3820; /* mve_vminvq_p_uv4si */

        default:
          return -1;
        }

    case 659:
      switch (pattern60 (x1))
        {
        case 0:
          if (!
#line 3153 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3821; /* mve_vmladavaq_sv16qi */

        case 1:
          if (!
#line 3153 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3823; /* mve_vmladavaq_sv8hi */

        case 2:
          if (!
#line 3153 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3825; /* mve_vmladavaq_sv4si */

        default:
          return -1;
        }

    case 660:
      switch (pattern60 (x1))
        {
        case 0:
          if (!
#line 3153 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3822; /* mve_vmladavaq_uv16qi */

        case 1:
          if (!
#line 3153 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3824; /* mve_vmladavaq_uv8hi */

        case 2:
          if (!
#line 3153 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3826; /* mve_vmladavaq_uv4si */

        default:
          return -1;
        }

    case 661:
      switch (pattern68 (x1))
        {
        case 0:
          if (!
#line 3169 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3827; /* mve_vmladavq_p_sv16qi */

        case 1:
          if (!
#line 3169 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3829; /* mve_vmladavq_p_sv8hi */

        case 2:
          if (!
#line 3169 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3831; /* mve_vmladavq_p_sv4si */

        default:
          return -1;
        }

    case 662:
      switch (pattern68 (x1))
        {
        case 0:
          if (!
#line 3169 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3828; /* mve_vmladavq_p_uv16qi */

        case 1:
          if (!
#line 3169 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3830; /* mve_vmladavq_p_uv8hi */

        case 2:
          if (!
#line 3169 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3832; /* mve_vmladavq_p_uv4si */

        default:
          return -1;
        }

    case 663:
      switch (pattern68 (x1))
        {
        case 0:
          if (!
#line 3185 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3833; /* mve_vmladavxq_p_sv16qi */

        case 1:
          if (!
#line 3185 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3834; /* mve_vmladavxq_p_sv8hi */

        case 2:
          if (!
#line 3185 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3835; /* mve_vmladavxq_p_sv4si */

        default:
          return -1;
        }

    case 664:
      switch (pattern70 (x1))
        {
        case 0:
          if (!
#line 3201 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3836; /* mve_vmlaq_n_sv16qi */

        case 1:
          if (!
#line 3201 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3838; /* mve_vmlaq_n_sv8hi */

        case 2:
          if (!
#line 3201 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3840; /* mve_vmlaq_n_sv4si */

        default:
          return -1;
        }

    case 665:
      switch (pattern70 (x1))
        {
        case 0:
          if (!
#line 3201 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3837; /* mve_vmlaq_n_uv16qi */

        case 1:
          if (!
#line 3201 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3839; /* mve_vmlaq_n_uv8hi */

        case 2:
          if (!
#line 3201 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3841; /* mve_vmlaq_n_uv4si */

        default:
          return -1;
        }

    case 666:
      switch (pattern70 (x1))
        {
        case 0:
          if (!
#line 3217 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3842; /* mve_vmlasq_n_sv16qi */

        case 1:
          if (!
#line 3217 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3844; /* mve_vmlasq_n_sv8hi */

        case 2:
          if (!
#line 3217 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3846; /* mve_vmlasq_n_sv4si */

        default:
          return -1;
        }

    case 667:
      switch (pattern70 (x1))
        {
        case 0:
          if (!
#line 3217 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3843; /* mve_vmlasq_n_uv16qi */

        case 1:
          if (!
#line 3217 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3845; /* mve_vmlasq_n_uv8hi */

        case 2:
          if (!
#line 3217 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3847; /* mve_vmlasq_n_uv4si */

        default:
          return -1;
        }

    case 668:
      switch (pattern68 (x1))
        {
        case 0:
          if (!
#line 3233 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3848; /* mve_vmlsdavq_p_sv16qi */

        case 1:
          if (!
#line 3233 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3849; /* mve_vmlsdavq_p_sv8hi */

        case 2:
          if (!
#line 3233 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3850; /* mve_vmlsdavq_p_sv4si */

        default:
          return -1;
        }

    case 669:
      switch (pattern68 (x1))
        {
        case 0:
          if (!
#line 3249 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3851; /* mve_vmlsdavxq_p_sv16qi */

        case 1:
          if (!
#line 3249 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3852; /* mve_vmlsdavxq_p_sv8hi */

        case 2:
          if (!
#line 3249 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3853; /* mve_vmlsdavxq_p_sv4si */

        default:
          return -1;
        }

    case 670:
      switch (pattern61 (x1))
        {
        case 0:
          if (!
#line 3265 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3854; /* mve_vmvnq_m_sv16qi */

        case 1:
          if (!
#line 3265 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3856; /* mve_vmvnq_m_sv8hi */

        case 2:
          if (!
#line 3265 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3858; /* mve_vmvnq_m_sv4si */

        default:
          return -1;
        }

    case 671:
      switch (pattern61 (x1))
        {
        case 0:
          if (!
#line 3265 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3855; /* mve_vmvnq_m_uv16qi */

        case 1:
          if (!
#line 3265 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3857; /* mve_vmvnq_m_uv8hi */

        case 2:
          if (!
#line 3265 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3859; /* mve_vmvnq_m_uv4si */

        default:
          return -1;
        }

    case 672:
      switch (pattern61 (x1))
        {
        case 0:
          if (!
#line 3281 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3860; /* mve_vnegq_m_sv16qi */

        case 1:
          if (!
#line 3281 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3861; /* mve_vnegq_m_sv8hi */

        case 2:
          if (!
#line 3281 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3862; /* mve_vnegq_m_sv4si */

        default:
          return -1;
        }

    case 673:
      return recog_88 (x1, insn, pnum_clobbers);

    case 674:
      return recog_87 (x1, insn, pnum_clobbers);

    case 675:
      switch (pattern61 (x1))
        {
        case 0:
          if (!
#line 3313 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3871; /* mve_vqabsq_m_sv16qi */

        case 1:
          if (!
#line 3313 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3872; /* mve_vqabsq_m_sv8hi */

        case 2:
          if (!
#line 3313 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3873; /* mve_vqabsq_m_sv4si */

        default:
          return -1;
        }

    case 676:
      switch (pattern70 (x1))
        {
        case 0:
          if (!
#line 3329 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3874; /* mve_vqdmlahq_n_sv16qi */

        case 1:
          if (!
#line 3329 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3875; /* mve_vqdmlahq_n_sv8hi */

        case 2:
          if (!
#line 3329 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3876; /* mve_vqdmlahq_n_sv4si */

        default:
          return -1;
        }

    case 677:
      switch (pattern70 (x1))
        {
        case 0:
          if (!
#line 3345 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3877; /* mve_vqdmlashq_n_sv16qi */

        case 1:
          if (!
#line 3345 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3878; /* mve_vqdmlashq_n_sv8hi */

        case 2:
          if (!
#line 3345 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3879; /* mve_vqdmlashq_n_sv4si */

        default:
          return -1;
        }

    case 678:
      switch (pattern61 (x1))
        {
        case 0:
          if (!
#line 3361 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3880; /* mve_vqnegq_m_sv16qi */

        case 1:
          if (!
#line 3361 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3881; /* mve_vqnegq_m_sv8hi */

        case 2:
          if (!
#line 3361 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3882; /* mve_vqnegq_m_sv4si */

        default:
          return -1;
        }

    case 679:
      switch (pattern72 (x1))
        {
        case 0:
          if (!
#line 3377 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3883; /* mve_vqrdmladhq_sv16qi */

        case 1:
          if (!
#line 3377 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3884; /* mve_vqrdmladhq_sv8hi */

        case 2:
          if (!
#line 3377 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3885; /* mve_vqrdmladhq_sv4si */

        default:
          return -1;
        }

    case 680:
      switch (pattern72 (x1))
        {
        case 0:
          if (!
#line 3393 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3886; /* mve_vqrdmladhxq_sv16qi */

        case 1:
          if (!
#line 3393 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3887; /* mve_vqrdmladhxq_sv8hi */

        case 2:
          if (!
#line 3393 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3888; /* mve_vqrdmladhxq_sv4si */

        default:
          return -1;
        }

    case 681:
      switch (pattern70 (x1))
        {
        case 0:
          if (!
#line 3409 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3889; /* mve_vqrdmlahq_n_sv16qi */

        case 1:
          if (!
#line 3409 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3890; /* mve_vqrdmlahq_n_sv8hi */

        case 2:
          if (!
#line 3409 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3891; /* mve_vqrdmlahq_n_sv4si */

        default:
          return -1;
        }

    case 682:
      switch (pattern70 (x1))
        {
        case 0:
          if (!
#line 3425 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3892; /* mve_vqrdmlashq_n_sv16qi */

        case 1:
          if (!
#line 3425 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3893; /* mve_vqrdmlashq_n_sv8hi */

        case 2:
          if (!
#line 3425 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3894; /* mve_vqrdmlashq_n_sv4si */

        default:
          return -1;
        }

    case 683:
      switch (pattern72 (x1))
        {
        case 0:
          if (!
#line 3441 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3895; /* mve_vqrdmlsdhq_sv16qi */

        case 1:
          if (!
#line 3441 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3896; /* mve_vqrdmlsdhq_sv8hi */

        case 2:
          if (!
#line 3441 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3897; /* mve_vqrdmlsdhq_sv4si */

        default:
          return -1;
        }

    case 684:
      switch (pattern72 (x1))
        {
        case 0:
          if (!
#line 3457 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3898; /* mve_vqrdmlsdhxq_sv16qi */

        case 1:
          if (!
#line 3457 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3899; /* mve_vqrdmlsdhxq_sv8hi */

        case 2:
          if (!
#line 3457 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3900; /* mve_vqrdmlsdhxq_sv4si */

        default:
          return -1;
        }

    case 685:
      switch (pattern73 (x1))
        {
        case 0:
          if (!
#line 3473 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3901; /* mve_vqrshlq_m_n_sv16qi */

        case 1:
          if (!
#line 3473 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3903; /* mve_vqrshlq_m_n_sv8hi */

        case 2:
          if (!
#line 3473 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3905; /* mve_vqrshlq_m_n_sv4si */

        default:
          return -1;
        }

    case 686:
      switch (pattern73 (x1))
        {
        case 0:
          if (!
#line 3473 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3902; /* mve_vqrshlq_m_n_uv16qi */

        case 1:
          if (!
#line 3473 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3904; /* mve_vqrshlq_m_n_uv8hi */

        case 2:
          if (!
#line 3473 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3906; /* mve_vqrshlq_m_n_uv4si */

        default:
          return -1;
        }

    case 687:
      switch (pattern73 (x1))
        {
        case 0:
          if (!
#line 3489 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3907; /* mve_vqshlq_m_r_sv16qi */

        case 1:
          if (!
#line 3489 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3909; /* mve_vqshlq_m_r_sv8hi */

        case 2:
          if (!
#line 3489 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3911; /* mve_vqshlq_m_r_sv4si */

        default:
          return -1;
        }

    case 688:
      switch (pattern73 (x1))
        {
        case 0:
          if (!
#line 3489 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3908; /* mve_vqshlq_m_r_uv16qi */

        case 1:
          if (!
#line 3489 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3910; /* mve_vqshlq_m_r_uv8hi */

        case 2:
          if (!
#line 3489 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3912; /* mve_vqshlq_m_r_uv4si */

        default:
          return -1;
        }

    case 689:
      switch (pattern61 (x1))
        {
        case 0:
          if (!
#line 3505 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3913; /* mve_vrev64q_m_sv16qi */

        case 1:
          if (!
#line 3505 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3915; /* mve_vrev64q_m_sv8hi */

        case 2:
          if (!
#line 3505 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3917; /* mve_vrev64q_m_sv4si */

        default:
          return -1;
        }

    case 690:
      switch (pattern61 (x1))
        {
        case 0:
          if (!
#line 3505 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3914; /* mve_vrev64q_m_uv16qi */

        case 1:
          if (!
#line 3505 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3916; /* mve_vrev64q_m_uv8hi */

        case 2:
          if (!
#line 3505 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3918; /* mve_vrev64q_m_uv4si */

        default:
          return -1;
        }

    case 691:
      switch (pattern73 (x1))
        {
        case 0:
          if (!
#line 3521 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3919; /* mve_vrshlq_m_n_sv16qi */

        case 1:
          if (!
#line 3521 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3921; /* mve_vrshlq_m_n_sv8hi */

        case 2:
          if (!
#line 3521 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3923; /* mve_vrshlq_m_n_sv4si */

        default:
          return -1;
        }

    case 692:
      switch (pattern73 (x1))
        {
        case 0:
          if (!
#line 3521 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3920; /* mve_vrshlq_m_n_uv16qi */

        case 1:
          if (!
#line 3521 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3922; /* mve_vrshlq_m_n_uv8hi */

        case 2:
          if (!
#line 3521 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3924; /* mve_vrshlq_m_n_uv4si */

        default:
          return -1;
        }

    case 693:
      switch (pattern73 (x1))
        {
        case 0:
          if (!
#line 3537 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3925; /* mve_vshlq_m_r_sv16qi */

        case 1:
          if (!
#line 3537 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3927; /* mve_vshlq_m_r_sv8hi */

        case 2:
          if (!
#line 3537 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3929; /* mve_vshlq_m_r_sv4si */

        default:
          return -1;
        }

    case 694:
      switch (pattern73 (x1))
        {
        case 0:
          if (!
#line 3537 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3926; /* mve_vshlq_m_r_uv16qi */

        case 1:
          if (!
#line 3537 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3928; /* mve_vshlq_m_r_uv8hi */

        case 2:
          if (!
#line 3537 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3930; /* mve_vshlq_m_r_uv4si */

        default:
          return -1;
        }

    case 695:
      switch (pattern74 (x1))
        {
        case 0:
          if (!
#line 3553 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3931; /* mve_vsliq_n_sv16qi */

        case 1:
          if (!
#line 3553 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3933; /* mve_vsliq_n_sv8hi */

        case 2:
          if (!
#line 3553 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3935; /* mve_vsliq_n_sv4si */

        default:
          return -1;
        }

    case 696:
      switch (pattern74 (x1))
        {
        case 0:
          if (!
#line 3553 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3932; /* mve_vsliq_n_uv16qi */

        case 1:
          if (!
#line 3553 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3934; /* mve_vsliq_n_uv8hi */

        case 2:
          if (!
#line 3553 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3936; /* mve_vsliq_n_uv4si */

        default:
          return -1;
        }

    case 697:
      switch (pattern75 (x1))
        {
        case 0:
          if (!
#line 3569 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3937; /* mve_vsriq_n_sv16qi */

        case 1:
          if (!
#line 3569 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3939; /* mve_vsriq_n_sv8hi */

        case 2:
          if (!
#line 3569 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3941; /* mve_vsriq_n_sv4si */

        default:
          return -1;
        }

    case 698:
      switch (pattern75 (x1))
        {
        case 0:
          if (!
#line 3569 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3938; /* mve_vsriq_n_uv16qi */

        case 1:
          if (!
#line 3569 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3940; /* mve_vsriq_n_uv8hi */

        case 2:
          if (!
#line 3569 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3942; /* mve_vsriq_n_uv4si */

        default:
          return -1;
        }

    case 699:
      switch (pattern72 (x1))
        {
        case 0:
          if (!
#line 3585 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3943; /* mve_vqdmlsdhxq_sv16qi */

        case 1:
          if (!
#line 3585 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3944; /* mve_vqdmlsdhxq_sv8hi */

        case 2:
          if (!
#line 3585 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3945; /* mve_vqdmlsdhxq_sv4si */

        default:
          return -1;
        }

    case 700:
      switch (pattern72 (x1))
        {
        case 0:
          if (!
#line 3601 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3946; /* mve_vqdmlsdhq_sv16qi */

        case 1:
          if (!
#line 3601 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3947; /* mve_vqdmlsdhq_sv8hi */

        case 2:
          if (!
#line 3601 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3948; /* mve_vqdmlsdhq_sv4si */

        default:
          return -1;
        }

    case 701:
      switch (pattern72 (x1))
        {
        case 0:
          if (!
#line 3617 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3949; /* mve_vqdmladhxq_sv16qi */

        case 1:
          if (!
#line 3617 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3950; /* mve_vqdmladhxq_sv8hi */

        case 2:
          if (!
#line 3617 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3951; /* mve_vqdmladhxq_sv4si */

        default:
          return -1;
        }

    case 702:
      switch (pattern72 (x1))
        {
        case 0:
          if (!
#line 3633 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3952; /* mve_vqdmladhq_sv16qi */

        case 1:
          if (!
#line 3633 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3953; /* mve_vqdmladhq_sv8hi */

        case 2:
          if (!
#line 3633 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3954; /* mve_vqdmladhq_sv4si */

        default:
          return -1;
        }

    case 703:
      switch (pattern60 (x1))
        {
        case 0:
          if (!
#line 3649 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3955; /* mve_vmlsdavaxq_sv16qi */

        case 1:
          if (!
#line 3649 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3956; /* mve_vmlsdavaxq_sv8hi */

        case 2:
          if (!
#line 3649 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3957; /* mve_vmlsdavaxq_sv4si */

        default:
          return -1;
        }

    case 704:
      switch (pattern60 (x1))
        {
        case 0:
          if (!
#line 3665 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3958; /* mve_vmlsdavaq_sv16qi */

        case 1:
          if (!
#line 3665 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3959; /* mve_vmlsdavaq_sv8hi */

        case 2:
          if (!
#line 3665 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3960; /* mve_vmlsdavaq_sv4si */

        default:
          return -1;
        }

    case 705:
      switch (pattern60 (x1))
        {
        case 0:
          if (!
#line 3681 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3961; /* mve_vmladavaxq_sv16qi */

        case 1:
          if (!
#line 3681 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3962; /* mve_vmladavaxq_sv8hi */

        case 2:
          if (!
#line 3681 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3963; /* mve_vmladavaxq_sv4si */

        default:
          return -1;
        }

    case 722:
      switch (pattern50 (x1))
        {
        case 0:
          if (!
#line 3696 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3964; /* mve_vabsq_m_fv8hf */

        case 1:
          if (!
#line 3696 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3965; /* mve_vabsq_m_fv4sf */

        default:
          return -1;
        }

    case 813:
      if (pattern76 (x1, E_V4SImode, E_DImode, E_V4BImode) != 0
          || !
#line 3712 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3966; /* mve_vaddlvaq_p_uv4si */

    case 733:
      if (pattern76 (x1, E_V4SImode, E_DImode, E_V4BImode) != 0
          || !
#line 3712 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3967; /* mve_vaddlvaq_p_sv4si */

    case 753:
      switch (pattern77 (x1))
        {
        case 0:
          if (!
#line 3746 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3976; /* mve_vcmpeqq_m_n_fv8hf */

        case 1:
          if (!
#line 3746 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3977; /* mve_vcmpeqq_m_n_fv4sf */

        default:
          return -1;
        }

    case 706:
      switch (pattern54 (x1))
        {
        case 0:
          if (!
#line 3762 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3978; /* mve_vcmpgeq_m_fv8hf */

        case 1:
          if (!
#line 3762 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3979; /* mve_vcmpgeq_m_fv4sf */

        default:
          return -1;
        }

    case 747:
      switch (pattern77 (x1))
        {
        case 0:
          if (!
#line 3778 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3980; /* mve_vcmpgeq_m_n_fv8hf */

        case 1:
          if (!
#line 3778 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3981; /* mve_vcmpgeq_m_n_fv4sf */

        default:
          return -1;
        }

    case 718:
      switch (pattern54 (x1))
        {
        case 0:
          if (!
#line 3794 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3982; /* mve_vcmpgtq_m_fv8hf */

        case 1:
          if (!
#line 3794 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3983; /* mve_vcmpgtq_m_fv4sf */

        default:
          return -1;
        }

    case 707:
      switch (pattern77 (x1))
        {
        case 0:
          if (!
#line 3810 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3984; /* mve_vcmpgtq_m_n_fv8hf */

        case 1:
          if (!
#line 3810 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3985; /* mve_vcmpgtq_m_n_fv4sf */

        default:
          return -1;
        }

    case 735:
      switch (pattern54 (x1))
        {
        case 0:
          if (!
#line 3826 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3986; /* mve_vcmpleq_m_fv8hf */

        case 1:
          if (!
#line 3826 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3987; /* mve_vcmpleq_m_fv4sf */

        default:
          return -1;
        }

    case 746:
      switch (pattern77 (x1))
        {
        case 0:
          if (!
#line 3842 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3988; /* mve_vcmpleq_m_n_fv8hf */

        case 1:
          if (!
#line 3842 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3989; /* mve_vcmpleq_m_n_fv4sf */

        default:
          return -1;
        }

    case 719:
      switch (pattern54 (x1))
        {
        case 0:
          if (!
#line 3858 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3990; /* mve_vcmpltq_m_fv8hf */

        case 1:
          if (!
#line 3858 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3991; /* mve_vcmpltq_m_fv4sf */

        default:
          return -1;
        }

    case 729:
      switch (pattern77 (x1))
        {
        case 0:
          if (!
#line 3874 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3992; /* mve_vcmpltq_m_n_fv8hf */

        case 1:
          if (!
#line 3874 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3993; /* mve_vcmpltq_m_n_fv4sf */

        default:
          return -1;
        }

    case 730:
      switch (pattern54 (x1))
        {
        case 0:
          if (!
#line 3890 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3994; /* mve_vcmpneq_m_fv8hf */

        case 1:
          if (!
#line 3890 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3995; /* mve_vcmpneq_m_fv4sf */

        default:
          return -1;
        }

    case 750:
      switch (pattern77 (x1))
        {
        case 0:
          if (!
#line 3906 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3996; /* mve_vcmpneq_m_n_fv8hf */

        case 1:
          if (!
#line 3906 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3997; /* mve_vcmpneq_m_n_fv4sf */

        default:
          return -1;
        }

    case 796:
      if (pattern76 (x1, E_V4SFmode, E_V8HFmode, E_V8BImode) != 0
          || !
#line 3922 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3998; /* mve_vcvtbq_m_f16_f32v8hf */

    case 797:
      if (pattern76 (x1, E_V8HFmode, E_V4SFmode, E_V8BImode) != 0
          || !
#line 3938 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3999; /* mve_vcvtbq_m_f32_f16v4sf */

    case 798:
      if (pattern76 (x1, E_V4SFmode, E_V8HFmode, E_V8BImode) != 0
          || !
#line 3954 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4000; /* mve_vcvttq_m_f16_f32v8hf */

    case 799:
      if (pattern76 (x1, E_V8HFmode, E_V4SFmode, E_V8BImode) != 0
          || !
#line 3970 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4001; /* mve_vcvttq_m_f32_f16v4sf */

    case 717:
      switch (pattern57 (x1, E_HFmode, E_SFmode))
        {
        case 0:
          if (!
#line 3986 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4002; /* mve_vdupq_m_n_fv8hf */

        case 1:
          if (!
#line 3986 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4003; /* mve_vdupq_m_n_fv4sf */

        default:
          return -1;
        }

    case 711:
      switch (pattern78 (x1))
        {
        case 0:
          if (!
#line 4002 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4004; /* mve_vfmaq_fv8hf */

        case 1:
          if (!
#line 4002 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4005; /* mve_vfmaq_fv4sf */

        default:
          return -1;
        }

    case 724:
      switch (pattern79 (x1))
        {
        case 0:
          if (!
#line 4018 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4006; /* mve_vfmaq_n_fv8hf */

        case 1:
          if (!
#line 4018 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4007; /* mve_vfmaq_n_fv4sf */

        default:
          return -1;
        }

    case 716:
      switch (pattern79 (x1))
        {
        case 0:
          if (!
#line 4034 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4008; /* mve_vfmasq_n_fv8hf */

        case 1:
          if (!
#line 4034 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4009; /* mve_vfmasq_n_fv4sf */

        default:
          return -1;
        }

    case 738:
      switch (pattern78 (x1))
        {
        case 0:
          if (!
#line 4049 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4010; /* mve_vfmsq_fv8hf */

        case 1:
          if (!
#line 4049 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4011; /* mve_vfmsq_fv4sf */

        default:
          return -1;
        }

    case 754:
      switch (pattern50 (x1))
        {
        case 0:
          if (!
#line 4065 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4012; /* mve_vmaxnmaq_m_fv8hf */

        case 1:
          if (!
#line 4065 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4013; /* mve_vmaxnmaq_m_fv4sf */

        default:
          return -1;
        }

    case 723:
      switch (pattern80 (x1))
        {
        case 0:
          if (!
#line 4080 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4014; /* mve_vmaxnmavq_p_fv8hf */

        case 1:
          if (!
#line 4080 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4015; /* mve_vmaxnmavq_p_fv4sf */

        default:
          return -1;
        }

    case 740:
      switch (pattern80 (x1))
        {
        case 0:
          if (!
#line 4096 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4016; /* mve_vmaxnmvq_p_fv8hf */

        case 1:
          if (!
#line 4096 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4017; /* mve_vmaxnmvq_p_fv4sf */

        default:
          return -1;
        }

    case 715:
      switch (pattern50 (x1))
        {
        case 0:
          if (!
#line 4111 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4018; /* mve_vminnmaq_m_fv8hf */

        case 1:
          if (!
#line 4111 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4019; /* mve_vminnmaq_m_fv4sf */

        default:
          return -1;
        }

    case 749:
      switch (pattern80 (x1))
        {
        case 0:
          if (!
#line 4127 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4020; /* mve_vminnmavq_p_fv8hf */

        case 1:
          if (!
#line 4127 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4021; /* mve_vminnmavq_p_fv4sf */

        default:
          return -1;
        }

    case 739:
      switch (pattern80 (x1))
        {
        case 0:
          if (!
#line 4142 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4022; /* mve_vminnmvq_p_fv8hf */

        case 1:
          if (!
#line 4142 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4023; /* mve_vminnmvq_p_fv4sf */

        default:
          return -1;
        }

    case 776:
      switch (pattern81 (x1))
        {
        case 0:
          if (!
#line 4158 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4024; /* mve_vmlaldavaq_sv8hi */

        case 1:
          if (!
#line 4158 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4026; /* mve_vmlaldavaq_sv4si */

        default:
          return -1;
        }

    case 777:
      switch (pattern81 (x1))
        {
        case 0:
          if (!
#line 4158 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4025; /* mve_vmlaldavaq_uv8hi */

        case 1:
          if (!
#line 4158 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4027; /* mve_vmlaldavaq_uv4si */

        default:
          return -1;
        }

    case 792:
      switch (pattern81 (x1))
        {
        case 0:
          if (!
#line 4174 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4028; /* mve_vmlaldavaxq_sv8hi */

        case 1:
          if (!
#line 4174 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4029; /* mve_vmlaldavaxq_sv4si */

        default:
          return -1;
        }

    case 756:
      switch (pattern82 (x1))
        {
        case 0:
          if (!
#line 4190 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4030; /* mve_vmlaldavq_p_uv8hi */

        case 1:
          if (!
#line 4190 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4032; /* mve_vmlaldavq_p_uv4si */

        default:
          return -1;
        }

    case 757:
      switch (pattern82 (x1))
        {
        case 0:
          if (!
#line 4190 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4031; /* mve_vmlaldavq_p_sv8hi */

        case 1:
          if (!
#line 4190 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4033; /* mve_vmlaldavq_p_sv4si */

        default:
          return -1;
        }

    case 785:
      switch (pattern82 (x1))
        {
        case 0:
          if (!
#line 4206 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4034; /* mve_vmlaldavxq_p_sv8hi */

        case 1:
          if (!
#line 4206 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4035; /* mve_vmlaldavxq_p_sv4si */

        default:
          return -1;
        }

    case 712:
      switch (pattern81 (x1))
        {
        case 0:
          if (!
#line 4221 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4036; /* mve_vmlsldavaq_sv8hi */

        case 1:
          if (!
#line 4221 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4037; /* mve_vmlsldavaq_sv4si */

        default:
          return -1;
        }

    case 736:
      switch (pattern81 (x1))
        {
        case 0:
          if (!
#line 4237 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4038; /* mve_vmlsldavaxq_sv8hi */

        case 1:
          if (!
#line 4237 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4039; /* mve_vmlsldavaxq_sv4si */

        default:
          return -1;
        }

    case 708:
      switch (pattern82 (x1))
        {
        case 0:
          if (!
#line 4253 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4040; /* mve_vmlsldavq_p_sv8hi */

        case 1:
          if (!
#line 4253 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4041; /* mve_vmlsldavq_p_sv4si */

        default:
          return -1;
        }

    case 710:
      switch (pattern82 (x1))
        {
        case 0:
          if (!
#line 4269 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4042; /* mve_vmlsldavxq_p_sv8hi */

        case 1:
          if (!
#line 4269 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4043; /* mve_vmlsldavxq_p_sv4si */

        default:
          return -1;
        }

    case 774:
      switch (pattern56 (x1, E_V16BImode, E_V16QImode, E_V8BImode, E_V8HImode))
        {
        case 0:
          if (!
#line 4284 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4044; /* mve_vmovlbq_m_uv16qi */

        case 1:
          if (!
#line 4284 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4046; /* mve_vmovlbq_m_uv8hi */

        default:
          return -1;
        }

    case 775:
      switch (pattern56 (x1, E_V16BImode, E_V16QImode, E_V8BImode, E_V8HImode))
        {
        case 0:
          if (!
#line 4284 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4045; /* mve_vmovlbq_m_sv16qi */

        case 1:
          if (!
#line 4284 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4047; /* mve_vmovlbq_m_sv8hi */

        default:
          return -1;
        }

    case 760:
      switch (pattern56 (x1, E_V16BImode, E_V16QImode, E_V8BImode, E_V8HImode))
        {
        case 0:
          if (!
#line 4299 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4048; /* mve_vmovltq_m_uv16qi */

        case 1:
          if (!
#line 4299 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4050; /* mve_vmovltq_m_uv8hi */

        default:
          return -1;
        }

    case 761:
      switch (pattern56 (x1, E_V16BImode, E_V16QImode, E_V8BImode, E_V8HImode))
        {
        case 0:
          if (!
#line 4299 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4049; /* mve_vmovltq_m_sv16qi */

        case 1:
          if (!
#line 4299 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4051; /* mve_vmovltq_m_sv8hi */

        default:
          return -1;
        }

    case 762:
      switch (pattern83 (x1))
        {
        case 0:
          if (!
#line 4314 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4052; /* mve_vmovnbq_m_uv8hi */

        case 1:
          if (!
#line 4314 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4054; /* mve_vmovnbq_m_uv4si */

        default:
          return -1;
        }

    case 763:
      switch (pattern83 (x1))
        {
        case 0:
          if (!
#line 4314 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4053; /* mve_vmovnbq_m_sv8hi */

        case 1:
          if (!
#line 4314 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4055; /* mve_vmovnbq_m_sv4si */

        default:
          return -1;
        }

    case 772:
      switch (pattern83 (x1))
        {
        case 0:
          if (!
#line 4330 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4056; /* mve_vmovntq_m_uv8hi */

        case 1:
          if (!
#line 4330 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4058; /* mve_vmovntq_m_uv4si */

        default:
          return -1;
        }

    case 773:
      switch (pattern83 (x1))
        {
        case 0:
          if (!
#line 4330 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4057; /* mve_vmovntq_m_sv8hi */

        case 1:
          if (!
#line 4330 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4059; /* mve_vmovntq_m_sv4si */

        default:
          return -1;
        }

    case 788:
      switch (pattern52 (x1))
        {
        case 0:
          if (!
#line 4346 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4060; /* mve_vmvnq_m_n_uv8hi */

        case 1:
          if (!
#line 4346 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4062; /* mve_vmvnq_m_n_uv4si */

        default:
          return -1;
        }

    case 789:
      switch (pattern52 (x1))
        {
        case 0:
          if (!
#line 4346 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4061; /* mve_vmvnq_m_n_sv8hi */

        case 1:
          if (!
#line 4346 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4063; /* mve_vmvnq_m_n_sv4si */

        default:
          return -1;
        }

    case 744:
      switch (pattern50 (x1))
        {
        case 0:
          if (!
#line 4361 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4064; /* mve_vnegq_m_fv8hf */

        case 1:
          if (!
#line 4361 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4065; /* mve_vnegq_m_fv4sf */

        default:
          return -1;
        }

    case 766:
      switch (pattern52 (x1))
        {
        case 0:
          if (!
#line 4377 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4066; /* mve_vorrq_m_n_sv8hi */

        case 1:
          if (!
#line 4377 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4068; /* mve_vorrq_m_n_sv4si */

        default:
          return -1;
        }

    case 767:
      switch (pattern52 (x1))
        {
        case 0:
          if (!
#line 4377 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4067; /* mve_vorrq_m_n_uv8hi */

        case 1:
          if (!
#line 4377 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4069; /* mve_vorrq_m_n_uv4si */

        default:
          return -1;
        }

    case 741:
      switch (pattern50 (x1))
        {
        case 0:
          if (!
#line 4392 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4070; /* mve_vpselq_fv8hf */

        case 1:
          if (!
#line 4392 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4071; /* mve_vpselq_fv4sf */

        default:
          return -1;
        }

    case 758:
      switch (pattern83 (x1))
        {
        case 0:
          if (!
#line 4408 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4072; /* mve_vqmovnbq_m_sv8hi */

        case 1:
          if (!
#line 4408 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4074; /* mve_vqmovnbq_m_sv4si */

        default:
          return -1;
        }

    case 759:
      switch (pattern83 (x1))
        {
        case 0:
          if (!
#line 4408 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4073; /* mve_vqmovnbq_m_uv8hi */

        case 1:
          if (!
#line 4408 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4075; /* mve_vqmovnbq_m_uv4si */

        default:
          return -1;
        }

    case 786:
      switch (pattern83 (x1))
        {
        case 0:
          if (!
#line 4424 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4076; /* mve_vqmovntq_m_uv8hi */

        case 1:
          if (!
#line 4424 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4078; /* mve_vqmovntq_m_uv4si */

        default:
          return -1;
        }

    case 787:
      switch (pattern83 (x1))
        {
        case 0:
          if (!
#line 4424 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4077; /* mve_vqmovntq_m_sv8hi */

        case 1:
          if (!
#line 4424 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4079; /* mve_vqmovntq_m_sv4si */

        default:
          return -1;
        }

    case 734:
      switch (pattern83 (x1))
        {
        case 0:
          if (!
#line 4440 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4080; /* mve_vqmovunbq_m_sv8hi */

        case 1:
          if (!
#line 4440 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4081; /* mve_vqmovunbq_m_sv4si */

        default:
          return -1;
        }

    case 742:
      switch (pattern83 (x1))
        {
        case 0:
          if (!
#line 4456 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4082; /* mve_vqmovuntq_m_sv8hi */

        case 1:
          if (!
#line 4456 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4083; /* mve_vqmovuntq_m_sv4si */

        default:
          return -1;
        }

    case 770:
      switch (pattern58 (x1))
        {
        case 0:
          if (!
#line 4472 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4084; /* mve_vqrshrntq_n_uv8hi */

        case 1:
          if (!
#line 4472 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4086; /* mve_vqrshrntq_n_uv4si */

        default:
          return -1;
        }

    case 771:
      switch (pattern58 (x1))
        {
        case 0:
          if (!
#line 4472 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4085; /* mve_vqrshrntq_n_sv8hi */

        case 1:
          if (!
#line 4472 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4087; /* mve_vqrshrntq_n_sv4si */

        default:
          return -1;
        }

    case 714:
      switch (pattern58 (x1))
        {
        case 0:
          if (!
#line 4488 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4088; /* mve_vqrshruntq_n_sv8hi */

        case 1:
          if (!
#line 4488 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4089; /* mve_vqrshruntq_n_sv4si */

        default:
          return -1;
        }

    case 778:
      switch (pattern84 (x1))
        {
        case 0:
          if (!
#line 4504 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4090; /* mve_vqshrnbq_n_uv8hi */

        case 1:
          if (!
#line 4504 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4092; /* mve_vqshrnbq_n_uv4si */

        default:
          return -1;
        }

    case 779:
      switch (pattern84 (x1))
        {
        case 0:
          if (!
#line 4504 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4091; /* mve_vqshrnbq_n_sv8hi */

        case 1:
          if (!
#line 4504 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4093; /* mve_vqshrnbq_n_sv4si */

        default:
          return -1;
        }

    case 790:
      switch (pattern84 (x1))
        {
        case 0:
          if (!
#line 4520 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4094; /* mve_vqshrntq_n_uv8hi */

        case 1:
          if (!
#line 4520 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4096; /* mve_vqshrntq_n_uv4si */

        default:
          return -1;
        }

    case 791:
      switch (pattern84 (x1))
        {
        case 0:
          if (!
#line 4520 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4095; /* mve_vqshrntq_n_sv8hi */

        case 1:
          if (!
#line 4520 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4097; /* mve_vqshrntq_n_sv4si */

        default:
          return -1;
        }

    case 713:
      switch (pattern84 (x1))
        {
        case 0:
          if (!
#line 4536 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4098; /* mve_vqshrunbq_n_sv8hi */

        case 1:
          if (!
#line 4536 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4099; /* mve_vqshrunbq_n_sv4si */

        default:
          return -1;
        }

    case 721:
      switch (pattern84 (x1))
        {
        case 0:
          if (!
#line 4552 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4100; /* mve_vqshruntq_n_sv8hi */

        case 1:
          if (!
#line 4552 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4101; /* mve_vqshruntq_n_sv4si */

        default:
          return -1;
        }

    case 726:
      if (pattern85 (x1, E_V8BImode, E_V8HFmode) != 0
          || !
#line 4568 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4102; /* mve_vrev32q_m_fv8hf */

    case 768:
      switch (pattern86 (x1))
        {
        case 0:
          if (!
#line 4584 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4103; /* mve_vrev32q_m_sv16qi */

        case 1:
          if (!
#line 4584 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4105; /* mve_vrev32q_m_sv8hi */

        default:
          return -1;
        }

    case 769:
      switch (pattern86 (x1))
        {
        case 0:
          if (!
#line 4584 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4104; /* mve_vrev32q_m_uv16qi */

        case 1:
          if (!
#line 4584 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4106; /* mve_vrev32q_m_uv8hi */

        default:
          return -1;
        }

    case 743:
      switch (pattern50 (x1))
        {
        case 0:
          if (!
#line 4600 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4107; /* mve_vrev64q_m_fv8hf */

        case 1:
          if (!
#line 4600 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4108; /* mve_vrev64q_m_fv4sf */

        default:
          return -1;
        }

    case 709:
      if (pattern59 (x1) != 0
          || !
#line 4616 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4109; /* mve_vrmlaldavhaxq_sv4si */

    case 752:
      if (pattern87 (x1, E_V8BImode) != 0
          || !
#line 4632 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4110; /* mve_vrmlaldavhxq_p_sv4si */

    case 728:
      if (pattern59 (x1) != 0
          || !
#line 4648 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4111; /* mve_vrmlsldavhaxq_sv4si */

    case 720:
      if (pattern87 (x1, E_V8BImode) != 0
          || !
#line 4664 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4112; /* mve_vrmlsldavhq_p_sv4si */

    case 725:
      if (pattern87 (x1, E_V8BImode) != 0
          || !
#line 4680 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4113; /* mve_vrmlsldavhxq_p_sv4si */

    case 731:
      switch (pattern50 (x1))
        {
        case 0:
          if (!
#line 4696 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4114; /* mve_vrndaq_m_fv8hf */

        case 1:
          if (!
#line 4696 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4115; /* mve_vrndaq_m_fv4sf */

        default:
          return -1;
        }

    case 745:
      switch (pattern50 (x1))
        {
        case 0:
          if (!
#line 4712 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4116; /* mve_vrndmq_m_fv8hf */

        case 1:
          if (!
#line 4712 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4117; /* mve_vrndmq_m_fv4sf */

        default:
          return -1;
        }

    case 748:
      switch (pattern50 (x1))
        {
        case 0:
          if (!
#line 4728 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4118; /* mve_vrndnq_m_fv8hf */

        case 1:
          if (!
#line 4728 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4119; /* mve_vrndnq_m_fv4sf */

        default:
          return -1;
        }

    case 732:
      switch (pattern50 (x1))
        {
        case 0:
          if (!
#line 4744 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4120; /* mve_vrndpq_m_fv8hf */

        case 1:
          if (!
#line 4744 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4121; /* mve_vrndpq_m_fv4sf */

        default:
          return -1;
        }

    case 737:
      switch (pattern50 (x1))
        {
        case 0:
          if (!
#line 4760 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4122; /* mve_vrndxq_m_fv8hf */

        case 1:
          if (!
#line 4760 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4123; /* mve_vrndxq_m_fv4sf */

        default:
          return -1;
        }

    case 782:
      switch (pattern58 (x1))
        {
        case 0:
          if (!
#line 4776 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4124; /* mve_vrshrnbq_n_sv8hi */

        case 1:
          if (!
#line 4776 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4126; /* mve_vrshrnbq_n_sv4si */

        default:
          return -1;
        }

    case 783:
      switch (pattern58 (x1))
        {
        case 0:
          if (!
#line 4776 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4125; /* mve_vrshrnbq_n_uv8hi */

        case 1:
          if (!
#line 4776 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4127; /* mve_vrshrnbq_n_uv4si */

        default:
          return -1;
        }

    case 764:
      switch (pattern58 (x1))
        {
        case 0:
          if (!
#line 4792 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4128; /* mve_vrshrntq_n_uv8hi */

        case 1:
          if (!
#line 4792 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4130; /* mve_vrshrntq_n_uv4si */

        default:
          return -1;
        }

    case 765:
      switch (pattern58 (x1))
        {
        case 0:
          if (!
#line 4792 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4129; /* mve_vrshrntq_n_sv8hi */

        case 1:
          if (!
#line 4792 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4131; /* mve_vrshrntq_n_sv4si */

        default:
          return -1;
        }

    case 780:
      switch (pattern84 (x1))
        {
        case 0:
          if (!
#line 4808 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4132; /* mve_vshrnbq_n_uv8hi */

        case 1:
          if (!
#line 4808 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4134; /* mve_vshrnbq_n_uv4si */

        default:
          return -1;
        }

    case 781:
      switch (pattern84 (x1))
        {
        case 0:
          if (!
#line 4808 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4133; /* mve_vshrnbq_n_sv8hi */

        case 1:
          if (!
#line 4808 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4135; /* mve_vshrnbq_n_sv4si */

        default:
          return -1;
        }

    case 794:
      switch (pattern84 (x1))
        {
        case 0:
          if (!
#line 4824 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4136; /* mve_vshrntq_n_sv8hi */

        case 1:
          if (!
#line 4824 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4138; /* mve_vshrntq_n_sv4si */

        default:
          return -1;
        }

    case 795:
      switch (pattern84 (x1))
        {
        case 0:
          if (!
#line 4824 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4137; /* mve_vshrntq_n_uv8hi */

        case 1:
          if (!
#line 4824 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4139; /* mve_vshrntq_n_uv4si */

        default:
          return -1;
        }

    case 800:
      switch (pattern56 (x1, E_V8BImode, E_V8HFmode, E_V4BImode, E_V4SFmode))
        {
        case 0:
          if (!
#line 4840 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4140; /* mve_vcvtmq_m_sv8hi */

        case 1:
          if (!
#line 4840 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4142; /* mve_vcvtmq_m_sv4si */

        default:
          return -1;
        }

    case 801:
      switch (pattern56 (x1, E_V8BImode, E_V8HFmode, E_V4BImode, E_V4SFmode))
        {
        case 0:
          if (!
#line 4840 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4141; /* mve_vcvtmq_m_uv8hi */

        case 1:
          if (!
#line 4840 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4143; /* mve_vcvtmq_m_uv4si */

        default:
          return -1;
        }

    case 803:
      switch (pattern56 (x1, E_V8BImode, E_V8HFmode, E_V4BImode, E_V4SFmode))
        {
        case 0:
          if (!
#line 4856 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4144; /* mve_vcvtpq_m_sv8hi */

        case 1:
          if (!
#line 4856 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4146; /* mve_vcvtpq_m_sv4si */

        default:
          return -1;
        }

    case 804:
      switch (pattern56 (x1, E_V8BImode, E_V8HFmode, E_V4BImode, E_V4SFmode))
        {
        case 0:
          if (!
#line 4856 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4145; /* mve_vcvtpq_m_uv8hi */

        case 1:
          if (!
#line 4856 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4147; /* mve_vcvtpq_m_uv4si */

        default:
          return -1;
        }

    case 802:
      switch (pattern56 (x1, E_V8BImode, E_V8HFmode, E_V4BImode, E_V4SFmode))
        {
        case 0:
          if (!
#line 4872 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4148; /* mve_vcvtnq_m_sv8hi */

        case 1:
          if (!
#line 4872 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4150; /* mve_vcvtnq_m_sv4si */

        default:
          return -1;
        }

    case 806:
      switch (pattern56 (x1, E_V8BImode, E_V8HFmode, E_V4BImode, E_V4SFmode))
        {
        case 0:
          if (!
#line 4872 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4149; /* mve_vcvtnq_m_uv8hi */

        case 1:
          if (!
#line 4872 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4151; /* mve_vcvtnq_m_uv4si */

        default:
          return -1;
        }

    case 807:
      if (pattern85 (x1, E_V16BImode, E_V16QImode) != 0
          || !
#line 4905 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4156; /* mve_vrev16q_m_sv16qi */

    case 808:
      if (pattern85 (x1, E_V16BImode, E_V16QImode) != 0
          || !
#line 4905 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4157; /* mve_vrev16q_m_uv16qi */

    case 810:
      switch (pattern56 (x1, E_V8BImode, E_V8HFmode, E_V4BImode, E_V4SFmode))
        {
        case 0:
          if (!
#line 4921 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4158; /* mve_vcvtq_m_from_f_uv8hi */

        case 1:
          if (!
#line 4921 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4160; /* mve_vcvtq_m_from_f_uv4si */

        default:
          return -1;
        }

    case 811:
      switch (pattern56 (x1, E_V8BImode, E_V8HFmode, E_V4BImode, E_V4SFmode))
        {
        case 0:
          if (!
#line 4921 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4159; /* mve_vcvtq_m_from_f_sv8hi */

        case 1:
          if (!
#line 4921 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4161; /* mve_vcvtq_m_from_f_sv4si */

        default:
          return -1;
        }

    case 751:
      if (pattern87 (x1, E_V4BImode) != 0
          || !
#line 4937 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4162; /* mve_vrmlaldavhq_p_sv4si */

    case 812:
      if (pattern87 (x1, E_V4BImode) != 0
          || !
#line 4937 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4163; /* mve_vrmlaldavhq_p_uv4si */

    case 727:
      if (pattern59 (x1) != 0
          || !
#line 4953 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4164; /* mve_vrmlsldavhaq_sv4si */

    case 999:
      switch (pattern88 (x1))
        {
        case 0:
          if (!
#line 7120 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4638; /* mve_vstrbq_scatter_offset_sv16qi_insn */

        case 1:
          if (!
#line 7120 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4640; /* mve_vstrbq_scatter_offset_sv8hi_insn */

        case 2:
          if (!
#line 7120 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4642; /* mve_vstrbq_scatter_offset_sv4si_insn */

        default:
          return -1;
        }

    case 1000:
      switch (pattern88 (x1))
        {
        case 0:
          if (!
#line 7120 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4639; /* mve_vstrbq_scatter_offset_uv16qi_insn */

        case 1:
          if (!
#line 7120 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4641; /* mve_vstrbq_scatter_offset_uv8hi_insn */

        case 2:
          if (!
#line 7120 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4643; /* mve_vstrbq_scatter_offset_uv4si_insn */

        default:
          return -1;
        }

    case 997:
      if (pattern89 (x1, E_V4SImode) != 0
          || !
#line 7135 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4644; /* mve_vstrwq_scatter_base_sv4si */

    case 998:
      if (pattern89 (x1, E_V4SImode) != 0
          || !
#line 7135 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4645; /* mve_vstrwq_scatter_base_uv4si */

    case 1003:
      switch (pattern92 (x1))
        {
        case 0:
          if (!
#line 7296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4674; /* mve_vldrbq_gather_offset_z_sv16qi */

        case 1:
          if (!
#line 7296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4676; /* mve_vldrbq_gather_offset_z_sv8hi */

        case 2:
          if (!
#line 7296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4678; /* mve_vldrbq_gather_offset_z_sv4si */

        default:
          return -1;
        }

    case 1004:
      switch (pattern92 (x1))
        {
        case 0:
          if (!
#line 7296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4675; /* mve_vldrbq_gather_offset_z_uv16qi */

        case 1:
          if (!
#line 7296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4677; /* mve_vldrbq_gather_offset_z_uv8hi */

        case 2:
          if (!
#line 7296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4679; /* mve_vldrbq_gather_offset_z_uv4si */

        default:
          return -1;
        }

    case 1007:
      if (pattern93 (x1, E_V4SImode) != 0
          || !
#line 7344 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4686; /* mve_vldrwq_gather_base_z_sv4si */

    case 1008:
      if (pattern93 (x1, E_V4SImode) != 0
          || !
#line 7344 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4687; /* mve_vldrwq_gather_base_z_uv4si */

    case 1013:
      switch (pattern94 (x1))
        {
        case 0:
          if (!
#line 7407 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4693; /* mve_vldrhq_gather_offset_z_sv8hi */

        case 1:
          if (!
#line 7407 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4695; /* mve_vldrhq_gather_offset_z_sv4si */

        default:
          return -1;
        }

    case 1014:
      switch (pattern94 (x1))
        {
        case 0:
          if (!
#line 7407 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4694; /* mve_vldrhq_gather_offset_z_uv8hi */

        case 1:
          if (!
#line 7407 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4696; /* mve_vldrhq_gather_offset_z_uv4si */

        default:
          return -1;
        }

    case 1015:
      switch (pattern94 (x1))
        {
        case 0:
          if (!
#line 7455 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4701; /* mve_vldrhq_gather_shifted_offset_z_sv8hi */

        case 1:
          if (!
#line 7455 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4703; /* mve_vldrhq_gather_shifted_offset_z_sv4si */

        default:
          return -1;
        }

    case 1016:
      switch (pattern94 (x1))
        {
        case 0:
          if (!
#line 7455 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4702; /* mve_vldrhq_gather_shifted_offset_z_uv8hi */

        case 1:
          if (!
#line 7455 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4704; /* mve_vldrhq_gather_shifted_offset_z_uv4si */

        default:
          return -1;
        }

    case 1022:
      if (pattern95 (x1) != 0
          || !
#line 7663 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4722; /* mve_vldrdq_gather_base_z_sv2di */

    case 1023:
      if (pattern95 (x1) != 0
          || !
#line 7663 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4723; /* mve_vldrdq_gather_base_z_uv2di */

    case 1024:
      if (pattern96 (x1) != 0
          || !
#line 7704 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4726; /* mve_vldrdq_gather_offset_z_sv2di */

    case 1025:
      if (pattern96 (x1) != 0
          || !
#line 7704 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4727; /* mve_vldrdq_gather_offset_z_uv2di */

    case 1026:
      if (pattern96 (x1) != 0
          || !
#line 7745 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4730; /* mve_vldrdq_gather_shifted_offset_z_sv2di */

    case 1027:
      if (pattern96 (x1) != 0
          || !
#line 7745 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4731; /* mve_vldrdq_gather_shifted_offset_z_uv2di */

    case 1028:
      if (pattern97 (x1) != 0
          || !
#line 7786 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4733; /* mve_vldrhq_gather_offset_z_fv8hf */

    case 1029:
      if (pattern97 (x1) != 0
          || !
#line 7828 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4735; /* mve_vldrhq_gather_shifted_offset_z_fv8hf */

    case 1030:
      if (pattern93 (x1, E_V4SFmode) != 0
          || !
#line 7870 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4737; /* mve_vldrwq_gather_base_z_fv4sf */

    case 1031:
      if (pattern98 (x1, E_V4SFmode) != 0
          || !
#line 7931 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4741; /* mve_vldrwq_gather_offset_z_fv4sf */

    case 1032:
      if (pattern98 (x1, E_V4SImode) != 0
          || !
#line 7953 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4742; /* mve_vldrwq_gather_offset_z_sv4si */

    case 1033:
      if (pattern98 (x1, E_V4SImode) != 0
          || !
#line 7953 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4743; /* mve_vldrwq_gather_offset_z_uv4si */

    case 1034:
      if (pattern98 (x1, E_V4SFmode) != 0
          || !
#line 8015 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4747; /* mve_vldrwq_gather_shifted_offset_z_fv4sf */

    case 1035:
      if (pattern98 (x1, E_V4SImode) != 0
          || !
#line 8037 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4748; /* mve_vldrwq_gather_shifted_offset_z_sv4si */

    case 1036:
      if (pattern98 (x1, E_V4SImode) != 0
          || !
#line 8037 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4749; /* mve_vldrwq_gather_shifted_offset_z_uv4si */

    case 1040:
      switch (pattern99 (x1))
        {
        case 0:
          if (!
#line 8164 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4760; /* mve_vstrhq_scatter_offset_sv8hi_insn */

        case 1:
          if (!
#line 8164 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4762; /* mve_vstrhq_scatter_offset_sv4si_insn */

        default:
          return -1;
        }

    case 1100:
      switch (pattern99 (x1))
        {
        case 0:
          if (!
#line 8164 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4761; /* mve_vstrhq_scatter_offset_uv8hi_insn */

        case 1:
          if (!
#line 8164 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4763; /* mve_vstrhq_scatter_offset_uv4si_insn */

        default:
          return -1;
        }

    case 1101:
      switch (pattern99 (x1))
        {
        case 0:
          if (!
#line 8225 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4768; /* mve_vstrhq_scatter_shifted_offset_sv8hi_insn */

        case 1:
          if (!
#line 8225 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4770; /* mve_vstrhq_scatter_shifted_offset_sv4si_insn */

        default:
          return -1;
        }

    case 1102:
      switch (pattern99 (x1))
        {
        case 0:
          if (!
#line 8225 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4769; /* mve_vstrhq_scatter_shifted_offset_uv8hi_insn */

        case 1:
          if (!
#line 8225 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4771; /* mve_vstrhq_scatter_shifted_offset_uv4si_insn */

        default:
          return -1;
        }

    case 1046:
      if (pattern100 (x1) != 0
          || !
#line 8380 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4784; /* mve_vstrdq_scatter_base_sv2di */

    case 1047:
      if (pattern100 (x1) != 0
          || !
#line 8380 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4785; /* mve_vstrdq_scatter_base_uv2di */

    case 1048:
      if (pattern101 (x1) != 0
          || !
#line 8446 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4788; /* mve_vstrdq_scatter_offset_sv2di_insn */

    case 1049:
      if (pattern101 (x1) != 0
          || !
#line 8446 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4789; /* mve_vstrdq_scatter_offset_uv2di_insn */

    case 1050:
      if (pattern101 (x1) != 0
          || !
#line 8507 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4792; /* mve_vstrdq_scatter_shifted_offset_sv2di_insn */

    case 1051:
      if (pattern101 (x1) != 0
          || !
#line 8507 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4793; /* mve_vstrdq_scatter_shifted_offset_uv2di_insn */

    case 1056:
      if (pattern102 (x1) != 0
          || !
#line 8535 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4794; /* mve_vstrhq_scatter_offset_fv8hf_insn */

    case 1057:
      if (pattern102 (x1) != 0
          || !
#line 8594 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4796; /* mve_vstrhq_scatter_shifted_offset_fv8hf_insn */

    case 1058:
      if (pattern89 (x1, E_V4SFmode) != 0
          || !
#line 8641 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4798; /* mve_vstrwq_scatter_base_fv4sf */

    case 1059:
      if (pattern103 (x1, E_V4SFmode) != 0
          || !
#line 8699 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4800; /* mve_vstrwq_scatter_offset_fv4sf_insn */

    case 1052:
      if (pattern103 (x1, E_V4SImode) != 0
          || !
#line 8789 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4804; /* mve_vstrwq_scatter_offset_sv4si_insn */

    case 1053:
      if (pattern103 (x1, E_V4SImode) != 0
          || !
#line 8789 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4805; /* mve_vstrwq_scatter_offset_uv4si_insn */

    case 1060:
      if (pattern103 (x1, E_V4SFmode) != 0
          || !
#line 8817 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4806; /* mve_vstrwq_scatter_shifted_offset_fv4sf_insn */

    case 1054:
      if (pattern103 (x1, E_V4SImode) != 0
          || !
#line 8910 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4810; /* mve_vstrwq_scatter_shifted_offset_sv4si_insn */

    case 1055:
      if (pattern103 (x1, E_V4SImode) != 0
          || !
#line 8910 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4811; /* 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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (XINT (x2, 1))
    {
    case 103:
      return recog_229 (x1, insn, pnum_clobbers);

    case 102:
      return recog_227 (x1, insn, pnum_clobbers);

    case 105:
      return recog_224 (x1, insn, pnum_clobbers);

    case 104:
      return recog_223 (x1, insn, pnum_clobbers);

    case 352:
      return recog_232 (x1, insn, pnum_clobbers);

    case 353:
      return recog_231 (x1, insn, pnum_clobbers);

    case 219:
      return recog_226 (x1, insn, pnum_clobbers);

    case 222:
      switch (pattern229 (x1))
        {
        case 0:
          if (!
#line 3999 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2189; /* neon_vmlals_lanev4hi */

        case 1:
          if (!
#line 3999 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2191; /* neon_vmlals_lanev2si */

        default:
          return -1;
        }

    case 223:
      switch (pattern229 (x1))
        {
        case 0:
          if (!
#line 3999 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2190; /* neon_vmlalu_lanev4hi */

        case 1:
          if (!
#line 3999 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2192; /* neon_vmlalu_lanev2si */

        default:
          return -1;
        }

    case 260:
      switch (pattern229 (x1))
        {
        case 0:
          if (!
#line 4014 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2193; /* neon_vqdmlal_lanev4hi */

        case 1:
          if (!
#line 4014 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2194; /* neon_vqdmlal_lanev2si */

        default:
          return -1;
        }

    case 225:
      return recog_225 (x1, insn, pnum_clobbers);

    case 228:
      switch (pattern229 (x1))
        {
        case 0:
          if (!
#line 4065 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2201; /* neon_vmlsls_lanev4hi */

        case 1:
          if (!
#line 4065 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2203; /* neon_vmlsls_lanev2si */

        default:
          return -1;
        }

    case 229:
      switch (pattern229 (x1))
        {
        case 0:
          if (!
#line 4065 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2202; /* neon_vmlslu_lanev4hi */

        case 1:
          if (!
#line 4065 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2204; /* neon_vmlslu_lanev2si */

        default:
          return -1;
        }

    case 262:
      switch (pattern229 (x1))
        {
        case 0:
          if (!
#line 4080 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2205; /* neon_vqdmlsl_lanev4hi */

        case 1:
          if (!
#line 4080 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2206; /* neon_vqdmlsl_lanev2si */

        default:
          return -1;
        }

    case 201:
      return recog_221 (x1, insn, pnum_clobbers);

    case 206:
      return recog_222 (x1, insn, pnum_clobbers);

    case 211:
      return recog_220 (x1, insn, pnum_clobbers);

    case 805:
      switch (pattern232 (x1))
        {
        case 0:
          if (!
#line 4889 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4152; /* mve_vcvtq_m_n_from_f_sv8hi */

        case 1:
          if (!
#line 4889 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4154; /* mve_vcvtq_m_n_from_f_sv4si */

        default:
          return -1;
        }

    case 814:
      switch (pattern232 (x1))
        {
        case 0:
          if (!
#line 4889 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4153; /* mve_vcvtq_m_n_from_f_uv8hi */

        case 1:
          if (!
#line 4889 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4155; /* mve_vcvtq_m_n_from_f_uv4si */

        default:
          return -1;
        }

    case 816:
      switch (pattern233 (x1))
        {
        case 0:
          if (!
#line 4970 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4165; /* mve_vabavq_p_sv16qi */

        case 1:
          if (!
#line 4970 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4167; /* mve_vabavq_p_sv8hi */

        case 2:
          if (!
#line 4970 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4169; /* mve_vabavq_p_sv4si */

        default:
          return -1;
        }

    case 817:
      switch (pattern233 (x1))
        {
        case 0:
          if (!
#line 4970 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4166; /* mve_vabavq_p_uv16qi */

        case 1:
          if (!
#line 4970 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4168; /* mve_vabavq_p_uv8hi */

        case 2:
          if (!
#line 4970 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4170; /* mve_vabavq_p_uv4si */

        default:
          return -1;
        }

    case 815:
      return recog_230 (x1, insn, pnum_clobbers);

    case 818:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5003 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4174; /* mve_vshlq_m_sv16qi */

        case 1:
          if (!
#line 5003 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4176; /* mve_vshlq_m_sv8hi */

        case 2:
          if (!
#line 5003 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4178; /* mve_vshlq_m_sv4si */

        default:
          return -1;
        }

    case 819:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5003 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4175; /* mve_vshlq_m_uv16qi */

        case 1:
          if (!
#line 5003 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4177; /* mve_vshlq_m_uv8hi */

        case 2:
          if (!
#line 5003 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4179; /* mve_vshlq_m_uv4si */

        default:
          return -1;
        }

    case 820:
      switch (pattern238 (x1))
        {
        case 0:
          if (!
#line 5019 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4180; /* mve_vsriq_m_n_sv16qi */

        case 1:
          if (!
#line 5019 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4182; /* mve_vsriq_m_n_sv8hi */

        case 2:
          if (!
#line 5019 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4184; /* mve_vsriq_m_n_sv4si */

        default:
          return -1;
        }

    case 821:
      switch (pattern238 (x1))
        {
        case 0:
          if (!
#line 5019 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4181; /* mve_vsriq_m_n_uv16qi */

        case 1:
          if (!
#line 5019 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4183; /* mve_vsriq_m_n_uv8hi */

        case 2:
          if (!
#line 5019 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4185; /* mve_vsriq_m_n_uv4si */

        default:
          return -1;
        }

    case 822:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5035 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4186; /* mve_vsubq_m_uv16qi */

        case 1:
          if (!
#line 5035 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4188; /* mve_vsubq_m_uv8hi */

        case 2:
          if (!
#line 5035 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4190; /* mve_vsubq_m_uv4si */

        default:
          return -1;
        }

    case 823:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5035 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4187; /* mve_vsubq_m_sv16qi */

        case 1:
          if (!
#line 5035 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4189; /* mve_vsubq_m_sv8hi */

        case 2:
          if (!
#line 5035 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4191; /* mve_vsubq_m_sv4si */

        default:
          return -1;
        }

    case 824:
      switch (pattern240 (x1))
        {
        case 0:
          if (!
#line 5051 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4192; /* mve_vcvtq_m_n_to_f_uv8hf */

        case 1:
          if (!
#line 5051 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4194; /* mve_vcvtq_m_n_to_f_uv4sf */

        default:
          return -1;
        }

    case 825:
      switch (pattern240 (x1))
        {
        case 0:
          if (!
#line 5051 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4193; /* mve_vcvtq_m_n_to_f_sv8hf */

        case 1:
          if (!
#line 5051 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4195; /* mve_vcvtq_m_n_to_f_sv4sf */

        default:
          return -1;
        }

    case 541:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5067 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4196; /* mve_vabdq_m_sv16qi */

        case 1:
          if (!
#line 5067 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4198; /* mve_vabdq_m_sv8hi */

        case 2:
          if (!
#line 5067 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4200; /* mve_vabdq_m_sv4si */

        default:
          return -1;
        }

    case 542:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5067 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4197; /* mve_vabdq_m_uv16qi */

        case 1:
          if (!
#line 5067 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4199; /* mve_vabdq_m_uv8hi */

        case 2:
          if (!
#line 5067 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4201; /* mve_vabdq_m_uv4si */

        default:
          return -1;
        }

    case 870:
      switch (pattern242 (x1))
        {
        case 0:
          if (!
#line 5084 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4202; /* mve_vaddq_m_n_sv16qi */

        case 1:
          if (!
#line 5084 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4204; /* mve_vaddq_m_n_sv8hi */

        case 2:
          if (!
#line 5084 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4206; /* mve_vaddq_m_n_sv4si */

        default:
          return -1;
        }

    case 871:
      switch (pattern242 (x1))
        {
        case 0:
          if (!
#line 5084 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4203; /* mve_vaddq_m_n_uv16qi */

        case 1:
          if (!
#line 5084 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4205; /* mve_vaddq_m_n_uv8hi */

        case 2:
          if (!
#line 5084 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4207; /* mve_vaddq_m_n_uv4si */

        default:
          return -1;
        }

    case 894:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5101 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4208; /* mve_vaddq_m_uv16qi */

        case 1:
          if (!
#line 5101 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4210; /* mve_vaddq_m_uv8hi */

        case 2:
          if (!
#line 5101 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4212; /* mve_vaddq_m_uv4si */

        default:
          return -1;
        }

    case 916:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5101 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4209; /* mve_vaddq_m_sv16qi */

        case 1:
          if (!
#line 5101 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4211; /* mve_vaddq_m_sv8hi */

        case 2:
          if (!
#line 5101 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4213; /* mve_vaddq_m_sv4si */

        default:
          return -1;
        }

    case 884:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5118 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4214; /* mve_vandq_m_uv16qi */

        case 1:
          if (!
#line 5118 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4216; /* mve_vandq_m_uv8hi */

        case 2:
          if (!
#line 5118 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4218; /* mve_vandq_m_uv4si */

        default:
          return -1;
        }

    case 885:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5118 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4215; /* mve_vandq_m_sv16qi */

        case 1:
          if (!
#line 5118 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4217; /* mve_vandq_m_sv8hi */

        case 2:
          if (!
#line 5118 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4219; /* mve_vandq_m_sv4si */

        default:
          return -1;
        }

    case 835:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5135 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4220; /* mve_vbicq_m_uv16qi */

        case 1:
          if (!
#line 5135 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4222; /* mve_vbicq_m_uv8hi */

        case 2:
          if (!
#line 5135 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4224; /* mve_vbicq_m_uv4si */

        default:
          return -1;
        }

    case 836:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5135 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4221; /* mve_vbicq_m_sv16qi */

        case 1:
          if (!
#line 5135 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4223; /* mve_vbicq_m_sv8hi */

        case 2:
          if (!
#line 5135 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4225; /* mve_vbicq_m_sv4si */

        default:
          return -1;
        }

    case 899:
      switch (pattern243 (x1))
        {
        case 0:
          if (!
#line 5152 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4226; /* mve_vbrsrq_m_n_uv16qi */

        case 1:
          if (!
#line 5152 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4228; /* mve_vbrsrq_m_n_uv8hi */

        case 2:
          if (!
#line 5152 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4230; /* mve_vbrsrq_m_n_uv4si */

        default:
          return -1;
        }

    case 831:
      switch (pattern243 (x1))
        {
        case 0:
          if (!
#line 5152 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4227; /* mve_vbrsrq_m_n_sv16qi */

        case 1:
          if (!
#line 5152 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4229; /* mve_vbrsrq_m_n_sv8hi */

        case 2:
          if (!
#line 5152 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4231; /* mve_vbrsrq_m_n_sv4si */

        default:
          return -1;
        }

    case 855:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5169 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4232; /* mve_vcaddq_rot270_m_uv16qi */

        case 1:
          if (!
#line 5169 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4234; /* mve_vcaddq_rot270_m_uv8hi */

        case 2:
          if (!
#line 5169 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4236; /* mve_vcaddq_rot270_m_uv4si */

        default:
          return -1;
        }

    case 856:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5169 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4233; /* mve_vcaddq_rot270_m_sv16qi */

        case 1:
          if (!
#line 5169 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4235; /* mve_vcaddq_rot270_m_sv8hi */

        case 2:
          if (!
#line 5169 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4237; /* mve_vcaddq_rot270_m_sv4si */

        default:
          return -1;
        }

    case 910:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5186 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4238; /* mve_vcaddq_rot90_m_uv16qi */

        case 1:
          if (!
#line 5186 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4240; /* mve_vcaddq_rot90_m_uv8hi */

        case 2:
          if (!
#line 5186 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4242; /* mve_vcaddq_rot90_m_uv4si */

        default:
          return -1;
        }

    case 911:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5186 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4239; /* mve_vcaddq_rot90_m_sv16qi */

        case 1:
          if (!
#line 5186 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4241; /* mve_vcaddq_rot90_m_sv8hi */

        case 2:
          if (!
#line 5186 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4243; /* mve_vcaddq_rot90_m_sv4si */

        default:
          return -1;
        }

    case 920:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5203 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4244; /* mve_veorq_m_sv16qi */

        case 1:
          if (!
#line 5203 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4246; /* mve_veorq_m_sv8hi */

        case 2:
          if (!
#line 5203 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4248; /* mve_veorq_m_sv4si */

        default:
          return -1;
        }

    case 921:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5203 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4245; /* mve_veorq_m_uv16qi */

        case 1:
          if (!
#line 5203 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4247; /* mve_veorq_m_uv8hi */

        case 2:
          if (!
#line 5203 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4249; /* mve_veorq_m_uv4si */

        default:
          return -1;
        }

    case 917:
      switch (pattern242 (x1))
        {
        case 0:
          if (!
#line 5220 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4250; /* mve_vhaddq_m_n_sv16qi */

        case 1:
          if (!
#line 5220 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4252; /* mve_vhaddq_m_n_sv8hi */

        case 2:
          if (!
#line 5220 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4254; /* mve_vhaddq_m_n_sv4si */

        default:
          return -1;
        }

    case 924:
      switch (pattern242 (x1))
        {
        case 0:
          if (!
#line 5220 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4251; /* mve_vhaddq_m_n_uv16qi */

        case 1:
          if (!
#line 5220 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4253; /* mve_vhaddq_m_n_uv8hi */

        case 2:
          if (!
#line 5220 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4255; /* mve_vhaddq_m_n_uv4si */

        default:
          return -1;
        }

    case 838:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5237 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4256; /* mve_vhaddq_m_sv16qi */

        case 1:
          if (!
#line 5237 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4258; /* mve_vhaddq_m_sv8hi */

        case 2:
          if (!
#line 5237 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4260; /* mve_vhaddq_m_sv4si */

        default:
          return -1;
        }

    case 834:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5237 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4257; /* mve_vhaddq_m_uv16qi */

        case 1:
          if (!
#line 5237 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4259; /* mve_vhaddq_m_uv8hi */

        case 2:
          if (!
#line 5237 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4261; /* mve_vhaddq_m_uv4si */

        default:
          return -1;
        }

    case 886:
      switch (pattern242 (x1))
        {
        case 0:
          if (!
#line 5254 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4262; /* mve_vhsubq_m_n_sv16qi */

        case 1:
          if (!
#line 5254 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4264; /* mve_vhsubq_m_n_sv8hi */

        case 2:
          if (!
#line 5254 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4266; /* mve_vhsubq_m_n_sv4si */

        default:
          return -1;
        }

    case 887:
      switch (pattern242 (x1))
        {
        case 0:
          if (!
#line 5254 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4263; /* mve_vhsubq_m_n_uv16qi */

        case 1:
          if (!
#line 5254 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4265; /* mve_vhsubq_m_n_uv8hi */

        case 2:
          if (!
#line 5254 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4267; /* mve_vhsubq_m_n_uv4si */

        default:
          return -1;
        }

    case 922:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5271 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4268; /* mve_vhsubq_m_sv16qi */

        case 1:
          if (!
#line 5271 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4270; /* mve_vhsubq_m_sv8hi */

        case 2:
          if (!
#line 5271 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4272; /* mve_vhsubq_m_sv4si */

        default:
          return -1;
        }

    case 923:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5271 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4269; /* mve_vhsubq_m_uv16qi */

        case 1:
          if (!
#line 5271 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4271; /* mve_vhsubq_m_uv8hi */

        case 2:
          if (!
#line 5271 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4273; /* mve_vhsubq_m_uv4si */

        default:
          return -1;
        }

    case 873:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5288 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4274; /* mve_vmaxq_m_sv16qi */

        case 1:
          if (!
#line 5288 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4276; /* mve_vmaxq_m_sv8hi */

        case 2:
          if (!
#line 5288 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4278; /* mve_vmaxq_m_sv4si */

        default:
          return -1;
        }

    case 852:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5288 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4275; /* mve_vmaxq_m_uv16qi */

        case 1:
          if (!
#line 5288 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4277; /* mve_vmaxq_m_uv8hi */

        case 2:
          if (!
#line 5288 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4279; /* mve_vmaxq_m_uv4si */

        default:
          return -1;
        }

    case 881:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5305 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4280; /* mve_vminq_m_sv16qi */

        case 1:
          if (!
#line 5305 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4282; /* mve_vminq_m_sv8hi */

        case 2:
          if (!
#line 5305 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4284; /* mve_vminq_m_sv4si */

        default:
          return -1;
        }

    case 882:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5305 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4281; /* mve_vminq_m_uv16qi */

        case 1:
          if (!
#line 5305 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4283; /* mve_vminq_m_uv8hi */

        case 2:
          if (!
#line 5305 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4285; /* mve_vminq_m_uv4si */

        default:
          return -1;
        }

    case 905:
      switch (pattern233 (x1))
        {
        case 0:
          if (!
#line 5322 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4286; /* mve_vmladavaq_p_uv16qi */

        case 1:
          if (!
#line 5322 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4288; /* mve_vmladavaq_p_uv8hi */

        case 2:
          if (!
#line 5322 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4290; /* mve_vmladavaq_p_uv4si */

        default:
          return -1;
        }

    case 906:
      switch (pattern233 (x1))
        {
        case 0:
          if (!
#line 5322 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4287; /* mve_vmladavaq_p_sv16qi */

        case 1:
          if (!
#line 5322 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4289; /* mve_vmladavaq_p_sv8hi */

        case 2:
          if (!
#line 5322 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4291; /* mve_vmladavaq_p_sv4si */

        default:
          return -1;
        }

    case 840:
      switch (pattern242 (x1))
        {
        case 0:
          if (!
#line 5339 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4292; /* mve_vmlaq_m_n_sv16qi */

        case 1:
          if (!
#line 5339 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4294; /* mve_vmlaq_m_n_sv8hi */

        case 2:
          if (!
#line 5339 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4296; /* mve_vmlaq_m_n_sv4si */

        default:
          return -1;
        }

    case 843:
      switch (pattern242 (x1))
        {
        case 0:
          if (!
#line 5339 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4293; /* mve_vmlaq_m_n_uv16qi */

        case 1:
          if (!
#line 5339 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4295; /* mve_vmlaq_m_n_uv8hi */

        case 2:
          if (!
#line 5339 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4297; /* mve_vmlaq_m_n_uv4si */

        default:
          return -1;
        }

    case 850:
      switch (pattern242 (x1))
        {
        case 0:
          if (!
#line 5356 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4298; /* mve_vmlasq_m_n_uv16qi */

        case 1:
          if (!
#line 5356 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4300; /* mve_vmlasq_m_n_uv8hi */

        case 2:
          if (!
#line 5356 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4302; /* mve_vmlasq_m_n_uv4si */

        default:
          return -1;
        }

    case 851:
      switch (pattern242 (x1))
        {
        case 0:
          if (!
#line 5356 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4299; /* mve_vmlasq_m_n_sv16qi */

        case 1:
          if (!
#line 5356 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4301; /* mve_vmlasq_m_n_sv8hi */

        case 2:
          if (!
#line 5356 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4303; /* mve_vmlasq_m_n_sv4si */

        default:
          return -1;
        }

    case 888:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5373 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4304; /* mve_vmulhq_m_sv16qi */

        case 1:
          if (!
#line 5373 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4306; /* mve_vmulhq_m_sv8hi */

        case 2:
          if (!
#line 5373 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4308; /* mve_vmulhq_m_sv4si */

        default:
          return -1;
        }

    case 889:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5373 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4305; /* mve_vmulhq_m_uv16qi */

        case 1:
          if (!
#line 5373 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4307; /* mve_vmulhq_m_uv8hi */

        case 2:
          if (!
#line 5373 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4309; /* mve_vmulhq_m_uv4si */

        default:
          return -1;
        }

    case 890:
      switch (pattern245 (x1))
        {
        case 0:
          if (!
#line 5390 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4310; /* mve_vmullbq_int_m_uv16qi */

        case 1:
          if (!
#line 5390 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4312; /* mve_vmullbq_int_m_uv8hi */

        case 2:
          if (!
#line 5390 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4314; /* mve_vmullbq_int_m_uv4si */

        default:
          return -1;
        }

    case 891:
      switch (pattern245 (x1))
        {
        case 0:
          if (!
#line 5390 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4311; /* mve_vmullbq_int_m_sv16qi */

        case 1:
          if (!
#line 5390 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4313; /* mve_vmullbq_int_m_sv8hi */

        case 2:
          if (!
#line 5390 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4315; /* mve_vmullbq_int_m_sv4si */

        default:
          return -1;
        }

    case 846:
      switch (pattern245 (x1))
        {
        case 0:
          if (!
#line 5407 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4316; /* mve_vmulltq_int_m_sv16qi */

        case 1:
          if (!
#line 5407 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4318; /* mve_vmulltq_int_m_sv8hi */

        case 2:
          if (!
#line 5407 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4320; /* mve_vmulltq_int_m_sv4si */

        default:
          return -1;
        }

    case 847:
      switch (pattern245 (x1))
        {
        case 0:
          if (!
#line 5407 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4317; /* mve_vmulltq_int_m_uv16qi */

        case 1:
          if (!
#line 5407 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4319; /* mve_vmulltq_int_m_uv8hi */

        case 2:
          if (!
#line 5407 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4321; /* mve_vmulltq_int_m_uv4si */

        default:
          return -1;
        }

    case 837:
      switch (pattern242 (x1))
        {
        case 0:
          if (!
#line 5424 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4322; /* mve_vmulq_m_n_uv16qi */

        case 1:
          if (!
#line 5424 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4324; /* mve_vmulq_m_n_uv8hi */

        case 2:
          if (!
#line 5424 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4326; /* mve_vmulq_m_n_uv4si */

        default:
          return -1;
        }

    case 848:
      switch (pattern242 (x1))
        {
        case 0:
          if (!
#line 5424 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4323; /* mve_vmulq_m_n_sv16qi */

        case 1:
          if (!
#line 5424 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4325; /* mve_vmulq_m_n_sv8hi */

        case 2:
          if (!
#line 5424 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4327; /* mve_vmulq_m_n_sv4si */

        default:
          return -1;
        }

    case 862:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5441 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4328; /* mve_vmulq_m_sv16qi */

        case 1:
          if (!
#line 5441 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4330; /* mve_vmulq_m_sv8hi */

        case 2:
          if (!
#line 5441 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4332; /* mve_vmulq_m_sv4si */

        default:
          return -1;
        }

    case 863:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5441 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4329; /* mve_vmulq_m_uv16qi */

        case 1:
          if (!
#line 5441 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4331; /* mve_vmulq_m_uv8hi */

        case 2:
          if (!
#line 5441 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4333; /* mve_vmulq_m_uv4si */

        default:
          return -1;
        }

    case 912:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5458 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4334; /* mve_vornq_m_uv16qi */

        case 1:
          if (!
#line 5458 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4336; /* mve_vornq_m_uv8hi */

        case 2:
          if (!
#line 5458 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4338; /* mve_vornq_m_uv4si */

        default:
          return -1;
        }

    case 913:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5458 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4335; /* mve_vornq_m_sv16qi */

        case 1:
          if (!
#line 5458 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4337; /* mve_vornq_m_sv8hi */

        case 2:
          if (!
#line 5458 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4339; /* mve_vornq_m_sv4si */

        default:
          return -1;
        }

    case 875:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5475 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4340; /* mve_vorrq_m_sv16qi */

        case 1:
          if (!
#line 5475 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4342; /* mve_vorrq_m_sv8hi */

        case 2:
          if (!
#line 5475 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4344; /* mve_vorrq_m_sv4si */

        default:
          return -1;
        }

    case 876:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5475 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4341; /* mve_vorrq_m_uv16qi */

        case 1:
          if (!
#line 5475 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4343; /* mve_vorrq_m_uv8hi */

        case 2:
          if (!
#line 5475 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4345; /* mve_vorrq_m_uv4si */

        default:
          return -1;
        }

    case 919:
      switch (pattern242 (x1))
        {
        case 0:
          if (!
#line 5492 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4346; /* mve_vqaddq_m_n_uv16qi */

        case 1:
          if (!
#line 5492 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4348; /* mve_vqaddq_m_n_uv8hi */

        case 2:
          if (!
#line 5492 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4350; /* mve_vqaddq_m_n_uv4si */

        default:
          return -1;
        }

    case 896:
      switch (pattern242 (x1))
        {
        case 0:
          if (!
#line 5492 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4347; /* mve_vqaddq_m_n_sv16qi */

        case 1:
          if (!
#line 5492 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4349; /* mve_vqaddq_m_n_sv8hi */

        case 2:
          if (!
#line 5492 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4351; /* mve_vqaddq_m_n_sv4si */

        default:
          return -1;
        }

    case 826:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5509 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4352; /* mve_vqaddq_m_uv16qi */

        case 1:
          if (!
#line 5509 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4354; /* mve_vqaddq_m_uv8hi */

        case 2:
          if (!
#line 5509 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4356; /* mve_vqaddq_m_uv4si */

        default:
          return -1;
        }

    case 827:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5509 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4353; /* mve_vqaddq_m_sv16qi */

        case 1:
          if (!
#line 5509 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4355; /* mve_vqaddq_m_sv8hi */

        case 2:
          if (!
#line 5509 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4357; /* mve_vqaddq_m_sv4si */

        default:
          return -1;
        }

    case 903:
      switch (pattern242 (x1))
        {
        case 0:
          if (!
#line 5526 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4358; /* mve_vqdmlahq_m_n_sv16qi */

        case 1:
          if (!
#line 5526 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4359; /* mve_vqdmlahq_m_n_sv8hi */

        case 2:
          if (!
#line 5526 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4360; /* mve_vqdmlahq_m_n_sv4si */

        default:
          return -1;
        }

    case 864:
      switch (pattern242 (x1))
        {
        case 0:
          if (!
#line 5543 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4361; /* mve_vqdmlashq_m_n_sv16qi */

        case 1:
          if (!
#line 5543 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4362; /* mve_vqdmlashq_m_n_sv8hi */

        case 2:
          if (!
#line 5543 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4363; /* mve_vqdmlashq_m_n_sv4si */

        default:
          return -1;
        }

    case 874:
      switch (pattern242 (x1))
        {
        case 0:
          if (!
#line 5560 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4364; /* mve_vqrdmlahq_m_n_sv16qi */

        case 1:
          if (!
#line 5560 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4365; /* mve_vqrdmlahq_m_n_sv8hi */

        case 2:
          if (!
#line 5560 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4366; /* mve_vqrdmlahq_m_n_sv4si */

        default:
          return -1;
        }

    case 865:
      switch (pattern242 (x1))
        {
        case 0:
          if (!
#line 5577 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4367; /* mve_vqrdmlashq_m_n_sv16qi */

        case 1:
          if (!
#line 5577 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4368; /* mve_vqrdmlashq_m_n_sv8hi */

        case 2:
          if (!
#line 5577 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4369; /* mve_vqrdmlashq_m_n_sv4si */

        default:
          return -1;
        }

    case 878:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5594 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4370; /* mve_vqrshlq_m_uv16qi */

        case 1:
          if (!
#line 5594 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4372; /* mve_vqrshlq_m_uv8hi */

        case 2:
          if (!
#line 5594 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4374; /* mve_vqrshlq_m_uv4si */

        default:
          return -1;
        }

    case 857:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5594 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4371; /* mve_vqrshlq_m_sv16qi */

        case 1:
          if (!
#line 5594 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4373; /* mve_vqrshlq_m_sv8hi */

        case 2:
          if (!
#line 5594 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4375; /* mve_vqrshlq_m_sv4si */

        default:
          return -1;
        }

    case 914:
      switch (pattern246 (x1))
        {
        case 0:
          if (!
#line 5611 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4376; /* mve_vqshlq_m_n_sv16qi */

        case 1:
          if (!
#line 5611 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4378; /* mve_vqshlq_m_n_sv8hi */

        case 2:
          if (!
#line 5611 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4380; /* mve_vqshlq_m_n_sv4si */

        default:
          return -1;
        }

    case 915:
      switch (pattern246 (x1))
        {
        case 0:
          if (!
#line 5611 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4377; /* mve_vqshlq_m_n_uv16qi */

        case 1:
          if (!
#line 5611 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4379; /* mve_vqshlq_m_n_uv8hi */

        case 2:
          if (!
#line 5611 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4381; /* mve_vqshlq_m_n_uv4si */

        default:
          return -1;
        }

    case 908:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5628 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4382; /* mve_vqshlq_m_uv16qi */

        case 1:
          if (!
#line 5628 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4384; /* mve_vqshlq_m_uv8hi */

        case 2:
          if (!
#line 5628 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4386; /* mve_vqshlq_m_uv4si */

        default:
          return -1;
        }

    case 909:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5628 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4383; /* mve_vqshlq_m_sv16qi */

        case 1:
          if (!
#line 5628 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4385; /* mve_vqshlq_m_sv8hi */

        case 2:
          if (!
#line 5628 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4387; /* mve_vqshlq_m_sv4si */

        default:
          return -1;
        }

    case 844:
      switch (pattern242 (x1))
        {
        case 0:
          if (!
#line 5645 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4388; /* mve_vqsubq_m_n_uv16qi */

        case 1:
          if (!
#line 5645 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4390; /* mve_vqsubq_m_n_uv8hi */

        case 2:
          if (!
#line 5645 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4392; /* mve_vqsubq_m_n_uv4si */

        default:
          return -1;
        }

    case 845:
      switch (pattern242 (x1))
        {
        case 0:
          if (!
#line 5645 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4389; /* mve_vqsubq_m_n_sv16qi */

        case 1:
          if (!
#line 5645 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4391; /* mve_vqsubq_m_n_sv8hi */

        case 2:
          if (!
#line 5645 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4393; /* mve_vqsubq_m_n_sv4si */

        default:
          return -1;
        }

    case 841:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5662 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4394; /* mve_vqsubq_m_uv16qi */

        case 1:
          if (!
#line 5662 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4396; /* mve_vqsubq_m_uv8hi */

        case 2:
          if (!
#line 5662 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4398; /* mve_vqsubq_m_uv4si */

        default:
          return -1;
        }

    case 842:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5662 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4395; /* mve_vqsubq_m_sv16qi */

        case 1:
          if (!
#line 5662 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4397; /* mve_vqsubq_m_sv8hi */

        case 2:
          if (!
#line 5662 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4399; /* mve_vqsubq_m_sv4si */

        default:
          return -1;
        }

    case 859:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5679 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4400; /* mve_vrhaddq_m_uv16qi */

        case 1:
          if (!
#line 5679 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4402; /* mve_vrhaddq_m_uv8hi */

        case 2:
          if (!
#line 5679 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4404; /* mve_vrhaddq_m_uv4si */

        default:
          return -1;
        }

    case 861:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5679 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4401; /* mve_vrhaddq_m_sv16qi */

        case 1:
          if (!
#line 5679 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4403; /* mve_vrhaddq_m_sv8hi */

        case 2:
          if (!
#line 5679 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4405; /* mve_vrhaddq_m_sv4si */

        default:
          return -1;
        }

    case 879:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5696 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4406; /* mve_vrmulhq_m_uv16qi */

        case 1:
          if (!
#line 5696 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4408; /* mve_vrmulhq_m_uv8hi */

        case 2:
          if (!
#line 5696 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4410; /* mve_vrmulhq_m_uv4si */

        default:
          return -1;
        }

    case 880:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5696 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4407; /* mve_vrmulhq_m_sv16qi */

        case 1:
          if (!
#line 5696 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4409; /* mve_vrmulhq_m_sv8hi */

        case 2:
          if (!
#line 5696 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4411; /* mve_vrmulhq_m_sv4si */

        default:
          return -1;
        }

    case 866:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5713 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4412; /* mve_vrshlq_m_sv16qi */

        case 1:
          if (!
#line 5713 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4414; /* mve_vrshlq_m_sv8hi */

        case 2:
          if (!
#line 5713 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4416; /* mve_vrshlq_m_sv4si */

        default:
          return -1;
        }

    case 867:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5713 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4413; /* mve_vrshlq_m_uv16qi */

        case 1:
          if (!
#line 5713 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4415; /* mve_vrshlq_m_uv8hi */

        case 2:
          if (!
#line 5713 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4417; /* mve_vrshlq_m_uv4si */

        default:
          return -1;
        }

    case 828:
      switch (pattern248 (x1))
        {
        case 0:
          if (!
#line 5730 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4418; /* mve_vrshrq_m_n_sv16qi */

        case 1:
          if (!
#line 5730 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4420; /* mve_vrshrq_m_n_sv8hi */

        case 2:
          if (!
#line 5730 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4422; /* mve_vrshrq_m_n_sv4si */

        default:
          return -1;
        }

    case 868:
      switch (pattern248 (x1))
        {
        case 0:
          if (!
#line 5730 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4419; /* mve_vrshrq_m_n_uv16qi */

        case 1:
          if (!
#line 5730 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4421; /* mve_vrshrq_m_n_uv8hi */

        case 2:
          if (!
#line 5730 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4423; /* mve_vrshrq_m_n_uv4si */

        default:
          return -1;
        }

    case 901:
      switch (pattern246 (x1))
        {
        case 0:
          if (!
#line 5747 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4424; /* mve_vshlq_m_n_sv16qi */

        case 1:
          if (!
#line 5747 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4426; /* mve_vshlq_m_n_sv8hi */

        case 2:
          if (!
#line 5747 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4428; /* mve_vshlq_m_n_sv4si */

        default:
          return -1;
        }

    case 904:
      switch (pattern246 (x1))
        {
        case 0:
          if (!
#line 5747 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4425; /* mve_vshlq_m_n_uv16qi */

        case 1:
          if (!
#line 5747 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4427; /* mve_vshlq_m_n_uv8hi */

        case 2:
          if (!
#line 5747 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4429; /* mve_vshlq_m_n_uv4si */

        default:
          return -1;
        }

    case 893:
      switch (pattern248 (x1))
        {
        case 0:
          if (!
#line 5764 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4430; /* mve_vshrq_m_n_sv16qi */

        case 1:
          if (!
#line 5764 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4432; /* mve_vshrq_m_n_sv8hi */

        case 2:
          if (!
#line 5764 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4434; /* mve_vshrq_m_n_sv4si */

        default:
          return -1;
        }

    case 860:
      switch (pattern248 (x1))
        {
        case 0:
          if (!
#line 5764 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4431; /* mve_vshrq_m_n_uv16qi */

        case 1:
          if (!
#line 5764 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4433; /* mve_vshrq_m_n_uv8hi */

        case 2:
          if (!
#line 5764 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4435; /* mve_vshrq_m_n_uv4si */

        default:
          return -1;
        }

    case 895:
      switch (pattern249 (x1))
        {
        case 0:
          if (!
#line 5781 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4436; /* mve_vsliq_m_n_uv16qi */

        case 1:
          if (!
#line 5781 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4438; /* mve_vsliq_m_n_uv8hi */

        case 2:
          if (!
#line 5781 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4440; /* mve_vsliq_m_n_uv4si */

        default:
          return -1;
        }

    case 907:
      switch (pattern249 (x1))
        {
        case 0:
          if (!
#line 5781 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4437; /* mve_vsliq_m_n_sv16qi */

        case 1:
          if (!
#line 5781 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4439; /* mve_vsliq_m_n_sv8hi */

        case 2:
          if (!
#line 5781 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4441; /* mve_vsliq_m_n_sv4si */

        default:
          return -1;
        }

    case 829:
      switch (pattern242 (x1))
        {
        case 0:
          if (!
#line 5798 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4442; /* mve_vsubq_m_n_sv16qi */

        case 1:
          if (!
#line 5798 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4444; /* mve_vsubq_m_n_sv8hi */

        case 2:
          if (!
#line 5798 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4446; /* mve_vsubq_m_n_sv4si */

        default:
          return -1;
        }

    case 830:
      switch (pattern242 (x1))
        {
        case 0:
          if (!
#line 5798 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4443; /* mve_vsubq_m_n_uv16qi */

        case 1:
          if (!
#line 5798 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4445; /* mve_vsubq_m_n_uv8hi */

        case 2:
          if (!
#line 5798 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4447; /* mve_vsubq_m_n_uv4si */

        default:
          return -1;
        }

    case 935:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5815 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4448; /* mve_vhcaddq_rot270_m_sv16qi */

        case 1:
          if (!
#line 5815 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4449; /* mve_vhcaddq_rot270_m_sv8hi */

        case 2:
          if (!
#line 5815 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4450; /* mve_vhcaddq_rot270_m_sv4si */

        default:
          return -1;
        }

    case 925:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5832 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4451; /* mve_vhcaddq_rot90_m_sv16qi */

        case 1:
          if (!
#line 5832 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4452; /* mve_vhcaddq_rot90_m_sv8hi */

        case 2:
          if (!
#line 5832 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4453; /* mve_vhcaddq_rot90_m_sv4si */

        default:
          return -1;
        }

    case 930:
      switch (pattern233 (x1))
        {
        case 0:
          if (!
#line 5849 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4454; /* mve_vmladavaxq_p_sv16qi */

        case 1:
          if (!
#line 5849 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4455; /* mve_vmladavaxq_p_sv8hi */

        case 2:
          if (!
#line 5849 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4456; /* mve_vmladavaxq_p_sv4si */

        default:
          return -1;
        }

    case 938:
      switch (pattern233 (x1))
        {
        case 0:
          if (!
#line 5866 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4457; /* mve_vmlsdavaq_p_sv16qi */

        case 1:
          if (!
#line 5866 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4458; /* mve_vmlsdavaq_p_sv8hi */

        case 2:
          if (!
#line 5866 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4459; /* mve_vmlsdavaq_p_sv4si */

        default:
          return -1;
        }

    case 933:
      switch (pattern233 (x1))
        {
        case 0:
          if (!
#line 5883 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4460; /* mve_vmlsdavaxq_p_sv16qi */

        case 1:
          if (!
#line 5883 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4461; /* mve_vmlsdavaxq_p_sv8hi */

        case 2:
          if (!
#line 5883 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4462; /* mve_vmlsdavaxq_p_sv4si */

        default:
          return -1;
        }

    case 940:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5900 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4463; /* mve_vqdmladhq_m_sv16qi */

        case 1:
          if (!
#line 5900 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4464; /* mve_vqdmladhq_m_sv8hi */

        case 2:
          if (!
#line 5900 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4465; /* mve_vqdmladhq_m_sv4si */

        default:
          return -1;
        }

    case 931:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5917 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4466; /* mve_vqdmladhxq_m_sv16qi */

        case 1:
          if (!
#line 5917 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4467; /* mve_vqdmladhxq_m_sv8hi */

        case 2:
          if (!
#line 5917 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4468; /* mve_vqdmladhxq_m_sv4si */

        default:
          return -1;
        }

    case 936:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5934 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4469; /* mve_vqdmlsdhq_m_sv16qi */

        case 1:
          if (!
#line 5934 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4470; /* mve_vqdmlsdhq_m_sv8hi */

        case 2:
          if (!
#line 5934 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4471; /* mve_vqdmlsdhq_m_sv4si */

        default:
          return -1;
        }

    case 937:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5951 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4472; /* mve_vqdmlsdhxq_m_sv16qi */

        case 1:
          if (!
#line 5951 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4473; /* mve_vqdmlsdhxq_m_sv8hi */

        case 2:
          if (!
#line 5951 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4474; /* mve_vqdmlsdhxq_m_sv4si */

        default:
          return -1;
        }

    case 934:
      switch (pattern242 (x1))
        {
        case 0:
          if (!
#line 5968 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4475; /* mve_vqdmulhq_m_n_sv16qi */

        case 1:
          if (!
#line 5968 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4476; /* mve_vqdmulhq_m_n_sv8hi */

        case 2:
          if (!
#line 5968 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4477; /* mve_vqdmulhq_m_n_sv4si */

        default:
          return -1;
        }

    case 929:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 5985 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4478; /* mve_vqdmulhq_m_sv16qi */

        case 1:
          if (!
#line 5985 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4479; /* mve_vqdmulhq_m_sv8hi */

        case 2:
          if (!
#line 5985 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4480; /* mve_vqdmulhq_m_sv4si */

        default:
          return -1;
        }

    case 939:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 6002 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4481; /* mve_vqrdmladhq_m_sv16qi */

        case 1:
          if (!
#line 6002 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4482; /* mve_vqrdmladhq_m_sv8hi */

        case 2:
          if (!
#line 6002 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4483; /* mve_vqrdmladhq_m_sv4si */

        default:
          return -1;
        }

    case 928:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 6019 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4484; /* mve_vqrdmladhxq_m_sv16qi */

        case 1:
          if (!
#line 6019 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4485; /* mve_vqrdmladhxq_m_sv8hi */

        case 2:
          if (!
#line 6019 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4486; /* mve_vqrdmladhxq_m_sv4si */

        default:
          return -1;
        }

    case 926:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 6036 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4487; /* mve_vqrdmlsdhq_m_sv16qi */

        case 1:
          if (!
#line 6036 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4488; /* mve_vqrdmlsdhq_m_sv8hi */

        case 2:
          if (!
#line 6036 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4489; /* mve_vqrdmlsdhq_m_sv4si */

        default:
          return -1;
        }

    case 927:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 6053 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4490; /* mve_vqrdmlsdhxq_m_sv16qi */

        case 1:
          if (!
#line 6053 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4491; /* mve_vqrdmlsdhxq_m_sv8hi */

        case 2:
          if (!
#line 6053 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4492; /* mve_vqrdmlsdhxq_m_sv4si */

        default:
          return -1;
        }

    case 964:
      switch (pattern242 (x1))
        {
        case 0:
          if (!
#line 6070 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4493; /* mve_vqrdmulhq_m_n_sv16qi */

        case 1:
          if (!
#line 6070 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4494; /* mve_vqrdmulhq_m_n_sv8hi */

        case 2:
          if (!
#line 6070 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4495; /* mve_vqrdmulhq_m_n_sv4si */

        default:
          return -1;
        }

    case 932:
      switch (pattern235 (x1))
        {
        case 0:
          if (!
#line 6087 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4496; /* mve_vqrdmulhq_m_sv16qi */

        case 1:
          if (!
#line 6087 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4497; /* mve_vqrdmulhq_m_sv8hi */

        case 2:
          if (!
#line 6087 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4498; /* mve_vqrdmulhq_m_sv4si */

        default:
          return -1;
        }

    case 941:
      switch (pattern250 (x1))
        {
        case 0:
          if (!
#line 6104 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4499; /* mve_vmlaldavaq_p_uv8hi */

        case 1:
          if (!
#line 6104 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4501; /* mve_vmlaldavaq_p_uv4si */

        default:
          return -1;
        }

    case 942:
      switch (pattern250 (x1))
        {
        case 0:
          if (!
#line 6104 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4500; /* mve_vmlaldavaq_p_sv8hi */

        case 1:
          if (!
#line 6104 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4502; /* mve_vmlaldavaq_p_sv4si */

        default:
          return -1;
        }

    case 960:
      switch (pattern250 (x1))
        {
        case 0:
          if (!
#line 6121 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4503; /* mve_vmlaldavaxq_p_sv8hi */

        case 1:
          if (!
#line 6121 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4504; /* mve_vmlaldavaxq_p_sv4si */

        default:
          return -1;
        }

    case 943:
      switch (pattern252 (x1))
        {
        case 0:
          if (!
#line 6138 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4505; /* mve_vqrshrnbq_m_n_uv8hi */

        case 1:
          if (!
#line 6138 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4507; /* mve_vqrshrnbq_m_n_uv4si */

        default:
          return -1;
        }

    case 944:
      switch (pattern252 (x1))
        {
        case 0:
          if (!
#line 6138 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4506; /* mve_vqrshrnbq_m_n_sv8hi */

        case 1:
          if (!
#line 6138 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4508; /* mve_vqrshrnbq_m_n_sv4si */

        default:
          return -1;
        }

    case 945:
      switch (pattern252 (x1))
        {
        case 0:
          if (!
#line 6155 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4509; /* mve_vqrshrntq_m_n_sv8hi */

        case 1:
          if (!
#line 6155 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4511; /* mve_vqrshrntq_m_n_sv4si */

        default:
          return -1;
        }

    case 961:
      switch (pattern252 (x1))
        {
        case 0:
          if (!
#line 6155 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4510; /* mve_vqrshrntq_m_n_uv8hi */

        case 1:
          if (!
#line 6155 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4512; /* mve_vqrshrntq_m_n_uv4si */

        default:
          return -1;
        }

    case 946:
      switch (pattern253 (x1))
        {
        case 0:
          if (!
#line 6172 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4513; /* mve_vqshrnbq_m_n_uv8hi */

        case 1:
          if (!
#line 6172 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4515; /* mve_vqshrnbq_m_n_uv4si */

        default:
          return -1;
        }

    case 947:
      switch (pattern253 (x1))
        {
        case 0:
          if (!
#line 6172 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4514; /* mve_vqshrnbq_m_n_sv8hi */

        case 1:
          if (!
#line 6172 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4516; /* mve_vqshrnbq_m_n_sv4si */

        default:
          return -1;
        }

    case 948:
      switch (pattern253 (x1))
        {
        case 0:
          if (!
#line 6189 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4517; /* mve_vqshrntq_m_n_sv8hi */

        case 1:
          if (!
#line 6189 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4519; /* mve_vqshrntq_m_n_sv4si */

        default:
          return -1;
        }

    case 962:
      switch (pattern253 (x1))
        {
        case 0:
          if (!
#line 6189 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4518; /* mve_vqshrntq_m_n_uv8hi */

        case 1:
          if (!
#line 6189 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4520; /* mve_vqshrntq_m_n_uv4si */

        default:
          return -1;
        }

    case 965:
      if (pattern254 (x1) != 0
          || !
#line 6206 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4521; /* mve_vrmlaldavhaq_p_sv4si */

    case 949:
      switch (pattern252 (x1))
        {
        case 0:
          if (!
#line 6223 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4522; /* mve_vrshrnbq_m_n_uv8hi */

        case 1:
          if (!
#line 6223 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4524; /* mve_vrshrnbq_m_n_uv4si */

        default:
          return -1;
        }

    case 950:
      switch (pattern252 (x1))
        {
        case 0:
          if (!
#line 6223 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4523; /* mve_vrshrnbq_m_n_sv8hi */

        case 1:
          if (!
#line 6223 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4525; /* mve_vrshrnbq_m_n_sv4si */

        default:
          return -1;
        }

    case 951:
      switch (pattern252 (x1))
        {
        case 0:
          if (!
#line 6240 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4526; /* mve_vrshrntq_m_n_uv8hi */

        case 1:
          if (!
#line 6240 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4528; /* mve_vrshrntq_m_n_uv4si */

        default:
          return -1;
        }

    case 963:
      switch (pattern252 (x1))
        {
        case 0:
          if (!
#line 6240 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4527; /* mve_vrshrntq_m_n_sv8hi */

        case 1:
          if (!
#line 6240 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4529; /* mve_vrshrntq_m_n_sv4si */

        default:
          return -1;
        }

    case 952:
      switch (pattern255 (x1))
        {
        case 0:
          if (!
#line 6257 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4530; /* mve_vshllbq_m_n_uv16qi */

        case 1:
          if (!
#line 6257 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4532; /* mve_vshllbq_m_n_uv8hi */

        default:
          return -1;
        }

    case 953:
      switch (pattern255 (x1))
        {
        case 0:
          if (!
#line 6257 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4531; /* mve_vshllbq_m_n_sv16qi */

        case 1:
          if (!
#line 6257 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4533; /* mve_vshllbq_m_n_sv8hi */

        default:
          return -1;
        }

    case 954:
      switch (pattern255 (x1))
        {
        case 0:
          if (!
#line 6274 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4534; /* mve_vshlltq_m_n_uv16qi */

        case 1:
          if (!
#line 6274 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4536; /* mve_vshlltq_m_n_uv8hi */

        default:
          return -1;
        }

    case 955:
      switch (pattern255 (x1))
        {
        case 0:
          if (!
#line 6274 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4535; /* mve_vshlltq_m_n_sv16qi */

        case 1:
          if (!
#line 6274 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4537; /* mve_vshlltq_m_n_sv8hi */

        default:
          return -1;
        }

    case 956:
      switch (pattern253 (x1))
        {
        case 0:
          if (!
#line 6291 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4538; /* mve_vshrnbq_m_n_sv8hi */

        case 1:
          if (!
#line 6291 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4540; /* mve_vshrnbq_m_n_sv4si */

        default:
          return -1;
        }

    case 957:
      switch (pattern253 (x1))
        {
        case 0:
          if (!
#line 6291 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4539; /* mve_vshrnbq_m_n_uv8hi */

        case 1:
          if (!
#line 6291 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4541; /* mve_vshrnbq_m_n_uv4si */

        default:
          return -1;
        }

    case 958:
      switch (pattern253 (x1))
        {
        case 0:
          if (!
#line 6308 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4542; /* mve_vshrntq_m_n_sv8hi */

        case 1:
          if (!
#line 6308 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4544; /* mve_vshrntq_m_n_sv4si */

        default:
          return -1;
        }

    case 959:
      switch (pattern253 (x1))
        {
        case 0:
          if (!
#line 6308 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4543; /* mve_vshrntq_m_n_uv8hi */

        case 1:
          if (!
#line 6308 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4545; /* mve_vshrntq_m_n_uv4si */

        default:
          return -1;
        }

    case 966:
      switch (pattern250 (x1))
        {
        case 0:
          if (!
#line 6325 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4546; /* mve_vmlsldavaq_p_sv8hi */

        case 1:
          if (!
#line 6325 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4547; /* mve_vmlsldavaq_p_sv4si */

        default:
          return -1;
        }

    case 967:
      switch (pattern250 (x1))
        {
        case 0:
          if (!
#line 6342 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4548; /* mve_vmlsldavaxq_p_sv8hi */

        case 1:
          if (!
#line 6342 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4549; /* mve_vmlsldavaxq_p_sv4si */

        default:
          return -1;
        }

    case 968:
      switch (pattern256 (x1))
        {
        case 0:
          if (!
#line 6359 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4550; /* mve_vmullbq_poly_m_pv16qi */

        case 1:
          if (!
#line 6359 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4551; /* mve_vmullbq_poly_m_pv8hi */

        default:
          return -1;
        }

    case 969:
      switch (pattern256 (x1))
        {
        case 0:
          if (!
#line 6376 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4552; /* mve_vmulltq_poly_m_pv16qi */

        case 1:
          if (!
#line 6376 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4553; /* mve_vmulltq_poly_m_pv8hi */

        default:
          return -1;
        }

    case 970:
      switch (pattern258 (x1))
        {
        case 0:
          if (!
#line 6393 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4554; /* mve_vqdmullbq_m_n_sv8hi */

        case 1:
          if (!
#line 6393 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4555; /* mve_vqdmullbq_m_n_sv4si */

        default:
          return -1;
        }

    case 971:
      switch (pattern259 (x1))
        {
        case 0:
          if (!
#line 6410 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4556; /* mve_vqdmullbq_m_sv8hi */

        case 1:
          if (!
#line 6410 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4557; /* mve_vqdmullbq_m_sv4si */

        default:
          return -1;
        }

    case 972:
      switch (pattern258 (x1))
        {
        case 0:
          if (!
#line 6427 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4558; /* mve_vqdmulltq_m_n_sv8hi */

        case 1:
          if (!
#line 6427 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4559; /* mve_vqdmulltq_m_n_sv4si */

        default:
          return -1;
        }

    case 973:
      switch (pattern259 (x1))
        {
        case 0:
          if (!
#line 6444 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4560; /* mve_vqdmulltq_m_sv8hi */

        case 1:
          if (!
#line 6444 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4561; /* mve_vqdmulltq_m_sv4si */

        default:
          return -1;
        }

    case 974:
      switch (pattern252 (x1))
        {
        case 0:
          if (!
#line 6461 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4562; /* mve_vqrshrunbq_m_n_sv8hi */

        case 1:
          if (!
#line 6461 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4563; /* mve_vqrshrunbq_m_n_sv4si */

        default:
          return -1;
        }

    case 981:
      switch (pattern253 (x1))
        {
        case 0:
          if (!
#line 6478 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4564; /* mve_vqrshruntq_m_n_sv8hi */

        case 1:
          if (!
#line 6478 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4565; /* mve_vqrshruntq_m_n_sv4si */

        default:
          return -1;
        }

    case 975:
      switch (pattern253 (x1))
        {
        case 0:
          if (!
#line 6495 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4566; /* mve_vqshrunbq_m_n_sv8hi */

        case 1:
          if (!
#line 6495 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4567; /* mve_vqshrunbq_m_n_sv4si */

        default:
          return -1;
        }

    case 976:
      switch (pattern253 (x1))
        {
        case 0:
          if (!
#line 6512 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4568; /* mve_vqshruntq_m_n_sv8hi */

        case 1:
          if (!
#line 6512 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4569; /* mve_vqshruntq_m_n_sv4si */

        default:
          return -1;
        }

    case 977:
      if (pattern254 (x1) != 0
          || !
#line 6529 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4570; /* mve_vrmlaldavhaq_p_uv4si */

    case 978:
      if (pattern254 (x1) != 0
          || !
#line 6546 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4571; /* mve_vrmlaldavhaxq_p_sv4si */

    case 979:
      if (pattern254 (x1) != 0
          || !
#line 6563 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4572; /* mve_vrmlsldavhaq_p_sv4si */

    case 980:
      if (pattern254 (x1) != 0
          || !
#line 6580 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4573; /* mve_vrmlsldavhaxq_p_sv4si */

    case 898:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 6596 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4574; /* mve_vabdq_m_fv8hf */

        case 1:
          if (!
#line 6596 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4575; /* mve_vabdq_m_fv4sf */

        default:
          return -1;
        }

    case 918:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 6613 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4576; /* mve_vaddq_m_fv8hf */

        case 1:
          if (!
#line 6613 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4577; /* mve_vaddq_m_fv4sf */

        default:
          return -1;
        }

    case 869:
      switch (pattern261 (x1))
        {
        case 0:
          if (!
#line 6630 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4578; /* mve_vaddq_m_n_fv8hf */

        case 1:
          if (!
#line 6630 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4579; /* mve_vaddq_m_n_fv4sf */

        default:
          return -1;
        }

    case 883:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 6647 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4580; /* mve_vandq_m_fv8hf */

        case 1:
          if (!
#line 6647 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4581; /* mve_vandq_m_fv4sf */

        default:
          return -1;
        }

    case 833:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 6664 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4582; /* mve_vbicq_m_fv8hf */

        case 1:
          if (!
#line 6664 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4583; /* mve_vbicq_m_fv4sf */

        default:
          return -1;
        }

    case 897:
      return recog_228 (x1, insn, pnum_clobbers);

    case 854:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 6698 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4586; /* mve_vcaddq_rot270_m_fv8hf */

        case 1:
          if (!
#line 6698 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4587; /* mve_vcaddq_rot270_m_fv4sf */

        default:
          return -1;
        }

    case 892:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 6715 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4588; /* mve_vcaddq_rot90_m_fv8hf */

        case 1:
          if (!
#line 6715 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4589; /* mve_vcaddq_rot90_m_fv4sf */

        default:
          return -1;
        }

    case 982:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 6732 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4590; /* mve_vcmlaq_m_fv8hf */

        case 1:
          if (!
#line 6732 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4591; /* mve_vcmlaq_m_fv4sf */

        default:
          return -1;
        }

    case 983:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 6749 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4592; /* mve_vcmlaq_rot180_m_fv8hf */

        case 1:
          if (!
#line 6749 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4593; /* mve_vcmlaq_rot180_m_fv4sf */

        default:
          return -1;
        }

    case 984:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 6766 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4594; /* mve_vcmlaq_rot270_m_fv8hf */

        case 1:
          if (!
#line 6766 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4595; /* mve_vcmlaq_rot270_m_fv4sf */

        default:
          return -1;
        }

    case 985:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 6783 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4596; /* mve_vcmlaq_rot90_m_fv8hf */

        case 1:
          if (!
#line 6783 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4597; /* mve_vcmlaq_rot90_m_fv4sf */

        default:
          return -1;
        }

    case 986:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 6800 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4598; /* mve_vcmulq_m_fv8hf */

        case 1:
          if (!
#line 6800 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4599; /* mve_vcmulq_m_fv4sf */

        default:
          return -1;
        }

    case 987:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 6817 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4600; /* mve_vcmulq_rot180_m_fv8hf */

        case 1:
          if (!
#line 6817 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4601; /* mve_vcmulq_rot180_m_fv4sf */

        default:
          return -1;
        }

    case 988:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 6834 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4602; /* mve_vcmulq_rot270_m_fv8hf */

        case 1:
          if (!
#line 6834 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4603; /* mve_vcmulq_rot270_m_fv4sf */

        default:
          return -1;
        }

    case 989:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 6851 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4604; /* mve_vcmulq_rot90_m_fv8hf */

        case 1:
          if (!
#line 6851 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4605; /* mve_vcmulq_rot90_m_fv4sf */

        default:
          return -1;
        }

    case 900:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 6868 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4606; /* mve_veorq_m_fv8hf */

        case 1:
          if (!
#line 6868 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4607; /* mve_veorq_m_fv4sf */

        default:
          return -1;
        }

    case 990:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 6885 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4608; /* mve_vfmaq_m_fv8hf */

        case 1:
          if (!
#line 6885 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4609; /* mve_vfmaq_m_fv4sf */

        default:
          return -1;
        }

    case 991:
      switch (pattern261 (x1))
        {
        case 0:
          if (!
#line 6902 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4610; /* mve_vfmaq_m_n_fv8hf */

        case 1:
          if (!
#line 6902 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4611; /* mve_vfmaq_m_n_fv4sf */

        default:
          return -1;
        }

    case 992:
      switch (pattern261 (x1))
        {
        case 0:
          if (!
#line 6919 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4612; /* mve_vfmasq_m_n_fv8hf */

        case 1:
          if (!
#line 6919 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4613; /* mve_vfmasq_m_n_fv4sf */

        default:
          return -1;
        }

    case 993:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 6936 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4614; /* mve_vfmsq_m_fv8hf */

        case 1:
          if (!
#line 6936 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4615; /* mve_vfmsq_m_fv4sf */

        default:
          return -1;
        }

    case 994:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 6953 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4616; /* mve_vmaxnmq_m_fv8hf */

        case 1:
          if (!
#line 6953 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4617; /* mve_vmaxnmq_m_fv4sf */

        default:
          return -1;
        }

    case 995:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 6970 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4618; /* mve_vminnmq_m_fv8hf */

        case 1:
          if (!
#line 6970 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4619; /* mve_vminnmq_m_fv4sf */

        default:
          return -1;
        }

    case 858:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 6987 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4620; /* mve_vmulq_m_fv8hf */

        case 1:
          if (!
#line 6987 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4621; /* mve_vmulq_m_fv4sf */

        default:
          return -1;
        }

    case 849:
      switch (pattern261 (x1))
        {
        case 0:
          if (!
#line 7004 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4622; /* mve_vmulq_m_n_fv8hf */

        case 1:
          if (!
#line 7004 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4623; /* mve_vmulq_m_n_fv4sf */

        default:
          return -1;
        }

    case 839:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 7021 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4624; /* mve_vornq_m_fv8hf */

        case 1:
          if (!
#line 7021 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4625; /* mve_vornq_m_fv4sf */

        default:
          return -1;
        }

    case 877:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 7038 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4626; /* mve_vorrq_m_fv8hf */

        case 1:
          if (!
#line 7038 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4627; /* mve_vorrq_m_fv4sf */

        default:
          return -1;
        }

    case 996:
      switch (pattern260 (x1))
        {
        case 0:
          if (!
#line 7055 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4628; /* mve_vsubq_m_fv8hf */

        case 1:
          if (!
#line 7055 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4629; /* mve_vsubq_m_fv4sf */

        default:
          return -1;
        }

    case 832:
      switch (pattern261 (x1))
        {
        case 0:
          if (!
#line 7072 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4630; /* mve_vsubq_m_n_fv8hf */

        case 1:
          if (!
#line 7072 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4631; /* mve_vsubq_m_n_fv4sf */

        default:
          return -1;
        }

    case 999:
      switch (pattern262 (x1))
        {
        case 0:
          if (!
#line 7239 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4660; /* mve_vstrbq_scatter_offset_p_sv16qi_insn */

        case 1:
          if (!
#line 7239 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4662; /* mve_vstrbq_scatter_offset_p_sv8hi_insn */

        case 2:
          if (!
#line 7239 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4664; /* mve_vstrbq_scatter_offset_p_sv4si_insn */

        default:
          return -1;
        }

    case 1000:
      switch (pattern262 (x1))
        {
        case 0:
          if (!
#line 7239 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4661; /* mve_vstrbq_scatter_offset_p_uv16qi_insn */

        case 1:
          if (!
#line 7239 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4663; /* mve_vstrbq_scatter_offset_p_uv8hi_insn */

        case 2:
          if (!
#line 7239 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4665; /* mve_vstrbq_scatter_offset_p_uv4si_insn */

        default:
          return -1;
        }

    case 997:
      if (pattern263 (x1, E_V4SImode) != 0
          || !
#line 7255 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4666; /* mve_vstrwq_scatter_base_p_sv4si */

    case 998:
      if (pattern263 (x1, E_V4SImode) != 0
          || !
#line 7255 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4667; /* mve_vstrwq_scatter_base_p_uv4si */

    case 1040:
      switch (pattern264 (x1))
        {
        case 0:
          if (!
#line 8136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4756; /* mve_vstrhq_scatter_offset_p_sv8hi_insn */

        case 1:
          if (!
#line 8136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4758; /* mve_vstrhq_scatter_offset_p_sv4si_insn */

        default:
          return -1;
        }

    case 1100:
      switch (pattern264 (x1))
        {
        case 0:
          if (!
#line 8136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4757; /* mve_vstrhq_scatter_offset_p_uv8hi_insn */

        case 1:
          if (!
#line 8136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4759; /* mve_vstrhq_scatter_offset_p_uv4si_insn */

        default:
          return -1;
        }

    case 1101:
      switch (pattern264 (x1))
        {
        case 0:
          if (!
#line 8196 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4764; /* mve_vstrhq_scatter_shifted_offset_p_sv8hi_insn */

        case 1:
          if (!
#line 8196 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4766; /* mve_vstrhq_scatter_shifted_offset_p_sv4si_insn */

        default:
          return -1;
        }

    case 1102:
      switch (pattern264 (x1))
        {
        case 0:
          if (!
#line 8196 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4765; /* mve_vstrhq_scatter_shifted_offset_p_uv8hi_insn */

        case 1:
          if (!
#line 8196 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4767; /* mve_vstrhq_scatter_shifted_offset_p_uv4si_insn */

        default:
          return -1;
        }

    case 1046:
      if (pattern265 (x1) != 0
          || !
#line 8358 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4782; /* mve_vstrdq_scatter_base_p_sv2di */

    case 1047:
      if (pattern265 (x1) != 0
          || !
#line 8358 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4783; /* mve_vstrdq_scatter_base_p_uv2di */

    case 1048:
      if (pattern266 (x1) != 0
          || !
#line 8418 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4786; /* mve_vstrdq_scatter_offset_p_sv2di_insn */

    case 1049:
      if (pattern266 (x1) != 0
          || !
#line 8418 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4787; /* mve_vstrdq_scatter_offset_p_uv2di_insn */

    case 1050:
      if (pattern266 (x1) != 0
          || !
#line 8478 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4790; /* mve_vstrdq_scatter_shifted_offset_p_sv2di_insn */

    case 1051:
      if (pattern266 (x1) != 0
          || !
#line 8478 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4791; /* mve_vstrdq_scatter_shifted_offset_p_uv2di_insn */

    case 1056:
      if (pattern267 (x1) != 0
          || !
#line 8566 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4795; /* mve_vstrhq_scatter_offset_p_fv8hf_insn */

    case 1057:
      if (pattern267 (x1) != 0
          || !
#line 8626 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4797; /* mve_vstrhq_scatter_shifted_offset_p_fv8hf_insn */

    case 1058:
      if (pattern263 (x1, E_V4SFmode) != 0
          || !
#line 8664 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4799; /* mve_vstrwq_scatter_base_p_fv4sf */

    case 1059:
      if (pattern268 (x1, E_V4SFmode) != 0
          || !
#line 8730 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4801; /* mve_vstrwq_scatter_offset_p_fv4sf_insn */

    case 1052:
      if (pattern268 (x1, E_V4SImode) != 0
          || !
#line 8761 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4802; /* mve_vstrwq_scatter_offset_p_sv4si_insn */

    case 1053:
      if (pattern268 (x1, E_V4SImode) != 0
          || !
#line 8761 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4803; /* mve_vstrwq_scatter_offset_p_uv4si_insn */

    case 1060:
      if (pattern268 (x1, E_V4SFmode) != 0
          || !
#line 8849 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4807; /* mve_vstrwq_scatter_shifted_offset_p_fv4sf_insn */

    case 1054:
      if (pattern268 (x1, E_V4SImode) != 0
          || !
#line 8881 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4808; /* mve_vstrwq_scatter_shifted_offset_p_sv4si_insn */

    case 1055:
      if (pattern268 (x1, E_V4SImode) != 0
          || !
#line 8881 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4809; /* mve_vstrwq_scatter_shifted_offset_p_uv4si_insn */

    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, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (XINT (x2, 1))
    {
    case 30:
      if (pattern104 (x2, 104, E_CCmode) != 0)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!s_register_operand (operands[0], E_SImode)
          || !
#line 4316 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM_QBIT))
        return -1;
      return 127; /* arm_get_apsr */

    case 25:
      return recog_110 (x1, insn, pnum_clobbers);

    case 26:
      return recog_102 (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 5953 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 186; /* 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 5953 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
        return -1;
      return 187; /* 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 6608 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && flag_pic))
        return 255; /* pic_load_addr_32bit */
      if (!
#line 6624 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_THUMB1 && flag_pic))
        return -1;
      return 256; /* 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 9159 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 302; /* probe_stack */

    case 40:
      return recog_119 (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 12097 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch_thumb2))
        return -1;
      return 396; /* rbitsi2 */

    case 17:
      return recog_104 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 562; /* iwmmxt_clrdi */

    case 8:
      switch (pattern105 (x1, E_SImode))
        {
        case 0:
          if (!
#line 1579 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 656; /* iwmmxt_tmovmskb */

        case 1:
          if (!
#line 1588 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 657; /* iwmmxt_tmovmskh */

        case 2:
          if (!
#line 1597 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 658; /* iwmmxt_tmovmskw */

        default:
          return -1;
        }

    case 7:
      switch (pattern105 (x1, E_DImode))
        {
        case 0:
          if (!
#line 1606 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 659; /* iwmmxt_waccb */

        case 1:
          if (!
#line 1615 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 660; /* iwmmxt_wacch */

        case 2:
          if (!
#line 1624 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 661; /* iwmmxt_waccw */

        default:
          return -1;
        }

    case 16:
      return recog_100 (x1, insn, pnum_clobbers);

    case 108:
      return recog_103 (x1, insn, pnum_clobbers);

    case 107:
      return recog_118 (x1, insn, pnum_clobbers);

    case 354:
      switch (pattern106 (x1))
        {
        case 0:
          if (!
#line 971 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 771; /* neon_vrndhf */

        case 1:
          if (!
#line 778 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1302; /* neon_vrndv8hf */

        case 2:
          if (!
#line 778 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1308; /* neon_vrndv4hf */

        default:
          return -1;
        }

    case 355:
      switch (pattern106 (x1))
        {
        case 0:
          if (!
#line 971 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 772; /* neon_vrndahf */

        case 1:
          if (!
#line 778 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1303; /* neon_vrndav8hf */

        case 2:
          if (!
#line 778 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1309; /* neon_vrndav4hf */

        default:
          return -1;
        }

    case 357:
      switch (pattern106 (x1))
        {
        case 0:
          if (!
#line 971 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 773; /* neon_vrndmhf */

        case 1:
          if (!
#line 778 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1304; /* neon_vrndmv8hf */

        case 2:
          if (!
#line 778 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1310; /* neon_vrndmv4hf */

        default:
          return -1;
        }

    case 358:
      switch (pattern106 (x1))
        {
        case 0:
          if (!
#line 971 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 774; /* neon_vrndnhf */

        case 1:
          if (!
#line 778 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1305; /* neon_vrndnv8hf */

        case 2:
          if (!
#line 778 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1311; /* neon_vrndnv4hf */

        default:
          return -1;
        }

    case 359:
      switch (pattern106 (x1))
        {
        case 0:
          if (!
#line 971 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 775; /* neon_vrndphf */

        case 1:
          if (!
#line 778 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1306; /* neon_vrndpv8hf */

        case 2:
          if (!
#line 778 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1312; /* neon_vrndpv4hf */

        default:
          return -1;
        }

    case 360:
      switch (pattern106 (x1))
        {
        case 0:
          if (!
#line 971 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 776; /* neon_vrndxhf */

        case 1:
          if (!
#line 778 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1307; /* neon_vrndxv8hf */

        case 2:
          if (!
#line 778 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1313; /* neon_vrndxv4hf */

        default:
          return -1;
        }

    case 356:
      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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
        return -1;
      return 777; /* neon_vrndihf */

    case 180:
      switch (pattern107 (x1))
        {
        case 0:
          if (!
#line 1907 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 857; /* neon_vcvthshf */

        case 1:
          if (!
#line 1918 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 859; /* neon_vcvthssi */

        default:
          return -1;
        }

    case 181:
      switch (pattern107 (x1))
        {
        case 0:
          if (!
#line 1907 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 858; /* neon_vcvthuhf */

        case 1:
          if (!
#line 1918 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 860; /* neon_vcvthusi */

        default:
          return -1;
        }

    case 182:
      switch (pattern108 (x1))
        {
        case 0:
          if (!
#line 2014 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 865; /* neon_vcvtahssi */

        case 1:
          if (!
#line 3779 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2119; /* neon_vcvtasv8hf */

        case 2:
          if (!
#line 3779 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2127; /* neon_vcvtasv4hf */

        default:
          return -1;
        }

    case 183:
      switch (pattern108 (x1))
        {
        case 0:
          if (!
#line 2014 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 866; /* neon_vcvtahusi */

        case 1:
          if (!
#line 3779 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2120; /* neon_vcvtauv8hf */

        case 2:
          if (!
#line 3779 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2128; /* neon_vcvtauv4hf */

        default:
          return -1;
        }

    case 184:
      switch (pattern108 (x1))
        {
        case 0:
          if (!
#line 2014 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 867; /* neon_vcvtmhssi */

        case 1:
          if (!
#line 3779 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2121; /* neon_vcvtmsv8hf */

        case 2:
          if (!
#line 3779 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2129; /* neon_vcvtmsv4hf */

        default:
          return -1;
        }

    case 185:
      switch (pattern108 (x1))
        {
        case 0:
          if (!
#line 2014 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 868; /* neon_vcvtmhusi */

        case 1:
          if (!
#line 3779 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2122; /* neon_vcvtmuv8hf */

        case 2:
          if (!
#line 3779 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2130; /* neon_vcvtmuv4hf */

        default:
          return -1;
        }

    case 186:
      switch (pattern108 (x1))
        {
        case 0:
          if (!
#line 2014 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 869; /* neon_vcvtnhssi */

        case 1:
          if (!
#line 3779 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2123; /* neon_vcvtnsv8hf */

        case 2:
          if (!
#line 3779 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2131; /* neon_vcvtnsv4hf */

        default:
          return -1;
        }

    case 187:
      switch (pattern108 (x1))
        {
        case 0:
          if (!
#line 2014 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 870; /* neon_vcvtnhusi */

        case 1:
          if (!
#line 3779 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2124; /* neon_vcvtnuv8hf */

        case 2:
          if (!
#line 3779 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2132; /* neon_vcvtnuv4hf */

        default:
          return -1;
        }

    case 188:
      switch (pattern108 (x1))
        {
        case 0:
          if (!
#line 2014 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 871; /* neon_vcvtphssi */

        case 1:
          if (!
#line 3779 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2125; /* neon_vcvtpsv8hf */

        case 2:
          if (!
#line 3779 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2133; /* neon_vcvtpsv4hf */

        default:
          return -1;
        }

    case 189:
      switch (pattern108 (x1))
        {
        case 0:
          if (!
#line 2014 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 872; /* neon_vcvtphusi */

        case 1:
          if (!
#line 3779 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2126; /* neon_vcvtpuv8hf */

        case 2:
          if (!
#line 3779 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2134; /* neon_vcvtpuv4hf */

        default:
          return -1;
        }

    case 32:
      switch (pattern109 (x1))
        {
        case 0:
          if (!
#line 2040 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
            return -1;
          return 874; /* btruncsf2 */

        case 1:
          if (!(
#line 2040 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
            return -1;
          return 880; /* btruncdf2 */

        default:
          return -1;
        }

    case 33:
      switch (pattern109 (x1))
        {
        case 0:
          if (!
#line 2040 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
            return -1;
          return 875; /* ceilsf2 */

        case 1:
          if (!(
#line 2040 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
            return -1;
          return 881; /* ceildf2 */

        default:
          return -1;
        }

    case 34:
      switch (pattern109 (x1))
        {
        case 0:
          if (!
#line 2040 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
            return -1;
          return 876; /* floorsf2 */

        case 1:
          if (!(
#line 2040 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
            return -1;
          return 882; /* floordf2 */

        default:
          return -1;
        }

    case 35:
      switch (pattern109 (x1))
        {
        case 0:
          if (!
#line 2040 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
            return -1;
          return 877; /* nearbyintsf2 */

        case 1:
          if (!(
#line 2040 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
            return -1;
          return 883; /* nearbyintdf2 */

        default:
          return -1;
        }

    case 36:
      switch (pattern109 (x1))
        {
        case 0:
          if (!
#line 2040 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
            return -1;
          return 878; /* rintsf2 */

        case 1:
          if (!(
#line 2040 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
            return -1;
          return 884; /* rintdf2 */

        default:
          return -1;
        }

    case 37:
      switch (pattern109 (x1))
        {
        case 0:
          if (!
#line 2040 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
            return -1;
          return 879; /* roundsf2 */

        case 1:
          if (!(
#line 2040 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
            return -1;
          return 885; /* rounddf2 */

        default:
          return -1;
        }

    case 106:
      if (pattern110 (x1, E_SImode, 14) != 0
          || !
#line 1768 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_32BIT && TARGET_HAVE_LOB))
        return -1;
      return 1059; /* dls_insn */

    case 343:
      return recog_94 (x1, insn, pnum_clobbers);

    case 347:
      switch (pattern111 (x1))
        {
        case 0:
          if (!
#line 643 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1192; /* neon_vrintpv2sf */

        case 1:
          if (!
#line 643 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1198; /* neon_vrintpv4sf */

        default:
          return -1;
        }

    case 346:
      switch (pattern111 (x1))
        {
        case 0:
          if (!
#line 643 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1193; /* neon_vrintzv2sf */

        case 1:
          if (!
#line 643 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1199; /* neon_vrintzv4sf */

        default:
          return -1;
        }

    case 348:
      switch (pattern111 (x1))
        {
        case 0:
          if (!
#line 643 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1194; /* neon_vrintmv2sf */

        case 1:
          if (!
#line 643 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1200; /* neon_vrintmv4sf */

        default:
          return -1;
        }

    case 349:
      switch (pattern111 (x1))
        {
        case 0:
          if (!
#line 643 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1195; /* neon_vrintxv2sf */

        case 1:
          if (!
#line 643 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1201; /* neon_vrintxv4sf */

        default:
          return -1;
        }

    case 350:
      switch (pattern111 (x1))
        {
        case 0:
          if (!
#line 643 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1196; /* neon_vrintav2sf */

        case 1:
          if (!
#line 643 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1202; /* neon_vrintav4sf */

        default:
          return -1;
        }

    case 351:
      switch (pattern111 (x1))
        {
        case 0:
          if (!
#line 643 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1197; /* neon_vrintnv2sf */

        case 1:
          if (!
#line 643 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1203; /* neon_vrintnv4sf */

        default:
          return -1;
        }

    case 293:
      return recog_117 (x1, insn, pnum_clobbers);

    case 144:
      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 904 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1370; /* neon_load_count */

    case 245:
      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 1172 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
        return -1;
      return 1407; /* arm_reduc_plus_internal_v2di */

    case 246:
      return recog_116 (x1, insn, pnum_clobbers);

    case 247:
      return recog_115 (x1, insn, pnum_clobbers);

    case 256:
      return recog_114 (x1, insn, pnum_clobbers);

    case 272:
      return recog_113 (x1, insn, pnum_clobbers);

    case 169:
      return recog_112 (x1, insn, pnum_clobbers);

    case 288:
      return recog_111 (x1, insn, pnum_clobbers);

    case 172:
      return recog_109 (x1, insn, pnum_clobbers);

    case 173:
      return recog_108 (x1, insn, pnum_clobbers);

    case 171:
      return recog_107 (x1, insn, pnum_clobbers);

    case 235:
      switch (pattern117 (x1))
        {
        case 0:
          if (!
#line 3788 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2135; /* neon_vmovnv8hi */

        case 1:
          if (!
#line 3788 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2136; /* neon_vmovnv4si */

        case 2:
          if (!
#line 3788 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2137; /* neon_vmovnv2di */

        default:
          return -1;
        }

    case 269:
      switch (pattern117 (x1))
        {
        case 0:
          if (!
#line 3797 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2138; /* neon_vqmovnsv8hi */

        case 1:
          if (!
#line 3797 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2140; /* neon_vqmovnsv4si */

        case 2:
          if (!
#line 3797 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2142; /* neon_vqmovnsv2di */

        default:
          return -1;
        }

    case 270:
      switch (pattern117 (x1))
        {
        case 0:
          if (!
#line 3797 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2139; /* neon_vqmovnuv8hi */

        case 1:
          if (!
#line 3797 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2141; /* neon_vqmovnuv4si */

        case 2:
          if (!
#line 3797 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2143; /* neon_vqmovnuv2di */

        default:
          return -1;
        }

    case 271:
      switch (pattern117 (x1))
        {
        case 0:
          if (!
#line 3806 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2144; /* neon_vqmovunv8hi */

        case 1:
          if (!
#line 3806 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2145; /* neon_vqmovunv4si */

        case 2:
          if (!
#line 3806 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2146; /* neon_vqmovunv2di */

        default:
          return -1;
        }

    case 233:
      switch (pattern119 (x1))
        {
        case 0:
          if (!
#line 3815 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2147; /* neon_vmovlsv8qi */

        case 1:
          if (!
#line 3815 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2149; /* neon_vmovlsv4hi */

        case 2:
          if (!
#line 3815 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2151; /* neon_vmovlsv2si */

        default:
          return -1;
        }

    case 234:
      switch (pattern119 (x1))
        {
        case 0:
          if (!
#line 3815 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2148; /* neon_vmovluv8qi */

        case 1:
          if (!
#line 3815 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2150; /* neon_vmovluv4hi */

        case 2:
          if (!
#line 3815 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2152; /* neon_vmovluv2si */

        default:
          return -1;
        }

    case 292:
      return recog_97 (x1, insn, pnum_clobbers);

    case 291:
      return recog_101 (x1, insn, pnum_clobbers);

    case 290:
      return recog_106 (x1, insn, pnum_clobbers);

    case 197:
      return recog_96 (x1, insn, pnum_clobbers);

    case 314:
      return recog_95 (x1, insn, pnum_clobbers);

    case 383:
      return recog_98 (x1, insn, pnum_clobbers);

    case 384:
      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 6415 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
        return -1;
      return 2830; /* neon_vbfcvt_highv8bf */

    case 131:
      switch (pattern120 (x1, 129))
        {
        case 0:
          if (!
#line 27 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO))
            return -1;
          return 2838; /* crypto_aesmc */

        case 1:
          if (!
#line 144 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO
   && arm_fusion_enabled_p (tune_params::FUSE_AES_AESMC)))
            return -1;
          return 2847; /* *aarch32_crypto_aese_fused */

        default:
          return -1;
        }

    case 130:
      switch (pattern120 (x1, 128))
        {
        case 0:
          if (!
#line 27 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO))
            return -1;
          return 2839; /* crypto_aesimc */

        case 1:
          if (!
#line 183 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO
   && arm_fusion_enabled_p (tune_params::FUSE_AES_AESMC)))
            return -1;
          return 2849; /* *aarch32_crypto_aesd_fused */

        default:
          return -1;
        }

    case 128:
      if (pattern121 (x1) != 0
          || !
#line 60 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO))
        return -1;
      return 2840; /* *crypto_aesd_insn */

    case 129:
      if (pattern121 (x1) != 0
          || !
#line 60 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/crypto.md"
(TARGET_CRYPTO))
        return -1;
      return 2841; /* *crypto_aese_insn */

    case 132:
      return recog_99 (x1, insn, pnum_clobbers);

    case 136:
      return recog_105 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_MEMORY_BARRIER))
        return -1;
      return 2862; /* *memory_barrier */

    case 389:
      switch (pattern123 (x1))
        {
        case 0:
          if (!
#line 150 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3050; /* mve_vrndxq_fv8hf */

        case 1:
          if (!
#line 150 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3051; /* mve_vrndxq_fv4sf */

        default:
          return -1;
        }

    case 390:
      switch (pattern123 (x1))
        {
        case 0:
          if (!
#line 164 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3052; /* mve_vrndq_fv8hf */

        case 1:
          if (!
#line 164 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3053; /* mve_vrndq_fv4sf */

        default:
          return -1;
        }

    case 391:
      switch (pattern123 (x1))
        {
        case 0:
          if (!
#line 178 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3054; /* mve_vrndpq_fv8hf */

        case 1:
          if (!
#line 178 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3055; /* mve_vrndpq_fv4sf */

        default:
          return -1;
        }

    case 392:
      switch (pattern123 (x1))
        {
        case 0:
          if (!
#line 192 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3056; /* mve_vrndnq_fv8hf */

        case 1:
          if (!
#line 192 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3057; /* mve_vrndnq_fv4sf */

        default:
          return -1;
        }

    case 393:
      switch (pattern123 (x1))
        {
        case 0:
          if (!
#line 206 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3058; /* mve_vrndmq_fv8hf */

        case 1:
          if (!
#line 206 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3059; /* mve_vrndmq_fv4sf */

        default:
          return -1;
        }

    case 394:
      switch (pattern123 (x1))
        {
        case 0:
          if (!
#line 220 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3060; /* mve_vrndaq_fv8hf */

        case 1:
          if (!
#line 220 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3061; /* mve_vrndaq_fv4sf */

        default:
          return -1;
        }

    case 395:
      switch (pattern123 (x1))
        {
        case 0:
          if (!
#line 234 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3062; /* mve_vrev64q_fv8hf */

        case 1:
          if (!
#line 234 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3063; /* mve_vrev64q_fv4sf */

        default:
          return -1;
        }

    case 396:
      switch (pattern124 (x1, E_HFmode, E_SFmode))
        {
        case 0:
          if (!
#line 261 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3066; /* mve_vdupq_n_fv8hf */

        case 1:
          if (!
#line 261 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3067; /* mve_vdupq_n_fv4sf */

        default:
          return -1;
        }

    case 397:
      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 288 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3070; /* mve_vrev32q_fv8hf */

    case 398:
      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 301 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3071; /* mve_vcvttq_f32_f16v4sf */

    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 315 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3072; /* mve_vcvtbq_f32_f16v4sf */

    case 400:
      switch (pattern124 (x1, E_V8HImode, E_V4SImode))
        {
        case 0:
          if (!
#line 329 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3073; /* mve_vcvtq_to_f_sv8hf */

        case 1:
          if (!
#line 329 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3075; /* mve_vcvtq_to_f_sv4sf */

        default:
          return -1;
        }

    case 402:
      switch (pattern124 (x1, E_V8HImode, E_V4SImode))
        {
        case 0:
          if (!
#line 329 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3074; /* mve_vcvtq_to_f_uv8hf */

        case 1:
          if (!
#line 329 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3076; /* mve_vcvtq_to_f_uv4sf */

        default:
          return -1;
        }

    case 410:
      switch (pattern126 (x1))
        {
        case 0:
          if (!
#line 343 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3077; /* mve_vrev64q_sv16qi */

        case 1:
          if (!
#line 343 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3079; /* mve_vrev64q_sv8hi */

        case 2:
          if (!
#line 343 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3081; /* mve_vrev64q_sv4si */

        default:
          return -1;
        }

    case 411:
      switch (pattern126 (x1))
        {
        case 0:
          if (!
#line 343 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3078; /* mve_vrev64q_uv16qi */

        case 1:
          if (!
#line 343 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3080; /* mve_vrev64q_uv8hi */

        case 2:
          if (!
#line 343 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3082; /* mve_vrev64q_uv4si */

        default:
          return -1;
        }

    case 424:
      switch (pattern128 (x1, E_V8HFmode, E_V4SFmode))
        {
        case 0:
          if (!
#line 357 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3083; /* mve_vcvtq_from_f_sv8hi */

        case 1:
          if (!
#line 357 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3085; /* mve_vcvtq_from_f_sv4si */

        default:
          return -1;
        }

    case 425:
      switch (pattern128 (x1, E_V8HFmode, E_V4SFmode))
        {
        case 0:
          if (!
#line 357 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3084; /* mve_vcvtq_from_f_uv8hi */

        case 1:
          if (!
#line 357 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3086; /* mve_vcvtq_from_f_uv4si */

        default:
          return -1;
        }

    case 401:
      switch (pattern126 (x1))
        {
        case 0:
          if (!
#line 369 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3087; /* mve_vqnegq_sv16qi */

        case 1:
          if (!
#line 369 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3088; /* mve_vqnegq_sv8hi */

        case 2:
          if (!
#line 369 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3089; /* mve_vqnegq_sv4si */

        default:
          return -1;
        }

    case 412:
      switch (pattern126 (x1))
        {
        case 0:
          if (!
#line 383 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3090; /* mve_vqabsq_sv16qi */

        case 1:
          if (!
#line 383 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3091; /* mve_vqabsq_sv8hi */

        case 2:
          if (!
#line 383 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3092; /* mve_vqabsq_sv4si */

        default:
          return -1;
        }

    case 413:
      switch (pattern129 (x1))
        {
        case 0:
          if (!
#line 430 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3099; /* mve_vdupq_n_uv16qi */

        case 1:
          if (!
#line 430 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3101; /* mve_vdupq_n_uv8hi */

        case 2:
          if (!
#line 430 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3103; /* mve_vdupq_n_uv4si */

        default:
          return -1;
        }

    case 414:
      switch (pattern129 (x1))
        {
        case 0:
          if (!
#line 430 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3100; /* mve_vdupq_n_sv16qi */

        case 1:
          if (!
#line 430 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3102; /* mve_vdupq_n_sv8hi */

        case 2:
          if (!
#line 430 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3104; /* mve_vdupq_n_sv4si */

        default:
          return -1;
        }

    case 415:
      switch (pattern126 (x1))
        {
        case 0:
          if (!
#line 464 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3108; /* mve_vclsq_sv16qi */

        case 1:
          if (!
#line 464 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3109; /* mve_vclsq_sv8hi */

        case 2:
          if (!
#line 464 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3110; /* mve_vclsq_sv4si */

        default:
          return -1;
        }

    case 417:
      switch (pattern130 (x1))
        {
        case 0:
          if (!
#line 478 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3111; /* mve_vaddvq_uv16qi */

        case 1:
          if (!
#line 478 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3113; /* mve_vaddvq_uv8hi */

        case 2:
          if (!
#line 478 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3115; /* mve_vaddvq_uv4si */

        default:
          return -1;
        }

    case 416:
      switch (pattern130 (x1))
        {
        case 0:
          if (!
#line 478 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3112; /* mve_vaddvq_sv16qi */

        case 1:
          if (!
#line 478 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3114; /* mve_vaddvq_sv8hi */

        case 2:
          if (!
#line 478 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3116; /* mve_vaddvq_sv4si */

        default:
          return -1;
        }

    case 418:
      switch (pattern131 (x1))
        {
        case 0:
          if (!
#line 505 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3120; /* mve_vrev32q_uv16qi */

        case 1:
          if (!
#line 505 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3122; /* mve_vrev32q_uv8hi */

        default:
          return -1;
        }

    case 419:
      switch (pattern131 (x1))
        {
        case 0:
          if (!
#line 505 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3121; /* mve_vrev32q_sv16qi */

        case 1:
          if (!
#line 505 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3123; /* mve_vrev32q_sv8hi */

        default:
          return -1;
        }

    case 420:
      switch (pattern128 (x1, E_V16QImode, E_V8HImode))
        {
        case 0:
          if (!
#line 519 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3124; /* mve_vmovltq_uv16qi */

        case 1:
          if (!
#line 519 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3126; /* mve_vmovltq_uv8hi */

        default:
          return -1;
        }

    case 421:
      switch (pattern128 (x1, E_V16QImode, E_V8HImode))
        {
        case 0:
          if (!
#line 519 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3125; /* mve_vmovltq_sv16qi */

        case 1:
          if (!
#line 519 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3127; /* mve_vmovltq_sv8hi */

        default:
          return -1;
        }

    case 422:
      switch (pattern128 (x1, E_V16QImode, E_V8HImode))
        {
        case 0:
          if (!
#line 533 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3128; /* mve_vmovlbq_sv16qi */

        case 1:
          if (!
#line 533 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3130; /* mve_vmovlbq_sv8hi */

        default:
          return -1;
        }

    case 423:
      switch (pattern128 (x1, E_V16QImode, E_V8HImode))
        {
        case 0:
          if (!
#line 533 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3129; /* mve_vmovlbq_uv16qi */

        case 1:
          if (!
#line 533 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3131; /* mve_vmovlbq_uv8hi */

        default:
          return -1;
        }

    case 426:
      switch (pattern128 (x1, E_V8HFmode, E_V4SFmode))
        {
        case 0:
          if (!
#line 547 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3132; /* mve_vcvtpq_sv8hi */

        case 1:
          if (!
#line 547 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3134; /* mve_vcvtpq_sv4si */

        default:
          return -1;
        }

    case 427:
      switch (pattern128 (x1, E_V8HFmode, E_V4SFmode))
        {
        case 0:
          if (!
#line 547 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3133; /* mve_vcvtpq_uv8hi */

        case 1:
          if (!
#line 547 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3135; /* mve_vcvtpq_uv4si */

        default:
          return -1;
        }

    case 428:
      switch (pattern128 (x1, E_V8HFmode, E_V4SFmode))
        {
        case 0:
          if (!
#line 561 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3136; /* mve_vcvtnq_sv8hi */

        case 1:
          if (!
#line 561 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3138; /* mve_vcvtnq_sv4si */

        default:
          return -1;
        }

    case 429:
      switch (pattern128 (x1, E_V8HFmode, E_V4SFmode))
        {
        case 0:
          if (!
#line 561 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3137; /* mve_vcvtnq_uv8hi */

        case 1:
          if (!
#line 561 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3139; /* mve_vcvtnq_uv4si */

        default:
          return -1;
        }

    case 430:
      switch (pattern128 (x1, E_V8HFmode, E_V4SFmode))
        {
        case 0:
          if (!
#line 575 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3140; /* mve_vcvtmq_sv8hi */

        case 1:
          if (!
#line 575 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3142; /* mve_vcvtmq_sv4si */

        default:
          return -1;
        }

    case 431:
      switch (pattern128 (x1, E_V8HFmode, E_V4SFmode))
        {
        case 0:
          if (!
#line 575 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3141; /* mve_vcvtmq_uv8hi */

        case 1:
          if (!
#line 575 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3143; /* mve_vcvtmq_uv4si */

        default:
          return -1;
        }

    case 409:
      switch (pattern128 (x1, E_V8HFmode, E_V4SFmode))
        {
        case 0:
          if (!
#line 589 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3144; /* mve_vcvtaq_uv8hi */

        case 1:
          if (!
#line 589 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3146; /* mve_vcvtaq_uv4si */

        default:
          return -1;
        }

    case 408:
      switch (pattern128 (x1, E_V8HFmode, E_V4SFmode))
        {
        case 0:
          if (!
#line 589 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3145; /* mve_vcvtaq_sv8hi */

        case 1:
          if (!
#line 589 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3147; /* mve_vcvtaq_sv4si */

        default:
          return -1;
        }

    case 407:
      switch (pattern132 (x1))
        {
        case 0:
          if (!
#line 603 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3148; /* mve_vmvnq_n_uv8hi */

        case 1:
          if (!
#line 603 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3150; /* mve_vmvnq_n_uv4si */

        default:
          return -1;
        }

    case 406:
      switch (pattern132 (x1))
        {
        case 0:
          if (!
#line 603 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3149; /* mve_vmvnq_n_sv8hi */

        case 1:
          if (!
#line 603 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3151; /* mve_vmvnq_n_sv4si */

        default:
          return -1;
        }

    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 617 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3152; /* mve_vrev16q_uv16qi */

    case 403:
      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 617 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3153; /* mve_vrev16q_sv16qi */

    case 432:
      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 631 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3154; /* mve_vaddlvq_uv4si */

    case 405:
      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 631 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3155; /* mve_vaddlvq_sv4si */

    case 433:
      if (GET_MODE (x2) != E_HImode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!vpr_register_operand (operands[0], E_HImode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!s_register_operand (operands[1], E_SImode)
          || !
#line 645 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3156; /* mve_vctp8qhi */

    case 434:
      if (GET_MODE (x2) != E_HImode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!vpr_register_operand (operands[0], E_HImode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!s_register_operand (operands[1], E_SImode)
          || !
#line 645 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3157; /* mve_vctp16qhi */

    case 435:
      if (GET_MODE (x2) != E_HImode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!vpr_register_operand (operands[0], E_HImode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!s_register_operand (operands[1], E_SImode)
          || !
#line 645 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3158; /* mve_vctp32qhi */

    case 436:
      if (GET_MODE (x2) != E_HImode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!vpr_register_operand (operands[0], E_HImode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!s_register_operand (operands[1], E_SImode)
          || !
#line 645 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3159; /* mve_vctp64qhi */

    case 437:
      if (GET_MODE (x2) != E_HImode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!vpr_register_operand (operands[0], E_HImode))
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      operands[1] = x4;
      if (!vpr_register_operand (operands[1], E_HImode)
          || !
#line 659 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3160; /* mve_vpnothi */

    case 1001:
      switch (pattern133 (x1))
        {
        case 0:
          if (!
#line 7085 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4632; /* mve_vstrbq_sv16qi */

        case 1:
          if (!
#line 7085 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4634; /* mve_vstrbq_sv8hi */

        case 2:
          if (!
#line 7085 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4636; /* mve_vstrbq_sv4si */

        default:
          return -1;
        }

    case 1002:
      switch (pattern133 (x1))
        {
        case 0:
          if (!
#line 7085 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4633; /* mve_vstrbq_uv16qi */

        case 1:
          if (!
#line 7085 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4635; /* mve_vstrbq_uv8hi */

        case 2:
          if (!
#line 7085 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4637; /* mve_vstrbq_uv4si */

        default:
          return -1;
        }

    case 1005:
      switch (pattern134 (x1))
        {
        case 0:
          if (!
#line 7177 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4652; /* mve_vldrbq_sv16qi */

        case 1:
          if (!
#line 7177 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4654; /* mve_vldrbq_sv8hi */

        case 2:
          if (!
#line 7177 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4656; /* mve_vldrbq_sv4si */

        default:
          return -1;
        }

    case 1006:
      switch (pattern134 (x1))
        {
        case 0:
          if (!
#line 7177 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4653; /* mve_vldrbq_uv16qi */

        case 1:
          if (!
#line 7177 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4655; /* mve_vldrbq_uv8hi */

        case 2:
          if (!
#line 7177 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4657; /* mve_vldrbq_uv4si */

        default:
          return -1;
        }

    case 1012:
      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 7363 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4688; /* mve_vldrhq_fv8hf */

    case 1017:
      switch (pattern135 (x1))
        {
        case 0:
          if (!
#line 7478 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4705; /* mve_vldrhq_sv8hi */

        case 1:
          if (!
#line 7478 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4707; /* mve_vldrhq_sv4si */

        default:
          return -1;
        }

    case 1018:
      switch (pattern135 (x1))
        {
        case 0:
          if (!
#line 7478 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4706; /* mve_vldrhq_uv8hi */

        case 1:
          if (!
#line 7478 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4708; /* mve_vldrhq_uv4si */

        default:
          return -1;
        }

    case 1019:
      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 7543 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4714; /* mve_vldrwq_fv4sf */

    case 1020:
      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 7562 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4715; /* mve_vldrwq_sv4si */

    case 1021:
      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 7562 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4716; /* mve_vldrwq_uv4si */

    case 1037:
      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 8057 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4750; /* mve_vstrhq_fv8hf */

    case 1103:
      switch (pattern136 (x1))
        {
        case 0:
          if (!
#line 8237 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4772; /* mve_vstrhq_sv8hi */

        case 1:
          if (!
#line 8237 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4774; /* mve_vstrhq_sv4si */

        default:
          return -1;
        }

    case 1041:
      switch (pattern136 (x1))
        {
        case 0:
          if (!
#line 8237 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4773; /* mve_vstrhq_uv8hi */

        case 1:
          if (!
#line 8237 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4775; /* mve_vstrhq_uv4si */

        default:
          return -1;
        }

    case 1044:
      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 8256 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 4776; /* mve_vstrwq_fv4sf */

    case 1042:
      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 8315 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4780; /* mve_vstrwq_sv4si */

    case 1043:
      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 8315 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4781; /* mve_vstrwq_uv4si */

    case 119:
      if (pattern104 (x2, 101, E_SImode) != 0)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!register_operand (operands[0], E_SImode)
          || !
#line 9770 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 4859; /* get_fpscr_nzcvqc */

    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);
  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 3095 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 3133 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      *pnum_clobbers = 1;
      return 95; /* *ne_zeroextractsi_shifted */

    case REG:
    case SUBREG:
      switch (pattern272 (x2))
        {
        case 0:
          if (!
#line 826 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3204; /* mve_vcmpneq_v16qi */

        case 1:
          if (!
#line 840 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3228; /* mve_vcmpneq_n_v16qi */

        case 2:
          if (!
#line 826 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3212; /* mve_vcmpneq_v8hi */

        case 3:
          if (!
#line 840 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3236; /* mve_vcmpneq_n_v8hi */

        case 4:
          if (!
#line 1916 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3559; /* mve_vcmpneq_fv8hf */

        case 5:
          if (!
#line 1930 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3571; /* mve_vcmpneq_n_fv8hf */

        case 6:
          if (!
#line 826 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3220; /* mve_vcmpneq_v4si */

        case 7:
          if (!
#line 840 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3244; /* mve_vcmpneq_n_v4si */

        case 8:
          if (!
#line 1916 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3565; /* mve_vcmpneq_fv4sf */

        case 9:
          if (!
#line 1930 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3577; /* mve_vcmpneq_n_fv4sf */

        default:
          return -1;
        }

    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, 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)
          && pattern490 (x1) == 0)
        {
          x6 = XEXP (x2, 1);
          operands[4] = x6;
          if (arm_not_operand (operands[4], E_SImode)
              && 
#line 3161 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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
          || pattern490 (x1) != 0)
        return -1;
      x6 = XEXP (x2, 1);
      operands[3] = x6;
      if (!arm_not_operand (operands[3], E_SImode)
          || !
#line 3200 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 (pattern382 (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 306; /* *stack_protect_combined_test_insn */

    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, 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 960; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            {
              *pnum_clobbers = 1;
              return 961; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      *pnum_clobbers = 1;
      return 962; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 963; /* *tstsi3_cbranch */

    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;
  int res ATTRIBUTE_UNUSED;
  if (pnum_clobbers != NULL)
    {
      res = recog_238 (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_239 (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 9968 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
    return 333; /* *cond_move */
  if (!
#line 706 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
    return -1;
  return 1018; /* *thumb2_cond_move */
}

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;
  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 10768 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
    return -1;
  *pnum_clobbers = 1;
  return 348; /* *ifcompare_plus_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, 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_241 (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 10856 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          *pnum_clobbers = 1;
          return 352; /* *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 11255 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          *pnum_clobbers = 1;
          return 370; /* *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 10811 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          *pnum_clobbers = 1;
          return 350; /* *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 11022 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          *pnum_clobbers = 1;
          return 358; /* *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 11135 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          *pnum_clobbers = 1;
          return 364; /* *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 11323 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          *pnum_clobbers = 1;
          return 374; /* *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 11057 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          *pnum_clobbers = 1;
          return 360; /* *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 11221 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          *pnum_clobbers = 1;
          return 368; /* *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 11092 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          *pnum_clobbers = 1;
          return 362; /* *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 11180 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          *pnum_clobbers = 1;
          return 366; /* *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 11287 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      *pnum_clobbers = 1;
      return 372; /* *ifcompare_neg_move */

    default:
      return -1;
    }
}

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, 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 10784 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return 349; /* *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 10873 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 353; /* *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 11271 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 371; /* *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 10827 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 351; /* *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 11036 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return 359; /* *if_move_not */
          if (!arm_rhs_operand (operands[1], E_SImode)
              || !
#line 11715 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 377; /* *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 11151 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 365; /* *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 11337 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 375; /* *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 11071 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 361; /* *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 11237 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 369; /* *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 11108 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 363; /* *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 11198 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 367; /* *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 11301 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && !TARGET_COND_ARITH))
        return -1;
      return 373; /* *if_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, 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 10890 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      *pnum_clobbers = 1;
      return 354; /* *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 10955 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      *pnum_clobbers = 1;
      return 356; /* *ifcompare_move_arith */

    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, 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_242 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      if (cc_register (x4, E_VOIDmode))
        {
          res = recog_243 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      if (pnum_clobbers != NULL)
        {
          res = recog_244 (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 10930 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 355; /* *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 10997 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 357; /* *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-12.2.0-r0/gcc-12.2.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 966; /* *addsi3_cbranch_scratch */

    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;
  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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_COND_ARITH))
        return -1;
      return 1023; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_COND_ARITH))
        return -1;
      return 1024; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_COND_ARITH))
        return -1;
      return 1025; /* *thumb2_csneg */

    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, 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 7871 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 273; /* 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 7924 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 274; /* *arm_cond_branch_reversed */

        case RETURN:
          operands[0] = x3;
          operands[1] = x4;
          if (!
#line 8962 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM  && USE_RETURN_INSN (TRUE)))
            return -1;
          return 297; /* *cond_return_inverted */

        case SIMPLE_RETURN:
          operands[0] = x3;
          operands[1] = x4;
          if (!
#line 8962 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM  && use_simple_return_p ()))
            return -1;
          return 298; /* *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 8340 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
                return 279; /* *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 8467 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && TARGET_SOFT_FLOAT))
            return 283; /* *movsfcc_soft_insn */
          if (
#line 780 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_ARM && TARGET_HARD_FLOAT))
            return 761; /* *movsfcc_vfp */
          if (
#line 803 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && TARGET_VFP_BASE && !arm_restrict_it))
            return 762; /* *thumb2_movsfcc_vfp */
          if (!
#line 520 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && TARGET_SOFT_FLOAT && !TARGET_HAVE_MVE))
            return -1;
          return 1007; /* *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 8340 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
                return 280; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_ARM && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
            return 763; /* *movdfcc_vfp */
          if (!
#line 849 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && TARGET_VFP_BASE && TARGET_VFP_DOUBLE
   && !arm_restrict_it))
            return -1;
          return 764; /* *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 8371 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 281; /* *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 8403 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 282; /* *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 8940 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM   && USE_RETURN_INSN (TRUE)))
        return -1;
      return 295; /* *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 8940 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM   && use_simple_return_p ()))
        return -1;
      return 296; /* *cond_simple_return */

    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;
  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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
    return -1;
  return 1006; /* *thumb2_movsicc_insn */
}

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, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  switch (GET_CODE (x3))
    {
    case NE:
    case EQ:
      res = recog_240 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    default:
      break;
    }
  if (arm_comparison_operator (x3, E_VOIDmode))
    {
      res = recog_245 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  operands[1] = x3;
  if (arm_comparison_operation (operands[1], E_VOIDmode))
    {
      res = recog_246 (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_247 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  if (pnum_clobbers != NULL
      && pattern306 (x1) == 0
      && 
#line 10701 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
    {
      *pnum_clobbers = 1;
      return 347; /* movcond */
    }
  operands[3] = x3;
  if (arm_comparison_operator (operands[3], E_VOIDmode))
    {
      res = recog_248 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  if (pnum_clobbers != NULL
      && pattern306 (x1) == 0
      && 
#line 1012 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !TARGET_COND_ARITH))
    {
      *pnum_clobbers = 1;
      return 1026; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && TARGET_HAVE_CBZ))
            return 957; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                return 958; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            {
              *pnum_clobbers = 1;
              return 959; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return -1;
      *pnum_clobbers = 1;
      return 1047; /* *thumb2_cbz */

    case NE:
      if (!
#line 1491 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return -1;
      *pnum_clobbers = 1;
      return 1048; /* *thumb2_cbnz */

    default:
      return -1;
    }
}

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;
  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 3964 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                    return 113; /* *smax_0 */
                  break;

                case -1L:
                  if (
#line 3974 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                    return 114; /* *smax_m1 */
                  break;

                default:
                  break;
                }
            }
          break;

        case REG:
        case SUBREG:
          switch (pattern384 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 588; /* *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 827 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1340; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 589; /* *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 827 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1338; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 590; /* *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 827 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1336; /* *smaxv8qi3_neon */
              break;

            case 3:
              if (
#line 2070 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
                return 898; /* smaxsf3 */
              break;

            case 4:
              if ((
#line 2070 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
                return 899; /* smaxdf3 */
              break;

            case 5:
              if (
#line 827 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1337; /* *smaxv16qi3_neon */
              if (
#line 1150 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return 3326; /* mve_vmaxq_sv16qi */
              break;

            case 6:
              if (
#line 827 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1339; /* *smaxv8hi3_neon */
              if (
#line 1150 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return 3327; /* mve_vmaxq_sv8hi */
              break;

            case 7:
              if (
#line 827 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1341; /* *smaxv4si3_neon */
              if (
#line 1150 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return 3328; /* mve_vmaxq_sv4si */
              break;

            case 8:
              if (
#line 827 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1342; /* *smaxv2sf3_neon */
              break;

            case 9:
              if (
#line 827 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1343; /* *smaxv4sf3_neon */
              if (
#line 2048 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
                return 3599; /* mve_vmaxnmq_fv4sf */
              break;

            case 10:
              if (
#line 2048 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
                return 3598; /* mve_vmaxnmq_fv8hf */
              break;

            default:
              break;
            }
          break;

        default:
          break;
        }
      if (pnum_clobbers == NULL
          || pattern385 (x2) != 0
          || !
#line 3985 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      *pnum_clobbers = 1;
      return 115; /* *arm_smax_insn */

    case SMIN:
      switch (pattern307 (x2))
        {
        case 0:
          if (!
#line 4374 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 131; /* satsi_smax */

        case 1:
          if (!
#line 4400 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 134; /* *satsi_smax_shift */

        default:
          return -1;
        }

    case VEC_SELECT:
      switch (pattern308 (x2))
        {
        case 0:
          if (!
#line 1065 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1391; /* quad_halves_smaxv4si */

        case 1:
          if (!
#line 1078 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4SF_ARITH))
            return -1;
          return 1396; /* quad_halves_smaxv4sf */

        case 2:
          if (!
#line 1093 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1399; /* quad_halves_smaxv8hi */

        case 3:
          if (!
#line 1112 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1404; /* quad_halves_smaxv16qi */

        default:
          return -1;
        }

    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 (XWINT (x4, 0) == 0L
              && s_register_operand (operands[0], E_SImode)
              && GET_MODE (x2) == E_SImode
              && s_register_operand (operands[1], E_SImode)
              && 
#line 4024 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return 116; /* *smin_0 */
          break;

        case REG:
        case SUBREG:
          switch (pattern384 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 594; /* *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 815 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1332; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 595; /* *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 815 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1330; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 596; /* *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 815 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1328; /* *sminv8qi3_neon */
              break;

            case 3:
              if (
#line 2080 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
                return 900; /* sminsf3 */
              break;

            case 4:
              if ((
#line 2080 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
                return 901; /* smindf3 */
              break;

            case 5:
              if (
#line 815 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1329; /* *sminv16qi3_neon */
              if (
#line 1220 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return 3344; /* mve_vminq_sv16qi */
              break;

            case 6:
              if (
#line 815 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1331; /* *sminv8hi3_neon */
              if (
#line 1220 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return 3345; /* mve_vminq_sv8hi */
              break;

            case 7:
              if (
#line 815 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1333; /* *sminv4si3_neon */
              if (
#line 1220 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return 3346; /* mve_vminq_sv4si */
              break;

            case 8:
              if (
#line 815 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1334; /* *sminv2sf3_neon */
              break;

            case 9:
              if (
#line 815 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1335; /* *sminv4sf3_neon */
              if (
#line 2107 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
                return 3607; /* mve_vminnmq_fv4sf */
              break;

            case 10:
              if (
#line 2107 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
                return 3606; /* mve_vminnmq_fv8hf */
              break;

            default:
              break;
            }
          break;

        default:
          break;
        }
      if (pnum_clobbers == NULL
          || pattern385 (x2) != 0
          || !
#line 4035 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      *pnum_clobbers = 1;
      return 117; /* *arm_smin_insn */

    case SMAX:
      switch (pattern307 (x2))
        {
        case 0:
          if (!
#line 4374 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 129; /* satsi_smin */

        case 1:
          if (!
#line 4400 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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_shift */

        default:
          return -1;
        }

    case VEC_SELECT:
      switch (pattern308 (x2))
        {
        case 0:
          if (!
#line 1065 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1390; /* quad_halves_sminv4si */

        case 1:
          if (!
#line 1078 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4SF_ARITH))
            return -1;
          return 1395; /* quad_halves_sminv4sf */

        case 2:
          if (!
#line 1093 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1398; /* quad_halves_sminv8hi */

        case 3:
          if (!
#line 1112 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1403; /* quad_halves_sminv16qi */

        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, 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 369:
          switch (pattern492 (x2))
            {
            case 0:
              if (!(
#line 2838 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 153 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                return -1;
              return 1913; /* 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 2838 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 154 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                return 1917; /* 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 3728 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
                return -1;
              return 3968; /* mve_vcmlaqv8hf */

            case 2:
              if (!
#line 2838 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1921; /* 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 2838 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return 1925; /* 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 3728 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
                return -1;
              return 3972; /* mve_vcmlaqv4sf */

            default:
              return -1;
            }

        case 370:
          switch (pattern492 (x2))
            {
            case 0:
              if (!(
#line 2838 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 153 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                return -1;
              return 1914; /* 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 2838 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 154 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                return 1918; /* 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 3728 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
                return -1;
              return 3969; /* mve_vcmlaq_rot90v8hf */

            case 2:
              if (!
#line 2838 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1922; /* 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 2838 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return 1926; /* 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 3728 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
                return -1;
              return 3973; /* mve_vcmlaq_rot90v4sf */

            default:
              return -1;
            }

        case 371:
          switch (pattern492 (x2))
            {
            case 0:
              if (!(
#line 2838 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 153 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                return -1;
              return 1915; /* 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 2838 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 154 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                return 1919; /* 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 3728 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
                return -1;
              return 3970; /* mve_vcmlaq_rot180v8hf */

            case 2:
              if (!
#line 2838 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1923; /* 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 2838 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return 1927; /* 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 3728 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
                return -1;
              return 3974; /* mve_vcmlaq_rot180v4sf */

            default:
              return -1;
            }

        case 372:
          switch (pattern492 (x2))
            {
            case 0:
              if (!(
#line 2838 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 153 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                return -1;
              return 1916; /* 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 2838 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 154 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                return 1920; /* 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 3728 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
                return -1;
              return 3971; /* mve_vcmlaq_rot270v8hf */

            case 2:
              if (!
#line 2838 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1924; /* 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 2838 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return 1928; /* 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 3728 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
                return -1;
              return 3975; /* mve_vcmlaq_rot270v4sf */

            default:
              return -1;
            }

        case 361:
          switch (GET_MODE (operands[0]))
            {
            case E_V2SFmode:
              if (pattern518 (x2, E_V4BFmode, E_V2SFmode) != 0
                  || !
#line 6333 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
                return -1;
              return 2818; /* neon_vbfdotv2sf */

            case E_V4SFmode:
              if (pattern518 (x2, E_V8BFmode, E_V4SFmode) != 0
                  || !
#line 6333 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
                return -1;
              return 2819; /* neon_vbfdotv4sf */

            default:
              return -1;
            }

        case 385:
          if (pattern493 (x2) != 0
              || !
#line 6457 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
            return -1;
          return 2833; /* neon_vmmlav8bf */

        case 386:
          if (pattern493 (x2) != 0
              || !
#line 6468 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
            return -1;
          return 2834; /* neon_vfmabv8bf */

        case 387:
          if (pattern493 (x2) != 0
              || !
#line 6468 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
            return -1;
          return 2835; /* 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 369:
          switch (pattern519 (x2))
            {
            case 0:
              if (!(
#line 2850 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 153 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                return -1;
              return 1929; /* neon_vcmla_lane0v4hf */

            case 1:
              if (!
#line 2865 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1949; /* neon_vcmla_laneq0v4hf */

            case 2:
              if (!(
#line 2850 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 154 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                return -1;
              return 1933; /* neon_vcmla_lane0v8hf */

            case 3:
              if (!
#line 2880 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1953; /* neon_vcmlaq_lane0v8hf */

            case 4:
              if (!
#line 2850 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1937; /* neon_vcmla_lane0v2sf */

            case 5:
              if (!
#line 2865 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1945; /* neon_vcmla_laneq0v2sf */

            case 6:
              if (!
#line 2850 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1941; /* neon_vcmla_lane0v4sf */

            case 7:
              if (!
#line 2880 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1957; /* neon_vcmlaq_lane0v4sf */

            default:
              return -1;
            }

        case 370:
          switch (pattern519 (x2))
            {
            case 0:
              if (!(
#line 2850 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 153 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                return -1;
              return 1930; /* neon_vcmla_lane90v4hf */

            case 1:
              if (!
#line 2865 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1950; /* neon_vcmla_laneq90v4hf */

            case 2:
              if (!(
#line 2850 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 154 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                return -1;
              return 1934; /* neon_vcmla_lane90v8hf */

            case 3:
              if (!
#line 2880 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1954; /* neon_vcmlaq_lane90v8hf */

            case 4:
              if (!
#line 2850 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1938; /* neon_vcmla_lane90v2sf */

            case 5:
              if (!
#line 2865 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1946; /* neon_vcmla_laneq90v2sf */

            case 6:
              if (!
#line 2850 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1942; /* neon_vcmla_lane90v4sf */

            case 7:
              if (!
#line 2880 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1958; /* neon_vcmlaq_lane90v4sf */

            default:
              return -1;
            }

        case 371:
          switch (pattern519 (x2))
            {
            case 0:
              if (!(
#line 2850 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 153 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                return -1;
              return 1931; /* neon_vcmla_lane180v4hf */

            case 1:
              if (!
#line 2865 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1951; /* neon_vcmla_laneq180v4hf */

            case 2:
              if (!(
#line 2850 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 154 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                return -1;
              return 1935; /* neon_vcmla_lane180v8hf */

            case 3:
              if (!
#line 2880 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1955; /* neon_vcmlaq_lane180v8hf */

            case 4:
              if (!
#line 2850 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1939; /* neon_vcmla_lane180v2sf */

            case 5:
              if (!
#line 2865 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1947; /* neon_vcmla_laneq180v2sf */

            case 6:
              if (!
#line 2850 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1943; /* neon_vcmla_lane180v4sf */

            case 7:
              if (!
#line 2880 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1959; /* neon_vcmlaq_lane180v4sf */

            default:
              return -1;
            }

        case 372:
          switch (pattern519 (x2))
            {
            case 0:
              if (!(
#line 2850 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 153 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                return -1;
              return 1932; /* neon_vcmla_lane270v4hf */

            case 1:
              if (!
#line 2865 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1952; /* neon_vcmla_laneq270v4hf */

            case 2:
              if (!(
#line 2850 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 154 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                return -1;
              return 1936; /* neon_vcmla_lane270v8hf */

            case 3:
              if (!
#line 2880 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1956; /* neon_vcmlaq_lane270v8hf */

            case 4:
              if (!
#line 2850 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1940; /* neon_vcmla_lane270v2sf */

            case 5:
              if (!
#line 2865 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1948; /* neon_vcmla_laneq270v2sf */

            case 6:
              if (!
#line 2850 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1944; /* neon_vcmla_lane270v4sf */

            case 7:
              if (!
#line 2880 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                return -1;
              return 1960; /* neon_vcmlaq_lane270v4sf */

            default:
              return -1;
            }

        case 361:
          if (!immediate_operand (operands[4], E_SImode))
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case E_V2SFmode:
              switch (pattern561 (x2, E_V4BFmode, E_V2SFmode))
                {
                case 0:
                  if (!
#line 6346 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
                    return -1;
                  return 2820; /* neon_vbfdot_lanev4bfv2sf */

                case 1:
                  if (!
#line 6359 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
                    return -1;
                  return 2822; /* neon_vbfdot_lanev8bfv2sf */

                default:
                  return -1;
                }

            case E_V4SFmode:
              switch (pattern561 (x2, E_V8BFmode, E_V4SFmode))
                {
                case 0:
                  if (!
#line 6346 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
                    return -1;
                  return 2821; /* neon_vbfdot_lanev4bfv4sf */

                case 1:
                  if (!
#line 6359 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
                    return -1;
                  return 2823; /* neon_vbfdot_lanev8bfv4sf */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case 386:
          if (pattern520 (x2) != 0
              || !
#line 6480 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
            return -1;
          return 2836; /* neon_vfmab_lanev8bf */

        case 387:
          if (pattern520 (x2) != 0
              || !
#line 6480 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_BF16_SIMD))
            return -1;
          return 2837; /* neon_vfmat_lanev8bf */

        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, 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 929 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 537; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V2SI_ARITH))
            return -1;
          return 1136; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 538; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4HI_ARITH))
            return -1;
          return 1134; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 539; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V8QI_ARITH))
            return -1;
          return 1132; /* *addv8qi3_neon */

        case E_HFmode:
          if (pattern1 (x2, E_HFmode) != 0
              || !
#line 996 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 778; /* addhf3 */

        case E_SFmode:
          if (pattern1 (x2, E_SFmode) != 0
              || !
#line 1006 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
            return -1;
          return 779; /* *addsf3_vfp */

        case E_DFmode:
          if (pattern1 (x2, E_DFmode) != 0
              || !
#line 1016 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
            return -1;
          return 780; /* *adddf3_vfp */

        case E_DImode:
          if (pnum_clobbers == NULL
              || pattern383 (x2, E_DImode) != 0
              || !
#line 52 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return -1;
          *pnum_clobbers = 1;
          return 924; /* *thumb1_adddi3 */

        case E_V16QImode:
          if (pattern1 (x2, E_V16QImode) != 0)
            return -1;
          if (
#line 470 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V16QI_ARITH))
            return 1133; /* *addv16qi3_neon */
          if (!
#line 8923 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4812; /* mve_vaddqv16qi */

        case E_V8HImode:
          if (pattern1 (x2, E_V8HImode) != 0)
            return -1;
          if (
#line 470 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V8HI_ARITH))
            return 1135; /* *addv8hi3_neon */
          if (!
#line 8923 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4813; /* mve_vaddqv8hi */

        case E_V4SImode:
          if (pattern1 (x2, E_V4SImode) != 0)
            return -1;
          if (
#line 470 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4SI_ARITH))
            return 1137; /* *addv4si3_neon */
          if (!
#line 8923 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4814; /* mve_vaddqv4si */

        case E_V4HFmode:
          if (pattern1 (x2, E_V4HFmode) != 0
              || !
#line 470 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4HF_ARITH))
            return -1;
          return 1138; /* *addv4hf3_neon */

        case E_V8HFmode:
          if (pattern1 (x2, E_V8HFmode) != 0)
            return -1;
          if (
#line 470 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V8HF_ARITH))
            return 1139; /* *addv8hf3_neon */
          if (!
#line 8937 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4815; /* mve_vaddq_fv8hf */

        case E_V2SFmode:
          if (pattern1 (x2, E_V2SFmode) != 0
              || !
#line 470 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V2SF_ARITH))
            return -1;
          return 1140; /* *addv2sf3_neon */

        case E_V4SFmode:
          if (pattern1 (x2, E_V4SFmode) != 0)
            return -1;
          if (
#line 470 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4SF_ARITH))
            return 1141; /* *addv4sf3_neon */
          if (!
#line 8937 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 4816; /* mve_vaddq_fv4sf */

        case E_V2DImode:
          if (pattern1 (x2, E_V2DImode) != 0
              || !
#line 470 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V2DI_ARITH))
            return -1;
          return 1142; /* *addv2di3_neon */

        case E_QQmode:
          if (pattern1 (x2, E_QQmode) != 0
              || !
#line 25 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 2970; /* addqq3 */

        case E_HQmode:
          if (pattern1 (x2, E_HQmode) != 0
              || !
#line 25 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 2971; /* addhq3 */

        case E_SQmode:
          if (pattern1 (x2, E_SQmode) != 0
              || !
#line 25 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 2972; /* addsq3 */

        case E_UQQmode:
          if (pattern1 (x2, E_UQQmode) != 0
              || !
#line 25 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 2973; /* adduqq3 */

        case E_UHQmode:
          if (pattern1 (x2, E_UHQmode) != 0
              || !
#line 25 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 2974; /* adduhq3 */

        case E_USQmode:
          if (pattern1 (x2, E_USQmode) != 0
              || !
#line 25 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 2975; /* addusq3 */

        case E_HAmode:
          if (pattern1 (x2, E_HAmode) != 0
              || !
#line 25 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 2976; /* addha3 */

        case E_SAmode:
          if (pattern1 (x2, E_SAmode) != 0
              || !
#line 25 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 2977; /* addsa3 */

        case E_UHAmode:
          if (pattern1 (x2, E_UHAmode) != 0
              || !
#line 25 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 2978; /* adduha3 */

        case E_USAmode:
          if (pattern1 (x2, E_USAmode) != 0
              || !
#line 25 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 2979; /* addusa3 */

        case E_V4QQmode:
          if (pattern1 (x2, E_V4QQmode) != 0
              || !
#line 46 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_GE_BITS_READ))
            return -1;
          return 2980; /* *arm_addv4qq3 */

        case E_V2HQmode:
          if (pattern1 (x2, E_V2HQmode) != 0
              || !
#line 46 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_GE_BITS_READ))
            return -1;
          return 2981; /* *arm_addv2hq3 */

        case E_V2HAmode:
          if (pattern1 (x2, E_V2HAmode) != 0
              || !
#line 46 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_GE_BITS_READ))
            return -1;
          return 2982; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 650; /* 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 (pattern628 (x10))
                {
                case 0:
                  if (!
#line 1517 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                    return -1;
                  return 652; /* iwmmxt_tmiabb */

                case 1:
                  if (!
#line 1551 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                    return -1;
                  return 654; /* 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 (pattern628 (x10))
                {
                case 0:
                  if (!
#line 1534 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                    return -1;
                  return 653; /* iwmmxt_tmiatb */

                case 1:
                  if (!
#line 1570 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                    return -1;
                  return 655; /* iwmmxt_tmiatt */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case VEC_SELECT:
          if (pattern496 (x7) != 0)
            return -1;
          x8 = XEXP (x6, 0);
          if (pattern605 (x8) != 0)
            return -1;
          switch (pattern639 (x4))
            {
            case 0:
              if (!
#line 742 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 717; /* iwmmxt_wmiawbb */

            case 1:
              if (!
#line 755 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 718; /* iwmmxt_wmiawbt */

            case 2:
              if (!
#line 768 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 719; /* iwmmxt_wmiawtb */

            case 3:
              if (!
#line 781 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 720; /* 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
          || pattern471 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 651; /* 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 (pattern664 (x4))
            {
            case 0:
              if (!
#line 561 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 709; /* iwmmxt_wmiabb */

            case 1:
              if (!
#line 585 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 710; /* iwmmxt_wmiabt */

            case 2:
              if (!
#line 609 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 711; /* iwmmxt_wmiatb */

            case 3:
              if (!
#line 633 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 712; /* iwmmxt_wmiatt */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case UNSPEC:
      return recog_252 (x1, insn, pnum_clobbers);

    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;
  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 2264 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
                return -1;
              return 796; /* *mulsf3addhf_vfp */

            case E_SFmode:
              if (pattern433 (x2, E_SFmode) != 0
                  || !
#line 1211 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
                return -1;
              return 797; /* *mulsf3addsf_vfp */

            case E_DFmode:
              if (pattern433 (x2, E_DFmode) != 0
                  || !
#line 1222 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
                return -1;
              return 798; /* *muldf3adddf_vfp */

            case E_V8QImode:
              if (pattern433 (x2, E_V8QImode) != 0
                  || !
#line 539 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V8QI_ARITH))
                return -1;
              return 1162; /* mulv8qi3addv8qi_neon */

            case E_V16QImode:
              if (pattern433 (x2, E_V16QImode) != 0
                  || !
#line 539 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V16QI_ARITH))
                return -1;
              return 1163; /* mulv16qi3addv16qi_neon */

            case E_V4HImode:
              if (pattern433 (x2, E_V4HImode) != 0
                  || !
#line 539 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4HI_ARITH))
                return -1;
              return 1164; /* mulv4hi3addv4hi_neon */

            case E_V8HImode:
              if (pattern433 (x2, E_V8HImode) != 0
                  || !
#line 539 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V8HI_ARITH))
                return -1;
              return 1165; /* mulv8hi3addv8hi_neon */

            case E_V2SImode:
              if (pattern433 (x2, E_V2SImode) != 0
                  || !
#line 539 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V2SI_ARITH))
                return -1;
              return 1166; /* mulv2si3addv2si_neon */

            case E_V4SImode:
              if (pattern433 (x2, E_V4SImode) != 0
                  || !
#line 539 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4SI_ARITH))
                return -1;
              return 1167; /* mulv4si3addv4si_neon */

            case E_V2SFmode:
              if (pattern433 (x2, E_V2SFmode) != 0
                  || !
#line 539 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V2SF_ARITH))
                return -1;
              return 1168; /* mulv2sf3addv2sf_neon */

            case E_V4SFmode:
              if (pattern433 (x2, E_V4SFmode) != 0
                  || !
#line 539 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4SF_ARITH))
                return -1;
              return 1169; /* mulv4sf3addv4sf_neon */

            case E_V8HFmode:
              if (pattern433 (x2, E_V8HFmode) != 0
                  || !
#line 552 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V8HF_ARITH))
                return -1;
              return 1170; /* mulv8hf3addv8hf_neon */

            case E_V4HFmode:
              if (pattern433 (x2, E_V4HFmode) != 0
                  || !
#line 552 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4HF_ARITH))
                return -1;
              return 1171; /* 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 9580 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 315; /* *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 (pattern562 (x2, E_SImode) != 0
                  || !
#line 2588 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY && !ARM_Q_BIT_READ))
                return -1;
              return 77; /* *arm_maddhisi4 */

            case E_DImode:
              if (pattern562 (x2, E_DImode) != 0
                  || !
#line 2732 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 2748 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 2765 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 2635 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 2684 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 (pattern336 (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 (pattern604 (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 (pattern646 (x2))
        {
        case 0:
          switch (pattern657 (x2, SIGN_EXTEND))
            {
            case 0:
              if (!
#line 1454 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 648; /* iwmmxt_wmadds */

            case 1:
              if (!
#line 194 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 684; /* iwmmxt_wmaddsx */

            default:
              return -1;
            }

        case 1:
          switch (pattern657 (x2, ZERO_EXTEND))
            {
            case 0:
              if (!
#line 1473 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 649; /* iwmmxt_wmaddu */

            case 1:
              if (!
#line 213 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 685; /* iwmmxt_wmaddux */

            default:
              return -1;
            }

        default:
          return -1;
        }

    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;
  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_253 (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 1323 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return 21; /* addsi3_carryin */
              if (pnum_clobbers != NULL
                  && arm_rhs_operand (operands[2], E_SImode)
                  && 
#line 1390 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return -1;
          return 972; /* 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 1354 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 1375 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 1734 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 1714 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 1341 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 22; /* add0si3_carryin */

    case MULT:
      return recog_254 (x1, insn, pnum_clobbers);

    case ZERO_EXTEND:
      switch (pattern311 (x2))
        {
        case 0:
          if (!
#line 5608 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
            return -1;
          return 174; /* *arm_zero_extendhisi2addsi */

        case 1:
          if (!
#line 5678 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
            return -1;
          return 177; /* *arm_zero_extendqisi2addsi */

        case 2:
          if (!
#line 1047 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1386; /* widen_usumv8qi3 */

        case 3:
          if (!
#line 1047 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1387; /* widen_usumv4hi3 */

        case 4:
          if (!
#line 1047 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1388; /* widen_usumv2si3 */

        case 5:
          if (vect_par_constant_low (operands[2], E_V16QImode)
              && 
#line 1020 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1380; /* vec_sel_widen_usum_lov16qiv8qi3 */
          if (!vect_par_constant_high (operands[2], E_V16QImode)
              || !
#line 1035 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1383; /* vec_sel_widen_usum_hiv16qiv8qi3 */

        case 6:
          if (vect_par_constant_low (operands[2], E_V8HImode)
              && 
#line 1020 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1381; /* vec_sel_widen_usum_lov8hiv4hi3 */
          if (!vect_par_constant_high (operands[2], E_V8HImode)
              || !
#line 1035 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1384; /* vec_sel_widen_usum_hiv8hiv4hi3 */

        case 7:
          if (vect_par_constant_low (operands[2], E_V4SImode)
              && 
#line 1020 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1382; /* vec_sel_widen_usum_lov4siv2si3 */
          if (!vect_par_constant_high (operands[2], E_V4SImode)
              || !
#line 1035 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1385; /* vec_sel_widen_usum_hiv4siv2si3 */

        default:
          return -1;
        }

    case SIGN_EXTEND:
      switch (pattern311 (x2))
        {
        case 0:
          if (!
#line 5849 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
            return -1;
          return 181; /* *arm_extendhisi2addsi */

        case 1:
          if (!
#line 5943 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
            return -1;
          return 185; /* *arm_extendqisi2addsi */

        case 2:
          if (!
#line 978 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1377; /* widen_ssumv8qi3 */

        case 3:
          if (!
#line 978 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1378; /* widen_ssumv4hi3 */

        case 4:
          if (!
#line 978 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1379; /* widen_ssumv2si3 */

        case 5:
          if (vect_par_constant_low (operands[2], E_V16QImode)
              && 
#line 950 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1371; /* vec_sel_widen_ssum_lov16qiv8qi3 */
          if (!vect_par_constant_high (operands[2], E_V16QImode)
              || !
#line 965 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1374; /* vec_sel_widen_ssum_hiv16qiv8qi3 */

        case 6:
          if (vect_par_constant_low (operands[2], E_V8HImode)
              && 
#line 950 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1372; /* vec_sel_widen_ssum_lov8hiv4hi3 */
          if (!vect_par_constant_high (operands[2], E_V8HImode)
              || !
#line 965 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1375; /* vec_sel_widen_ssum_hiv8hiv4hi3 */

        case 7:
          if (vect_par_constant_low (operands[2], E_V4SImode)
              && 
#line 950 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1373; /* vec_sel_widen_ssum_lov4siv2si3 */
          if (!vect_par_constant_high (operands[2], E_V4SImode)
              || !
#line 965 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1376; /* vec_sel_widen_ssum_hiv4siv2si3 */

        default:
          return -1;
        }

    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      operands[2] = x3;
      if (pattern337 (x2) != 0
          || !
#line 9594 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && GET_CODE (operands[2]) != MULT))
        return -1;
      return 320; /* *add_shiftsi */

    case VEC_SELECT:
      switch (pattern308 (x2))
        {
        case 0:
          if (!
#line 1065 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1389; /* quad_halves_plusv4si */

        case 1:
          if (!
#line 1078 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4SF_ARITH))
            return -1;
          return 1394; /* quad_halves_plusv4sf */

        case 2:
          if (!
#line 1093 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1397; /* quad_halves_plusv8hi */

        case 3:
          if (!
#line 1112 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1402; /* 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 (pattern494 (x2, E_V8QImode) != 0
              || !
#line 2519 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1754; /* neon_vtst_combinev8qi */

        case E_V16QImode:
          if (pattern494 (x2, E_V16QImode) != 0
              || !
#line 2519 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1755; /* neon_vtst_combinev16qi */

        case E_V4HImode:
          if (pattern494 (x2, E_V4HImode) != 0
              || !
#line 2519 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1756; /* neon_vtst_combinev4hi */

        case E_V8HImode:
          if (pattern494 (x2, E_V8HImode) != 0
              || !
#line 2519 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1757; /* neon_vtst_combinev8hi */

        case E_V2SImode:
          if (pattern494 (x2, E_V2SImode) != 0
              || !
#line 2519 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1758; /* neon_vtst_combinev2si */

        case E_V4SImode:
          if (pattern494 (x2, E_V4SImode) != 0
              || !
#line 2519 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1759; /* neon_vtst_combinev4si */

        default:
          return -1;
        }

    case UNSPEC:
      switch (XVECLEN (x3, 0))
        {
        case 2:
          switch (XINT (x3, 1))
            {
            case 148:
              switch (pattern387 (x2))
                {
                case 0:
                  if (!
#line 2570 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 1782; /* neon_vabasv8qi */

                case 1:
                  if (!
#line 2570 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 1784; /* neon_vabasv16qi */

                case 2:
                  if (!
#line 2570 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 1786; /* neon_vabasv4hi */

                case 3:
                  if (!
#line 2570 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 1788; /* neon_vabasv8hi */

                case 4:
                  if (!
#line 2570 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 1790; /* neon_vabasv2si */

                case 5:
                  if (!
#line 2570 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 1792; /* neon_vabasv4si */

                default:
                  return -1;
                }

            case 149:
              switch (pattern387 (x2))
                {
                case 0:
                  if (!
#line 2570 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 1783; /* neon_vabauv8qi */

                case 1:
                  if (!
#line 2570 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 1785; /* neon_vabauv16qi */

                case 2:
                  if (!
#line 2570 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 1787; /* neon_vabauv4hi */

                case 3:
                  if (!
#line 2570 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 1789; /* neon_vabauv8hi */

                case 4:
                  if (!
#line 2570 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 1791; /* neon_vabauv2si */

                case 5:
                  if (!
#line 2570 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 1793; /* neon_vabauv4si */

                default:
                  return -1;
                }

            case 150:
              switch (pattern389 (x2))
                {
                case 0:
                  if (!
#line 2581 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 1794; /* neon_vabalsv8qi */

                case 1:
                  if (!
#line 2581 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 1796; /* neon_vabalsv4hi */

                case 2:
                  if (!
#line 2581 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 1798; /* neon_vabalsv2si */

                default:
                  return -1;
                }

            case 151:
              switch (pattern389 (x2))
                {
                case 0:
                  if (!
#line 2581 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 1795; /* neon_vabaluv8qi */

                case 1:
                  if (!
#line 2581 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 1797; /* neon_vabaluv4hi */

                case 2:
                  if (!
#line 2581 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 1799; /* neon_vabaluv2si */

                default:
                  return -1;
                }

            case 361:
              switch (pattern391 (x2))
                {
                case 0:
                  if (!
#line 2935 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_DOTPROD))
                    return -1;
                  return 1961; /* sdot_prodv8qi */

                case 1:
                  if (!
#line 2935 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_DOTPROD))
                    return -1;
                  return 1963; /* sdot_prodv16qi */

                default:
                  return -1;
                }

            case 362:
              switch (pattern391 (x2))
                {
                case 0:
                  if (!
#line 2935 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_DOTPROD))
                    return -1;
                  return 1962; /* udot_prodv8qi */

                case 1:
                  if (!
#line 2935 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_DOTPROD))
                    return -1;
                  return 1964; /* udot_prodv16qi */

                default:
                  return -1;
                }

            case 363:
              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 (pattern495 (x2, E_V2SImode, E_V8QImode) != 0
                      || !
#line 2960 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_I8MM))
                    return -1;
                  return 1965; /* neon_usdotv8qi */

                case E_V4SImode:
                  if (pattern495 (x2, E_V4SImode, E_V16QImode) != 0
                      || !
#line 2960 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_I8MM))
                    return -1;
                  return 1966; /* neon_usdotv16qi */

                default:
                  return -1;
                }

            case 380:
              if (pattern392 (x2) != 0
                  || !
#line 6321 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_I8MM))
                return -1;
              return 2815; /* neon_smmlav16qi */

            case 381:
              if (pattern392 (x2) != 0
                  || !
#line 6321 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_I8MM))
                return -1;
              return 2816; /* neon_ummlav16qi */

            case 382:
              if (pattern392 (x2) != 0
                  || !
#line 6321 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_I8MM))
                return -1;
              return 2817; /* 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 361:
              switch (GET_MODE (operands[0]))
                {
                case E_V2SImode:
                  switch (pattern542 (x2, E_V2SImode, E_V8QImode))
                    {
                    case 0:
                      if (!
#line 2975 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_DOTPROD))
                        return -1;
                      return 1967; /* neon_sdot_lanev8qi */

                    case 1:
                      if (!
#line 2990 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_DOTPROD))
                        return -1;
                      return 1971; /* neon_sdot_laneqv8qi */

                    default:
                      return -1;
                    }

                case E_V4SImode:
                  switch (pattern542 (x2, E_V4SImode, E_V16QImode))
                    {
                    case 0:
                      if (!
#line 2975 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_DOTPROD))
                        return -1;
                      return 1969; /* neon_sdot_lanev16qi */

                    case 1:
                      if (!
#line 2990 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_DOTPROD))
                        return -1;
                      return 1973; /* neon_sdot_laneqv16qi */

                    default:
                      return -1;
                    }

                default:
                  return -1;
                }

            case 362:
              switch (GET_MODE (operands[0]))
                {
                case E_V2SImode:
                  switch (pattern542 (x2, E_V2SImode, E_V8QImode))
                    {
                    case 0:
                      if (!
#line 2975 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_DOTPROD))
                        return -1;
                      return 1968; /* neon_udot_lanev8qi */

                    case 1:
                      if (!
#line 2990 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_DOTPROD))
                        return -1;
                      return 1972; /* neon_udot_laneqv8qi */

                    default:
                      return -1;
                    }

                case E_V4SImode:
                  switch (pattern542 (x2, E_V4SImode, E_V16QImode))
                    {
                    case 0:
                      if (!
#line 2975 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_DOTPROD))
                        return -1;
                      return 1970; /* neon_udot_lanev16qi */

                    case 1:
                      if (!
#line 2990 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_DOTPROD))
                        return -1;
                      return 1974; /* neon_udot_laneqv16qi */

                    default:
                      return -1;
                    }

                default:
                  return -1;
                }

            case 363:
              switch (GET_MODE (operands[0]))
                {
                case E_V2SImode:
                  switch (pattern542 (x2, E_V2SImode, E_V8QImode))
                    {
                    case 0:
                      if (!
#line 3018 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_I8MM))
                        return -1;
                      return 1975; /* neon_usdot_lanev8qi */

                    case 1:
                      if (!
#line 3033 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_I8MM))
                        return -1;
                      return 1979; /* neon_usdot_laneqv8qi */

                    default:
                      return -1;
                    }

                case E_V4SImode:
                  switch (pattern542 (x2, E_V4SImode, E_V16QImode))
                    {
                    case 0:
                      if (!
#line 3018 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_I8MM))
                        return -1;
                      return 1977; /* neon_usdot_lanev16qi */

                    case 1:
                      if (!
#line 3033 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_I8MM))
                        return -1;
                      return 1981; /* neon_usdot_laneqv16qi */

                    default:
                      return -1;
                    }

                default:
                  return -1;
                }

            case 364:
              switch (GET_MODE (operands[0]))
                {
                case E_V2SImode:
                  switch (pattern542 (x2, E_V2SImode, E_V8QImode))
                    {
                    case 0:
                      if (!
#line 3018 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_I8MM))
                        return -1;
                      return 1976; /* neon_sudot_lanev8qi */

                    case 1:
                      if (!
#line 3033 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_I8MM))
                        return -1;
                      return 1980; /* neon_sudot_laneqv8qi */

                    default:
                      return -1;
                    }

                case E_V4SImode:
                  switch (pattern542 (x2, E_V4SImode, E_V16QImode))
                    {
                    case 0:
                      if (!
#line 3018 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_I8MM))
                        return -1;
                      return 1978; /* neon_sudot_lanev16qi */

                    case 1:
                      if (!
#line 3033 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_I8MM))
                        return -1;
                      return 1982; /* neon_sudot_laneqv16qi */

                    default:
                      return -1;
                    }

                default:
                  return -1;
                }

            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;
  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 2277 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch_thumb2))
            return -1;
          return 58; /* *mls */

        case E_HFmode:
          if (pattern467 (x2, E_HFmode) != 0
              || !
#line 1268 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 802; /* *mulhf3neghfaddhf_vfp */

        case E_SFmode:
          if (pattern467 (x2, E_SFmode) != 0
              || !
#line 1279 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
            return -1;
          return 803; /* *mulsf3negsfaddsf_vfp */

        case E_DFmode:
          if (pattern467 (x2, E_DFmode) != 0
              || !
#line 1290 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
            return -1;
          return 804; /* *fmuldf3negdfadddf_vfp */

        case E_V8QImode:
          if (pattern467 (x2, E_V8QImode) != 0
              || !
#line 562 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V8QI_ARITH))
            return -1;
          return 1172; /* mulv8qi3negv8qiaddv8qi_neon */

        case E_V16QImode:
          if (pattern467 (x2, E_V16QImode) != 0
              || !
#line 562 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V16QI_ARITH))
            return -1;
          return 1173; /* mulv16qi3negv16qiaddv16qi_neon */

        case E_V4HImode:
          if (pattern467 (x2, E_V4HImode) != 0
              || !
#line 562 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4HI_ARITH))
            return -1;
          return 1174; /* mulv4hi3negv4hiaddv4hi_neon */

        case E_V8HImode:
          if (pattern467 (x2, E_V8HImode) != 0
              || !
#line 562 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V8HI_ARITH))
            return -1;
          return 1175; /* mulv8hi3negv8hiaddv8hi_neon */

        case E_V2SImode:
          if (pattern467 (x2, E_V2SImode) != 0
              || !
#line 562 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V2SI_ARITH))
            return -1;
          return 1176; /* mulv2si3negv2siaddv2si_neon */

        case E_V4SImode:
          if (pattern467 (x2, E_V4SImode) != 0
              || !
#line 562 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4SI_ARITH))
            return -1;
          return 1177; /* mulv4si3negv4siaddv4si_neon */

        case E_V2SFmode:
          if (pattern467 (x2, E_V2SFmode) != 0
              || !
#line 562 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V2SF_ARITH))
            return -1;
          return 1178; /* mulv2sf3negv2sfaddv2sf_neon */

        case E_V4SFmode:
          if (pattern467 (x2, E_V4SFmode) != 0
              || !
#line 562 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4SF_ARITH))
            return -1;
          return 1179; /* 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
          || pattern496 (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 (pattern605 (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 (pattern639 (x3))
        {
        case 0:
          if (!
#line 794 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 721; /* iwmmxt_wmiawbbn */

        case 1:
          if (!
#line 807 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 722; /* iwmmxt_wmiawbtn */

        case 2:
          if (!
#line 820 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 723; /* iwmmxt_wmiawtbn */

        case 3:
          if (!
#line 833 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 724; /* iwmmxt_wmiawttn */

        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, 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 1802 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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)
          || pattern466 (x2) != 0)
        return -1;
      if (
#line 10030 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
        {
          *pnum_clobbers = 1;
          return 335; /* *cond_sub */
        }
      if (!
#line 868 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return -1;
      *pnum_clobbers = 1;
      return 1021; /* *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 2005 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 546; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V2SI_ARITH))
            return -1;
          return 1147; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 547; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4HI_ARITH))
            return -1;
          return 1145; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 548; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V8QI_ARITH))
            return -1;
          return 1143; /* *subv8qi3_neon */

        case E_HFmode:
          if (pattern1 (x2, E_HFmode) != 0
              || !
#line 1028 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 781; /* subhf3 */

        case E_SFmode:
          if (pattern1 (x2, E_SFmode) != 0
              || !
#line 1038 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
            return -1;
          return 782; /* *subsf3_vfp */

        case E_DFmode:
          if (pattern1 (x2, E_DFmode) != 0
              || !
#line 1048 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
            return -1;
          return 783; /* *subdf3_vfp */

        case E_DImode:
          if (pnum_clobbers == NULL
              || pattern383 (x2, E_DImode) != 0
              || !
#line 132 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return -1;
          *pnum_clobbers = 1;
          return 926; /* *thumb_subdi3 */

        case E_V16QImode:
          if (pattern1 (x2, E_V16QImode) != 0)
            return -1;
          if (
#line 482 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V16QI_ARITH))
            return 1144; /* *subv16qi3_neon */
          if (!
#line 1799 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3533; /* mve_vsubqv16qi */

        case E_V8HImode:
          if (pattern1 (x2, E_V8HImode) != 0)
            return -1;
          if (
#line 482 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V8HI_ARITH))
            return 1146; /* *subv8hi3_neon */
          if (!
#line 1799 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3534; /* mve_vsubqv8hi */

        case E_V4SImode:
          if (pattern1 (x2, E_V4SImode) != 0)
            return -1;
          if (
#line 482 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4SI_ARITH))
            return 1148; /* *subv4si3_neon */
          if (!
#line 1799 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3535; /* mve_vsubqv4si */

        case E_V4HFmode:
          if (pattern1 (x2, E_V4HFmode) != 0
              || !
#line 482 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4HF_ARITH))
            return -1;
          return 1149; /* *subv4hf3_neon */

        case E_V8HFmode:
          if (pattern1 (x2, E_V8HFmode) != 0)
            return -1;
          if (
#line 482 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V8HF_ARITH))
            return 1150; /* *subv8hf3_neon */
          if (!
#line 2493 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3671; /* mve_vsubq_fv8hf */

        case E_V2SFmode:
          if (pattern1 (x2, E_V2SFmode) != 0
              || !
#line 482 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V2SF_ARITH))
            return -1;
          return 1151; /* *subv2sf3_neon */

        case E_V4SFmode:
          if (pattern1 (x2, E_V4SFmode) != 0)
            return -1;
          if (
#line 482 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4SF_ARITH))
            return 1152; /* *subv4sf3_neon */
          if (!
#line 2493 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3672; /* mve_vsubq_fv4sf */

        case E_V2DImode:
          if (pattern1 (x2, E_V2DImode) != 0
              || !
#line 482 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V2DI_ARITH))
            return -1;
          return 1153; /* *subv2di3_neon */

        case E_QQmode:
          if (pattern1 (x2, E_QQmode) != 0
              || !
#line 84 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 2997; /* subqq3 */

        case E_HQmode:
          if (pattern1 (x2, E_HQmode) != 0
              || !
#line 84 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 2998; /* subhq3 */

        case E_SQmode:
          if (pattern1 (x2, E_SQmode) != 0
              || !
#line 84 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 2999; /* subsq3 */

        case E_UQQmode:
          if (pattern1 (x2, E_UQQmode) != 0
              || !
#line 84 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 3000; /* subuqq3 */

        case E_UHQmode:
          if (pattern1 (x2, E_UHQmode) != 0
              || !
#line 84 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 3001; /* subuhq3 */

        case E_USQmode:
          if (pattern1 (x2, E_USQmode) != 0
              || !
#line 84 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 3002; /* subusq3 */

        case E_HAmode:
          if (pattern1 (x2, E_HAmode) != 0
              || !
#line 84 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 3003; /* subha3 */

        case E_SAmode:
          if (pattern1 (x2, E_SAmode) != 0
              || !
#line 84 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 3004; /* subsa3 */

        case E_UHAmode:
          if (pattern1 (x2, E_UHAmode) != 0
              || !
#line 84 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 3005; /* subuha3 */

        case E_USAmode:
          if (pattern1 (x2, E_USAmode) != 0
              || !
#line 84 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 3006; /* subusa3 */

        case E_V4QQmode:
          if (pattern1 (x2, E_V4QQmode) != 0
              || !
#line 105 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_GE_BITS_READ))
            return -1;
          return 3007; /* *arm_subv4qq3 */

        case E_V2HQmode:
          if (pattern1 (x2, E_V2HQmode) != 0
              || !
#line 105 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_GE_BITS_READ))
            return -1;
          return 3008; /* *arm_subv2hq3 */

        case E_V2HAmode:
          if (pattern1 (x2, E_V2HAmode) != 0
              || !
#line 105 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_GE_BITS_READ))
            return -1;
          return 3009; /* *arm_subv2ha3 */

        default:
          return -1;
        }

    case MULT:
    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      if (GET_CODE (x4) == MULT)
        {
          res = recog_256 (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 9661 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 327; /* *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)
          || pattern466 (x2) != 0
          || !
#line 4198 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 122; /* *minmax_arithsi_non_canon */

    case PLUS:
      if (pattern393 (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 (pattern563 (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
          || pattern567 (x6, E_HImode) != 0
          || !register_operand (operands[0], E_DImode)
          || GET_MODE (x2) != E_DImode
          || !register_operand (operands[1], E_DImode))
        return -1;
      switch (pattern664 (x4))
        {
        case 0:
          if (!
#line 657 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 713; /* iwmmxt_wmiabbn */

        case 1:
          if (!
#line 681 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 714; /* iwmmxt_wmiabtn */

        case 2:
          if (!
#line 705 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 715; /* iwmmxt_wmiatbn */

        case 3:
          if (!
#line 729 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 716; /* iwmmxt_wmiattn */

        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, 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 1682 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 1816 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 1833 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 1851 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 1866 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 1699 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 1792 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 39; /* *subsi3_carryin_const */

    case CONST_INT:
    case REG:
    case SUBREG:
      return recog_257 (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 5108 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 166; /* 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 9580 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 316; /* *rsb_multsi */

            case REG:
            case SUBREG:
              switch (GET_MODE (operands[0]))
                {
                case E_HFmode:
                  if (pattern497 (x2, E_HFmode) != 0
                      || !
#line 1234 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
                    return -1;
                  return 799; /* *mulhf3subhf_vfp */

                case E_SFmode:
                  if (pattern497 (x2, E_SFmode) != 0
                      || !
#line 1245 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
                    return -1;
                  return 800; /* *mulsf3subsf_vfp */

                case E_DFmode:
                  if (pattern497 (x2, E_DFmode) != 0
                      || !
#line 1256 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
                    return -1;
                  return 801; /* *muldf3subdf_vfp */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case VEC_SELECT:
          if (pattern336 (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 (pattern604 (x6, E_V2SImode, VEC_SELECT, MULT) != 0)
            return -1;
          x9 = XEXP (x6, 0);
          x15 = XEXP (x9, 1);
          if (pattern625 (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 (pattern646 (x2))
            {
            case 0:
              if (pattern658 (x2, SIGN_EXTEND) != 0
                  || !
#line 232 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 686; /* iwmmxt_wmaddsn */

            case 1:
              if (pattern658 (x2, ZERO_EXTEND) != 0
                  || !
#line 251 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 687; /* 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 (pattern468 (x2, E_HFmode) != 0
                  || !
#line 1304 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
                return -1;
              return 805; /* *mulhf3neghfsubhf_vfp */

            case E_SFmode:
              if (pattern468 (x2, E_SFmode) != 0
                  || !
#line 1316 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
                return -1;
              return 806; /* *mulsf3negsfsubsf_vfp */

            case E_DFmode:
              if (pattern468 (x2, E_DFmode) != 0
                  || !
#line 1328 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
                return -1;
              return 807; /* *muldf3negdfsubdf_vfp */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      operands[2] = x3;
      if (pattern337 (x2) != 0
          || !
#line 9594 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && GET_CODE (operands[2]) != MULT))
        return -1;
      return 321; /* *rsb_shiftsi */

    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;
  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 3008 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 90; /* *arm_andsi3_insn */

            case E_DImode:
              if (pattern383 (x2, E_DImode) != 0
                  || !
#line 83 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 520; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 528; /* *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 685 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1231; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 529; /* *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 685 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1229; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 530; /* *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 685 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1227; /* andv8qi3_neon */

            case E_V16QImode:
              if (pattern434 (x2, E_V16QImode) != 0)
                return -1;
              if (
#line 685 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1228; /* andv16qi3_neon */
              if (!
#line 922 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 3269; /* mve_vandq_uv16qi */

            case E_V8HImode:
              if (pattern434 (x2, E_V8HImode) != 0)
                return -1;
              if (
#line 685 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1230; /* andv8hi3_neon */
              if (!
#line 922 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 3270; /* mve_vandq_uv8hi */

            case E_V4SImode:
              if (pattern434 (x2, E_V4SImode) != 0)
                return -1;
              if (
#line 685 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1232; /* andv4si3_neon */
              if (!
#line 922 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 3271; /* mve_vandq_uv4si */

            case E_V4HFmode:
              if (pattern434 (x2, E_V4HFmode) != 0
                  || !
#line 685 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1233; /* 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 685 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1234; /* andv8hf3_neon */
              if (!s_register_operand (operands[2], E_V8HFmode)
                  || !
#line 1858 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
                return -1;
              return 3542; /* mve_vandq_fv8hf */

            case E_V2SFmode:
              if (pattern434 (x2, E_V2SFmode) != 0
                  || !
#line 685 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1235; /* 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 685 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1236; /* andv4sf3_neon */
              if (!s_register_operand (operands[2], E_V4SFmode)
                  || !
#line 1858 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
                return -1;
              return 3543; /* mve_vandq_fv4sf */

            case E_V2DImode:
              if (pattern434 (x2, E_V2DImode) != 0
                  || !
#line 685 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1237; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 521; /* 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 3502 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                        return 100; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                return -1;
              return 931; /* thumb1_bicsi3 */

            case E_V8QImode:
              if (pattern394 (x2, E_V8QImode) != 0
                  || !
#line 711 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1249; /* bicv8qi3_neon */

            case E_V16QImode:
              if (pattern394 (x2, E_V16QImode) != 0)
                return -1;
              if (
#line 711 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1250; /* bicv16qi3_neon */
              if (!
#line 946 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 3272; /* mve_vbicq_uv16qi */

            case E_V4HImode:
              if (pattern394 (x2, E_V4HImode) != 0
                  || !
#line 711 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1251; /* bicv4hi3_neon */

            case E_V8HImode:
              if (pattern394 (x2, E_V8HImode) != 0)
                return -1;
              if (
#line 711 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1252; /* bicv8hi3_neon */
              if (!
#line 946 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 3273; /* mve_vbicq_uv8hi */

            case E_V2SImode:
              if (pattern394 (x2, E_V2SImode) != 0
                  || !
#line 711 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1253; /* bicv2si3_neon */

            case E_V4SImode:
              if (pattern394 (x2, E_V4SImode) != 0)
                return -1;
              if (
#line 711 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1254; /* bicv4si3_neon */
              if (!
#line 946 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 3274; /* mve_vbicq_uv4si */

            case E_V4HFmode:
              if (pattern394 (x2, E_V4HFmode) != 0
                  || !
#line 711 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1255; /* bicv4hf3_neon */

            case E_V8HFmode:
              if (pattern395 (x2, E_V8HFmode) != 0)
                return -1;
              x4 = XEXP (x2, 1);
              operands[1] = x4;
              operands[2] = x6;
              if (
#line 711 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1256; /* bicv8hf3_neon */
              operands[2] = x4;
              operands[1] = x6;
              if (!
#line 1872 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
                return -1;
              return 3544; /* mve_vbicq_fv8hf */

            case E_V2SFmode:
              if (pattern394 (x2, E_V2SFmode) != 0
                  || !
#line 711 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1257; /* bicv2sf3_neon */

            case E_V4SFmode:
              if (pattern395 (x2, E_V4SFmode) != 0)
                return -1;
              x4 = XEXP (x2, 1);
              operands[1] = x4;
              operands[2] = x6;
              if (
#line 711 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1258; /* bicv4sf3_neon */
              operands[2] = x4;
              operands[1] = x6;
              if (!
#line 1872 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
                return -1;
              return 3545; /* mve_vbicq_fv4sf */

            case E_V2DImode:
              if (pattern394 (x2, E_V2DImode) != 0
                  || !
#line 711 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1259; /* 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 3514 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 101; /* 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 3807 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 112; /* *andsi_iorsi3_notsi */

    case MULT:
      if (pattern312 (x2) != 0
          || !
#line 9580 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 319; /* *and_multsi */

    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      operands[2] = x3;
      if (pattern337 (x2) != 0
          || !
#line 9594 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && GET_CODE (operands[2]) != MULT))
        return -1;
      return 324; /* *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 (pattern338 (x2) == 0
          && 
#line 9709 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
        return 330; /* *and_scc */
      if (pnum_clobbers == NULL
          || pattern339 (x2) != 0)
        return -1;
      if (
#line 10450 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 342; /* *and_scc_scc */
        }
      if (!
#line 10518 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 344; /* *and_scc_scc_nodom */

    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;
  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 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 3634 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 106; /* *iorsi3_insn */

        case E_DImode:
          if (pattern383 (x2, E_DImode) != 0
              || !
#line 61 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 518; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 531; /* *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 663 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1220; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 532; /* *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 663 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1218; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 533; /* *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 663 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1216; /* iorv8qi3_neon */

        case E_V16QImode:
          if (pattern411 (x2, E_V16QImode) != 0)
            return -1;
          if (
#line 663 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1217; /* iorv16qi3_neon */
          if (!
#line 1433 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3407; /* mve_vorrq_sv16qi */

        case E_V8HImode:
          if (pattern411 (x2, E_V8HImode) != 0)
            return -1;
          if (
#line 663 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1219; /* iorv8hi3_neon */
          if (!
#line 1433 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3408; /* mve_vorrq_sv8hi */

        case E_V4SImode:
          if (pattern411 (x2, E_V4SImode) != 0)
            return -1;
          if (
#line 663 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1221; /* iorv4si3_neon */
          if (!
#line 1433 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3409; /* mve_vorrq_sv4si */

        case E_V4HFmode:
          if (pattern411 (x2, E_V4HFmode) != 0
              || !
#line 663 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1222; /* 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 663 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1223; /* iorv8hf3_neon */
          if (!s_register_operand (operands[2], E_V8HFmode)
              || !
#line 2269 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3634; /* mve_vorrq_fv8hf */

        case E_V2SFmode:
          if (pattern411 (x2, E_V2SFmode) != 0
              || !
#line 663 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1224; /* 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 663 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1225; /* iorv4sf3_neon */
          if (!s_register_operand (operands[2], E_V4SFmode)
              || !
#line 2269 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3635; /* mve_vorrq_fv4sf */

        case E_V2DImode:
          if (pattern411 (x2, E_V2DImode) != 0
              || !
#line 663 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1226; /* iorv2di3_neon */

        default:
          return -1;
        }

    case MULT:
      if (pattern312 (x2) != 0
          || !
#line 9580 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 317; /* *orr_multsi */

    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      operands[2] = x3;
      if (pattern337 (x2) == 0
          && 
#line 9594 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && GET_CODE (operands[2]) != MULT))
        return 322; /* *orr_shiftsi */
      if (GET_CODE (x3) != ASHIFT
          || GET_MODE (x3) != E_DImode)
        return -1;
      x5 = XEXP (x3, 1);
      if (GET_CODE (x5) != MINUS
          || GET_MODE (x5) != E_SImode)
        return -1;
      x6 = XEXP (x5, 0);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 64])
        return -1;
      x7 = XEXP (x5, 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;
      x4 = XEXP (x2, 1);
      if (GET_CODE (x4) != LSHIFTRT
          || GET_MODE (x4) != E_DImode)
        return -1;
      x9 = XEXP (x4, 0);
      if (GET_CODE (x9) != ASHIFT
          || GET_MODE (x9) != E_DImode)
        return -1;
      x10 = XEXP (x9, 1);
      if (GET_CODE (x10) != MULT
          || GET_MODE (x10) != E_SImode)
        return -1;
      x11 = XEXP (x10, 1);
      if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
        return -1;
      x12 = XEXP (x4, 1);
      if (GET_CODE (x12) != MULT
          || GET_MODE (x12) != E_SImode)
        return -1;
      x13 = XEXP (x12, 1);
      if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 8]
          || !register_operand (operands[0], E_DImode)
          || GET_MODE (x2) != E_DImode)
        return -1;
      x14 = XEXP (x3, 0);
      operands[2] = x14;
      if (!register_operand (operands[2], E_DImode))
        return -1;
      x15 = XEXP (x7, 0);
      operands[3] = x15;
      if (!immediate_operand (operands[3], E_SImode))
        return -1;
      x16 = XEXP (x9, 0);
      operands[1] = x16;
      if (!register_operand (operands[1], E_DImode))
        return -1;
      x17 = XEXP (x10, 0);
      if (!rtx_equal_p (x17, operands[3]))
        return -1;
      x18 = XEXP (x12, 0);
      if (!rtx_equal_p (x18, operands[3])
          || !
#line 858 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 725; /* 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 (pattern338 (x2) == 0
          && 
#line 9738 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
        return 331; /* *ior_scc */
      if (pnum_clobbers == NULL
          || pattern339 (x2) != 0
          || !
#line 10388 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 340; /* *ior_scc_scc */

    case AND:
      if (GET_MODE (x3) != E_SImode)
        return -1;
      x4 = XEXP (x2, 1);
      if (GET_CODE (x4) != AND
          || GET_MODE (x4) != E_SImode
          || !register_operand (operands[0], E_SImode)
          || GET_MODE (x2) != E_SImode)
        return -1;
      x14 = XEXP (x3, 0);
      if (GET_MODE (x14) != E_SImode)
        return -1;
      x5 = XEXP (x3, 1);
      if (!const_int_operand (x5, E_SImode))
        return -1;
      x9 = XEXP (x4, 0);
      if (GET_MODE (x9) != E_SImode)
        return -1;
      x12 = XEXP (x4, 1);
      if (!const_int_operand (x12, E_SImode))
        return -1;
      switch (GET_CODE (x14))
        {
        case ASHIFT:
          if (pattern579 (x2, LSHIFTRT) != 0)
            return -1;
          operands[3] = x5;
          operands[2] = x12;
          x16 = XEXP (x9, 0);
          if (!rtx_equal_p (x16, operands[1])
              || !
#line 12486 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 410; /* arm_rev16si2 */

        case LSHIFTRT:
          if (pattern579 (x2, ASHIFT) != 0)
            return -1;
          operands[2] = x5;
          operands[3] = x12;
          x16 = XEXP (x9, 0);
          if (!rtx_equal_p (x16, operands[1])
              || !
#line 12503 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 411; /* arm_rev16si2_alt */

        default:
          return -1;
        }

    case NOT:
      x4 = XEXP (x2, 1);
      operands[1] = x4;
      x14 = XEXP (x3, 0);
      switch (GET_CODE (x14))
        {
        case REG:
        case SUBREG:
          operands[2] = x14;
          switch (GET_MODE (operands[0]))
            {
            case E_SImode:
              if (pattern435 (x2, E_SImode) != 0
                  || !
#line 1534 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
                return -1;
              return 1051; /* *orsi_notsi_si */

            case E_V8QImode:
              if (pattern435 (x2, E_V8QImode) != 0
                  || !
#line 702 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1238; /* ornv8qi3_neon */

            case E_V16QImode:
              if (pattern435 (x2, E_V16QImode) != 0)
                return -1;
              if (
#line 702 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1239; /* ornv16qi3_neon */
              if (!
#line 1406 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 3404; /* mve_vornq_sv16qi */

            case E_V4HImode:
              if (pattern435 (x2, E_V4HImode) != 0
                  || !
#line 702 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1240; /* ornv4hi3_neon */

            case E_V8HImode:
              if (pattern435 (x2, E_V8HImode) != 0)
                return -1;
              if (
#line 702 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1241; /* ornv8hi3_neon */
              if (!
#line 1406 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 3405; /* mve_vornq_sv8hi */

            case E_V2SImode:
              if (pattern435 (x2, E_V2SImode) != 0
                  || !
#line 702 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1242; /* ornv2si3_neon */

            case E_V4SImode:
              if (pattern435 (x2, E_V4SImode) != 0)
                return -1;
              if (
#line 702 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1243; /* ornv4si3_neon */
              if (!
#line 1406 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 3406; /* mve_vornq_sv4si */

            case E_V4HFmode:
              if (pattern435 (x2, E_V4HFmode) != 0
                  || !
#line 702 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1244; /* ornv4hf3_neon */

            case E_V8HFmode:
              if (pattern435 (x2, E_V8HFmode) != 0)
                return -1;
              if (
#line 702 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1245; /* ornv8hf3_neon */
              if (!
#line 2255 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
                return -1;
              return 3632; /* mve_vornq_fv8hf */

            case E_V2SFmode:
              if (pattern435 (x2, E_V2SFmode) != 0
                  || !
#line 702 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1246; /* ornv2sf3_neon */

            case E_V4SFmode:
              if (pattern435 (x2, E_V4SFmode) != 0)
                return -1;
              if (
#line 702 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1247; /* ornv4sf3_neon */
              if (!
#line 2255 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
                return -1;
              return 3633; /* mve_vornq_fv4sf */

            case E_V2DImode:
              if (pattern435 (x2, E_V2DImode) != 0
                  || !
#line 702 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1248; /* ornv2di3_neon */

            default:
              return -1;
            }

        case MULT:
        case ASHIFT:
        case ROTATE:
        case ASHIFTRT:
        case LSHIFTRT:
        case ROTATERT:
          operands[4] = x14;
          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;
          x19 = XEXP (x14, 0);
          operands[2] = x19;
          if (!s_register_operand (operands[2], E_SImode))
            return -1;
          x20 = XEXP (x14, 1);
          operands[3] = x20;
          if (!const_int_operand (operands[3], E_SImode)
              || !s_register_operand (operands[1], E_SImode)
              || !
#line 1546 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
            return -1;
          return 1052; /* *orsi_not_shiftsi_si */

        default:
          return -1;
        }

    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;
  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 3740 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 109; /* *arm_xorsi3 */

        case E_DImode:
          if (pattern383 (x2, E_DImode) != 0
              || !
#line 72 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 519; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 534; /* *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 720 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1264; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 535; /* *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 720 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1262; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 536; /* *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 720 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1260; /* xorv8qi3_neon */

        case E_V16QImode:
          if (pattern1 (x2, E_V16QImode) != 0)
            return -1;
          if (
#line 720 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1261; /* xorv16qi3_neon */
          if (!
#line 1008 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3287; /* mve_veorq_uv16qi */

        case E_V8HImode:
          if (pattern1 (x2, E_V8HImode) != 0)
            return -1;
          if (
#line 720 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1263; /* xorv8hi3_neon */
          if (!
#line 1008 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3288; /* mve_veorq_uv8hi */

        case E_V4SImode:
          if (pattern1 (x2, E_V4SImode) != 0)
            return -1;
          if (
#line 720 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1265; /* xorv4si3_neon */
          if (!
#line 1008 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3289; /* mve_veorq_uv4si */

        case E_V4HFmode:
          if (pattern1 (x2, E_V4HFmode) != 0
              || !
#line 720 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1266; /* xorv4hf3_neon */

        case E_V8HFmode:
          if (pattern1 (x2, E_V8HFmode) != 0)
            return -1;
          if (
#line 720 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1267; /* xorv8hf3_neon */
          if (!
#line 2004 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3592; /* mve_veorq_fv8hf */

        case E_V2SFmode:
          if (pattern1 (x2, E_V2SFmode) != 0
              || !
#line 720 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1268; /* xorv2sf3_neon */

        case E_V4SFmode:
          if (pattern1 (x2, E_V4SFmode) != 0)
            return -1;
          if (
#line 720 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1269; /* xorv4sf3_neon */
          if (!
#line 2004 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3593; /* mve_veorq_fv4sf */

        case E_V2DImode:
          if (pattern1 (x2, E_V2DImode) != 0
              || !
#line 720 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1270; /* xorv2di3_neon */

        default:
          return -1;
        }

    case MULT:
      if (pattern312 (x2) != 0
          || !
#line 9580 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 318; /* *eor_multsi */

    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      operands[2] = x3;
      if (pattern337 (x2) != 0
          || !
#line 9594 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && GET_CODE (operands[2]) != MULT))
        return -1;
      return 323; /* *eor_shiftsi */

    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, 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 4153 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && !arm_eliminable_register (operands[1]) && !arm_restrict_it))
        return -1;
      *pnum_clobbers = 1;
      return 121; /* *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 10004 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      *pnum_clobbers = 1;
      return 334; /* *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 11366 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && adjacent_mem_locations (operands[2], operands[3])))
        return -1;
      *pnum_clobbers = 1;
      return 376; /* *arith_adjacentmem */

    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;
  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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 925; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 927; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return -1;
          return 930; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
            return -1;
          return 1015; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return -1;
          return 932; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !arm_restrict_it))
            return 1016; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_restrict_it))
            return -1;
          return 1017; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 933; /* *thumb1_xorsi3_insn */

    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);
  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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !arm_restrict_it))
        return -1;
      *pnum_clobbers = 1;
      return 1019; /* *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-12.2.0-r0/gcc-12.2.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 1035; /* *thumb2_alusi3_short */

    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;
  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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 574; /* iwmmxt_textrmsb */
          break;

        case E_HImode:
          if (register_operand (operands[1], E_V4HImode)
              && 
#line 758 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 576; /* iwmmxt_textrmsh */
          break;

        default:
          break;
        }
    }
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  switch (pattern498 (x3))
    {
    case 0:
      if (!
#line 3169 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2013; /* neon_vget_lanev8qi_sext_internal */

    case 1:
      if (
#line 3207 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return 2021; /* neon_vget_lanev16qi_sext_internal */
      if (!
#line 10083 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 4900; /* *mve_vec_extract_sext_internalv16qi */

    case 2:
      if (!
#line 3169 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2014; /* neon_vget_lanev4hi_sext_internal */

    case 3:
      if (
#line 3207 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return 2022; /* neon_vget_lanev8hi_sext_internal */
      if (!
#line 10083 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 4901; /* *mve_vec_extract_sext_internalv8hi */

    case 4:
      if (!
#line 3169 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2015; /* neon_vget_lanev2si_sext_internal */

    case 5:
      if (
#line 3207 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return 2024; /* neon_vget_lanev4si_sext_internal */
      if (!
#line 10083 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 4902; /* *mve_vec_extract_sext_internalv4si */

    case 6:
      if (!
#line 3169 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2016; /* neon_vget_lanev2sf_sext_internal */

    case 7:
      if (!
#line 3207 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2025; /* neon_vget_lanev4sf_sext_internal */

    case 8:
      if (!
#line 3207 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2023; /* neon_vget_lanev8hf_sext_internal */

    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 725 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 573; /* iwmmxt_textrmub */
          break;

        case E_HImode:
          if (register_operand (operands[1], E_V4HImode)
              && 
#line 747 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 575; /* iwmmxt_textrmuh */
          break;

        default:
          break;
        }
    }
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  switch (pattern498 (x3))
    {
    case 0:
      if (!
#line 3188 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2017; /* neon_vget_lanev8qi_zext_internal */

    case 1:
      if (
#line 3234 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return 2026; /* neon_vget_lanev16qi_zext_internal */
      if (!
#line 10102 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 4903; /* *mve_vec_extract_zext_internalv16qi */

    case 2:
      if (!
#line 3188 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2018; /* neon_vget_lanev4hi_zext_internal */

    case 3:
      if (
#line 3234 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return 2027; /* neon_vget_lanev8hi_zext_internal */
      if (!
#line 10102 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 4904; /* *mve_vec_extract_zext_internalv8hi */

    case 4:
      if (!
#line 3188 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2019; /* neon_vget_lanev2si_zext_internal */

    case 5:
      if (
#line 3234 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return 2029; /* neon_vget_lanev4si_zext_internal */
      if (!
#line 10102 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 4905; /* *mve_vec_extract_zext_internalv4si */

    case 6:
      if (!
#line 3188 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2020; /* neon_vget_lanev2sf_zext_internal */

    case 7:
      if (!
#line 3234 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2030; /* neon_vget_lanev4sf_zext_internal */

    case 8:
      if (!
#line 3234 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2028; /* neon_vget_lanev8hf_zext_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);
  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 8005 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return 276; /* *negscc_borrow */
      if (GET_CODE (x3) == GEU)
        {
          switch (pattern318 (x2))
            {
            case 0:
              if (
#line 2412 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1711; /* neon_vcgeuv8qi */
              break;

            case 1:
              if (
#line 2412 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1713; /* neon_vcgeuv16qi */
              break;

            case 2:
              if (
#line 2412 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1715; /* neon_vcgeuv4hi */
              break;

            case 3:
              if (
#line 2412 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1717; /* neon_vcgeuv8hi */
              break;

            case 4:
              if (
#line 2412 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1719; /* neon_vcgeuv2si */
              break;

            case 5:
              if (
#line 2412 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1721; /* neon_vcgeuv4si */
              break;

            default:
              break;
            }
        }
      break;

    case EQ:
      switch (pattern314 (x2))
        {
        case 0:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V8QImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1640; /* neon_vceqv8qi_insn */
          break;

        case 1:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V16QImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1645; /* neon_vceqv16qi_insn */
          break;

        case 2:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4HImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1650; /* neon_vceqv4hi_insn */
          break;

        case 3:
          if (
#line 2368 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST
  && !(GET_MODE_CLASS (V4HFmode) == MODE_VECTOR_FLOAT
  && !flag_unsafe_math_optimizations)))
            return 1695; /* neon_vceqv4hf_fp16insn */
          break;

        case 4:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V8HImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1655; /* neon_vceqv8hi_insn */
          break;

        case 5:
          if (
#line 2368 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST
  && !(GET_MODE_CLASS (V8HFmode) == MODE_VECTOR_FLOAT
  && !flag_unsafe_math_optimizations)))
            return 1690; /* neon_vceqv8hf_fp16insn */
          break;

        case 6:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V2SImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1660; /* neon_vceqv2si_insn */
          break;

        case 7:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V2SFmode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1670; /* neon_vceqv2sf_insn */
          break;

        case 8:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4SImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1665; /* neon_vceqv4si_insn */
          break;

        case 9:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4SFmode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1675; /* neon_vceqv4sf_insn */
          break;

        default:
          break;
        }
      break;

    case GT:
      switch (pattern316 (x2))
        {
        case 0:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V8QImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1641; /* neon_vcgtv8qi_insn */
          break;

        case 1:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V16QImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1646; /* neon_vcgtv16qi_insn */
          break;

        case 2:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4HImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1651; /* neon_vcgtv4hi_insn */
          break;

        case 3:
          if (
#line 2368 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST
  && !(GET_MODE_CLASS (V4HFmode) == MODE_VECTOR_FLOAT
  && !flag_unsafe_math_optimizations)))
            return 1696; /* neon_vcgtv4hf_fp16insn */
          break;

        case 4:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V8HImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1656; /* neon_vcgtv8hi_insn */
          break;

        case 5:
          if (
#line 2368 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST
  && !(GET_MODE_CLASS (V8HFmode) == MODE_VECTOR_FLOAT
  && !flag_unsafe_math_optimizations)))
            return 1691; /* neon_vcgtv8hf_fp16insn */
          break;

        case 6:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V2SImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1661; /* neon_vcgtv2si_insn */
          break;

        case 7:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V2SFmode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1671; /* neon_vcgtv2sf_insn */
          break;

        case 8:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4SImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1666; /* neon_vcgtv4si_insn */
          break;

        case 9:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4SFmode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1676; /* neon_vcgtv4sf_insn */
          break;

        case 10:
          if (
#line 2442 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && flag_unsafe_math_optimizations))
            return 1722; /* neon_vcagtv2sf_insn */
          break;

        case 11:
          if (
#line 2442 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && flag_unsafe_math_optimizations))
            return 1726; /* neon_vcagtv4sf_insn */
          break;

        case 12:
          if (
#line 2482 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST && flag_unsafe_math_optimizations))
            return 1738; /* neon_vcagtv8hf_fp16insn */
          break;

        case 13:
          if (
#line 2482 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST && flag_unsafe_math_optimizations))
            return 1742; /* neon_vcagtv4hf_fp16insn */
          break;

        default:
          break;
        }
      break;

    case GE:
      switch (pattern316 (x2))
        {
        case 0:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V8QImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1642; /* neon_vcgev8qi_insn */
          break;

        case 1:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V16QImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1647; /* neon_vcgev16qi_insn */
          break;

        case 2:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4HImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1652; /* neon_vcgev4hi_insn */
          break;

        case 3:
          if (
#line 2368 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST
  && !(GET_MODE_CLASS (V4HFmode) == MODE_VECTOR_FLOAT
  && !flag_unsafe_math_optimizations)))
            return 1697; /* neon_vcgev4hf_fp16insn */
          break;

        case 4:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V8HImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1657; /* neon_vcgev8hi_insn */
          break;

        case 5:
          if (
#line 2368 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST
  && !(GET_MODE_CLASS (V8HFmode) == MODE_VECTOR_FLOAT
  && !flag_unsafe_math_optimizations)))
            return 1692; /* neon_vcgev8hf_fp16insn */
          break;

        case 6:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V2SImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1662; /* neon_vcgev2si_insn */
          break;

        case 7:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V2SFmode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1672; /* neon_vcgev2sf_insn */
          break;

        case 8:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4SImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1667; /* neon_vcgev4si_insn */
          break;

        case 9:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4SFmode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1677; /* neon_vcgev4sf_insn */
          break;

        case 10:
          if (
#line 2442 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && flag_unsafe_math_optimizations))
            return 1723; /* neon_vcagev2sf_insn */
          break;

        case 11:
          if (
#line 2442 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && flag_unsafe_math_optimizations))
            return 1727; /* neon_vcagev4sf_insn */
          break;

        case 12:
          if (
#line 2482 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST && flag_unsafe_math_optimizations))
            return 1739; /* neon_vcagev8hf_fp16insn */
          break;

        case 13:
          if (
#line 2482 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST && flag_unsafe_math_optimizations))
            return 1743; /* neon_vcagev4hf_fp16insn */
          break;

        default:
          break;
        }
      break;

    case LE:
      switch (pattern316 (x2))
        {
        case 0:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V8QImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1643; /* neon_vclev8qi_insn */
          break;

        case 1:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V16QImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1648; /* neon_vclev16qi_insn */
          break;

        case 2:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4HImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1653; /* neon_vclev4hi_insn */
          break;

        case 3:
          if (
#line 2368 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST
  && !(GET_MODE_CLASS (V4HFmode) == MODE_VECTOR_FLOAT
  && !flag_unsafe_math_optimizations)))
            return 1698; /* neon_vclev4hf_fp16insn */
          break;

        case 4:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V8HImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1658; /* neon_vclev8hi_insn */
          break;

        case 5:
          if (
#line 2368 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST
  && !(GET_MODE_CLASS (V8HFmode) == MODE_VECTOR_FLOAT
  && !flag_unsafe_math_optimizations)))
            return 1693; /* neon_vclev8hf_fp16insn */
          break;

        case 6:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V2SImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1663; /* neon_vclev2si_insn */
          break;

        case 7:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V2SFmode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1673; /* neon_vclev2sf_insn */
          break;

        case 8:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4SImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1668; /* neon_vclev4si_insn */
          break;

        case 9:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4SFmode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1678; /* neon_vclev4sf_insn */
          break;

        case 10:
          if (
#line 2442 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && flag_unsafe_math_optimizations))
            return 1725; /* neon_vcalev2sf_insn */
          break;

        case 11:
          if (
#line 2442 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && flag_unsafe_math_optimizations))
            return 1729; /* neon_vcalev4sf_insn */
          break;

        case 12:
          if (
#line 2482 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST && flag_unsafe_math_optimizations))
            return 1741; /* neon_vcalev8hf_fp16insn */
          break;

        case 13:
          if (
#line 2482 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST && flag_unsafe_math_optimizations))
            return 1745; /* neon_vcalev4hf_fp16insn */
          break;

        default:
          break;
        }
      break;

    case LT:
      switch (pattern316 (x2))
        {
        case 0:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V8QImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1644; /* neon_vcltv8qi_insn */
          break;

        case 1:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V16QImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1649; /* neon_vcltv16qi_insn */
          break;

        case 2:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4HImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1654; /* neon_vcltv4hi_insn */
          break;

        case 3:
          if (
#line 2368 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST
  && !(GET_MODE_CLASS (V4HFmode) == MODE_VECTOR_FLOAT
  && !flag_unsafe_math_optimizations)))
            return 1699; /* neon_vcltv4hf_fp16insn */
          break;

        case 4:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V8HImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1659; /* neon_vcltv8hi_insn */
          break;

        case 5:
          if (
#line 2368 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST
  && !(GET_MODE_CLASS (V8HFmode) == MODE_VECTOR_FLOAT
  && !flag_unsafe_math_optimizations)))
            return 1694; /* neon_vcltv8hf_fp16insn */
          break;

        case 6:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V2SImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1664; /* neon_vcltv2si_insn */
          break;

        case 7:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V2SFmode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1674; /* neon_vcltv2sf_insn */
          break;

        case 8:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4SImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1669; /* neon_vcltv4si_insn */
          break;

        case 9:
          if (
#line 2302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4SFmode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
            return 1679; /* neon_vcltv4sf_insn */
          break;

        case 10:
          if (
#line 2442 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && flag_unsafe_math_optimizations))
            return 1724; /* neon_vcaltv2sf_insn */
          break;

        case 11:
          if (
#line 2442 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && flag_unsafe_math_optimizations))
            return 1728; /* neon_vcaltv4sf_insn */
          break;

        case 12:
          if (
#line 2482 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST && flag_unsafe_math_optimizations))
            return 1740; /* neon_vcaltv8hf_fp16insn */
          break;

        case 13:
          if (
#line 2482 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST && flag_unsafe_math_optimizations))
            return 1744; /* neon_vcaltv4hf_fp16insn */
          break;

        default:
          break;
        }
      break;

    case GTU:
      switch (pattern318 (x2))
        {
        case 0:
          if (
#line 2412 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1710; /* neon_vcgtuv8qi */
          break;

        case 1:
          if (
#line 2412 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1712; /* neon_vcgtuv16qi */
          break;

        case 2:
          if (
#line 2412 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1714; /* neon_vcgtuv4hi */
          break;

        case 3:
          if (
#line 2412 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1716; /* neon_vcgtuv8hi */
          break;

        case 4:
          if (
#line 2412 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1718; /* neon_vcgtuv2si */
          break;

        case 5:
          if (
#line 2412 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1720; /* 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 8016 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && !arm_borrow_operation (operands[1], SImode)))
            return 277; /* *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 10586 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                {
                  *pnum_clobbers = 1;
                  return 345; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return 970; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2
   && !arm_restrict_it
   && !arm_borrow_operation (operands[1], SImode)))
                return 1002; /* *thumb2_mov_negscc */
              if (low_register_operand (operands[0], E_SImode)
                  && 
#line 365 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2
   && arm_restrict_it
   && !arm_borrow_operation (operands[1], SImode)))
                return 1003; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !TARGET_COND_ARITH))
    return -1;
  *pnum_clobbers = 1;
  return 1022; /* *thumb2_negscc */
}

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, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  switch (GET_CODE (x2))
    {
    case ZERO_EXTRACT:
      if (GET_MODE (x2) != E_SImode)
        return -1;
      x3 = XEXP (x2, 0);
      operands[0] = x3;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x4 = XEXP (x2, 1);
      operands[1] = x4;
      if (!const_int_M_operand (operands[1], E_SImode))
        return -1;
      x5 = XEXP (x2, 2);
      operands[2] = x5;
      if (!const_int_M_operand (operands[2], E_SImode))
        return -1;
      x6 = XEXP (x1, 1);
      operands[3] = x6;
      if (!s_register_operand (operands[3], E_SImode)
          || !
#line 3491 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(arm_arch_thumb2))
        return -1;
      return 99; /* insv_t2 */

    case REG:
    case SUBREG:
    case MEM:
      operands[0] = x2;
      if (!nonimmediate_soft_df_operand (operands[0], E_DFmode))
        return -1;
      x6 = XEXP (x1, 1);
      operands[1] = x6;
      if (!soft_df_operand (operands[1], E_DFmode)
          || !
#line 7524 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 -1;
      return 267; /* *movdf_soft_insn */

    case PC:
      x6 = XEXP (x1, 1);
      operands[0] = x6;
      if (s_register_operand (operands[0], E_SImode)
          && 
#line 9523 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
        return 311; /* *arm_indirect_jump */
      if (memory_operand (operands[0], E_SImode)
          && 
#line 9532 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
        return 312; /* *load_indirect_jump */
      if (!register_operand (operands[0], E_SImode))
        return -1;
      if (
#line 1954 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return 983; /* *thumb1_indirect_jump */
      if (!
#line 604 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return -1;
      return 1014; /* *thumb2_indirect_jump */

    default:
      return -1;
    }
}

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 (pattern319 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 563; /* iwmmxt_clrv8qi */

    case 4:
      if (pattern319 (x2, E_V4HImode) != 0
          || !s_register_operand (operands[0], E_V4HImode)
          || !
#line 584 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 564; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 565; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
    return 663; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 664; /* iwmmxt_walignr0 */

    case 97:
      if (!
#line 1686 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 665; /* iwmmxt_walignr1 */

    case 98:
      if (!
#line 1701 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 666; /* iwmmxt_walignr2 */

    case 99:
      if (!
#line 1716 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 667; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1
   && (   register_operand (operands[0], DImode)
       || register_operand (operands[1], DImode))))
        return 948; /* *thumb1_movdi_insn */
      if (!
#line 41 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], DImode)
       || register_operand (operands[1], DImode))))
        return -1;
      return 1067; /* *neon_movdi */

    case E_SImode:
      if (!nonimmediate_operand (operands[0], E_SImode)
          || !general_operand (operands[1], E_SImode)
          || !
#line 661 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1
   && (   register_operand (operands[0], SImode)
       || register_operand (operands[1], SImode))))
        return -1;
      return 949; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1
   && (   register_operand (operands[0], HImode)
       || register_operand (operands[1], HImode))))
            return 950; /* *thumb1_movhi_insn */
          if (
#line 289 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2
  && (register_operand (operands[0], HImode)
     || register_operand (operands[1], HImode))))
            return 999; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
        return -1;
      *pnum_clobbers = 1;
      return 1038; /* *thumb2_movhi_shortim */

    case E_QImode:
      if (nonimmediate_operand (operands[0], E_QImode)
          && general_operand (operands[1], E_QImode)
          && 
#line 859 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1
   && (   register_operand (operands[0], QImode)
       || register_operand (operands[1], QImode))))
        return 951; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
        return -1;
      *pnum_clobbers = 1;
      return 1037; /* *thumb2_movqi_shortim */

    case E_HFmode:
      if (!nonimmediate_operand (operands[0], E_HFmode)
          || !general_operand (operands[1], E_HFmode)
          || !
#line 877 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1
   && (	  s_register_operand (operands[0], HFmode)
       || s_register_operand (operands[1], HFmode))))
        return -1;
      return 952; /* *thumb1_movhf */

    case E_SFmode:
      if (!nonimmediate_operand (operands[0], E_SFmode)
          || !general_operand (operands[1], E_SFmode)
          || !
#line 933 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1
   && (   register_operand (operands[0], SFmode)
       || register_operand (operands[1], SFmode))))
        return -1;
      return 953; /* *thumb1_movsf_insn */

    case E_DFmode:
      if (!nonimmediate_operand (operands[0], E_DFmode)
          || !general_operand (operands[1], E_DFmode)
          || !
#line 957 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1
   && (   register_operand (operands[0], DFmode)
       || register_operand (operands[1], DFmode))))
        return -1;
      return 954; /* *thumb_movdf_insn */

    case E_V8QImode:
      if (!nonimmediate_operand (operands[0], E_V8QImode)
          || !general_operand (operands[1], E_V8QImode)
          || !
#line 41 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], V8QImode)
       || register_operand (operands[1], V8QImode))))
        return -1;
      return 1061; /* *neon_movv8qi */

    case E_V4HImode:
      if (!nonimmediate_operand (operands[0], E_V4HImode)
          || !general_operand (operands[1], E_V4HImode)
          || !
#line 41 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], V4HImode)
       || register_operand (operands[1], V4HImode))))
        return -1;
      return 1062; /* *neon_movv4hi */

    case E_V4HFmode:
      if (!nonimmediate_operand (operands[0], E_V4HFmode)
          || !general_operand (operands[1], E_V4HFmode)
          || !
#line 41 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], V4HFmode)
       || register_operand (operands[1], V4HFmode))))
        return -1;
      return 1063; /* *neon_movv4hf */

    case E_V4BFmode:
      if (!nonimmediate_operand (operands[0], E_V4BFmode)
          || !general_operand (operands[1], E_V4BFmode)
          || !
#line 41 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], V4BFmode)
       || register_operand (operands[1], V4BFmode))))
        return -1;
      return 1064; /* *neon_movv4bf */

    case E_V2SImode:
      if (!nonimmediate_operand (operands[0], E_V2SImode)
          || !general_operand (operands[1], E_V2SImode)
          || !
#line 41 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], V2SImode)
       || register_operand (operands[1], V2SImode))))
        return -1;
      return 1065; /* *neon_movv2si */

    case E_V2SFmode:
      if (!nonimmediate_operand (operands[0], E_V2SFmode)
          || !general_operand (operands[1], E_V2SFmode)
          || !
#line 41 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], V2SFmode)
       || register_operand (operands[1], V2SFmode))))
        return -1;
      return 1066; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], V16QImode)
       || register_operand (operands[1], V16QImode))))
        return 1068; /* *neon_movv16qi */
      if (!
#line 23 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE || TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3028; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], V8HImode)
       || register_operand (operands[1], V8HImode))))
        return 1069; /* *neon_movv8hi */
      if (!
#line 23 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE || TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3029; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], V8HFmode)
       || register_operand (operands[1], V8HFmode))))
        return 1070; /* *neon_movv8hf */
      if (!
#line 23 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE || TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3033; /* *mve_movv8hf */

    case E_V8BFmode:
      if (!nonimmediate_operand (operands[0], E_V8BFmode)
          || !general_operand (operands[1], E_V8BFmode)
          || !
#line 88 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], V8BFmode)
       || register_operand (operands[1], V8BFmode))))
        return -1;
      return 1071; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], V4SImode)
       || register_operand (operands[1], V4SImode))))
        return 1072; /* *neon_movv4si */
      if (!
#line 23 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE || TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3030; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], V4SFmode)
       || register_operand (operands[1], V4SFmode))))
        return 1073; /* *neon_movv4sf */
      if (!
#line 23 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE || TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3034; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], V2DImode)
       || register_operand (operands[1], V2DImode))))
        return 1074; /* *neon_movv2di */
      if (!
#line 23 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE || TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3031; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], TImode)
       || register_operand (operands[1], TImode))))
        return 1075; /* *neon_movti */
      if (!
#line 23 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE || TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3032; /* *mve_movti */

    case E_EImode:
      if (!nonimmediate_operand (operands[0], E_EImode)
          || !general_operand (operands[1], E_EImode)
          || !(
#line 184 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(!TARGET_HAVE_MVE)))
        return -1;
      return 1076; /* *neon_movei */

    case E_OImode:
      if (!nonimmediate_operand (operands[0], E_OImode)
          || !general_operand (operands[1], E_OImode)
          || !
#line 184 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
((TARGET_NEON || TARGET_HAVE_MVE)
   && (register_operand (operands[0], OImode)
       || register_operand (operands[1], OImode))))
        return -1;
      return 1077; /* *neon_movoi */

    case E_CImode:
      if (!nonimmediate_operand (operands[0], E_CImode)
          || !general_operand (operands[1], E_CImode)
          || !(
#line 184 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(!TARGET_HAVE_MVE)))
        return -1;
      return 1078; /* *neon_movci */

    case E_XImode:
      if (!nonimmediate_operand (operands[0], E_XImode)
          || !general_operand (operands[1], E_XImode)
          || !
#line 184 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
((TARGET_NEON || TARGET_HAVE_MVE)
   && (register_operand (operands[0], XImode)
       || register_operand (operands[1], XImode))))
        return -1;
      return 1079; /* *neon_movxi */

    case E_V2DFmode:
      if (!nonimmediate_operand (operands[0], E_V2DFmode)
          || !general_operand (operands[1], E_V2DFmode)
          || !
#line 23 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE || TARGET_HAVE_MVE_FLOAT))
        return -1;
      return 3035; /* *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 (pattern381 (x3, SIGN_EXTEND))
                {
                case 0:
                  if (pattern488 (x3, pnum_clobbers) != 0
                      || !
#line 2500 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                    return -1;
                  return 556; /* smulv4hi3_highpart */

                default:
                  return -1;
                }

            case ZERO_EXTEND:
              switch (pattern381 (x3, ZERO_EXTEND))
                {
                case 0:
                  switch (GET_MODE (operands[0]))
                    {
                    case E_SImode:
                      if (pattern488 (x3, pnum_clobbers) != 0
                          || !
#line 2500 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                        return -1;
                      *pnum_clobbers = 1;
                      return 72; /* *umull_high */

                    case E_V2SImode:
                      if (pattern380 (x3, E_V2SImode, E_V2DImode) != 0
                          || !
#line 279 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                        return -1;
                      return 689; /* iwmmxt_wmulwum */

                    default:
                      return -1;
                    }

                case 1:
                  if (!
#line 507 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                    return -1;
                  return 557; /* 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 (pattern560 (x10, 1) != 0
                      || pattern532 (x3, E_V8QImode, E_V8HImode) != 0
                      || !
#line 617 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                    return -1;
                  return 566; /* 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]
                      || pattern532 (x3, E_V4HImode, E_V4SImode) != 0
                      || !
#line 635 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                    return -1;
                  return 567; /* 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 (pattern380 (x3, E_V8QImode, E_V8HImode) != 0
                      || !
#line 648 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                    return -1;
                  return 568; /* iwmmxt_uavgv8qi3 */

                case E_V4HImode:
                  if (pattern380 (x3, E_V4HImode, E_V4SImode) != 0
                      || !
#line 661 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                    return -1;
                  return 569; /* 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 (pattern531 (x10) != 0)
                    return -1;
                  x16 = XVECEXP (x10, 0, 3);
                  if (GET_CODE (x16) != CONST_INT
                      || XWINT (x16, 0) != 32768L
                      || XWINT (x5, 0) != 16L
                      || pattern532 (x3, E_V4HImode, E_V4SImode) != 0
                      || !
#line 316 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                    return -1;
                  return 691; /* iwmmxt_wmulumr */

                case 2:
                  if (pattern533 (x3) != 0
                      || !
#line 350 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                    return -1;
                  return 693; /* 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 (pattern380 (x3, E_V8QImode, E_V8HImode) != 0
              || !
#line 37 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 675; /* iwmmxt_wabsdiffb */

        case E_V4HImode:
          if (pattern380 (x3, E_V4HImode, E_V4SImode) != 0
              || !
#line 50 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 676; /* iwmmxt_wabsdiffh */

        case E_V2SImode:
          if (pattern380 (x3, E_V2SImode, E_V2DImode) != 0
              || !
#line 63 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 677; /* 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
          || pattern560 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 682; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 683; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 688; /* 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 (pattern531 (x10) != 0
                  || XWINT (x5, 0) != 16L
                  || pattern532 (x3, E_V4HImode, E_V4SImode) != 0
                  || !
#line 297 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 690; /* iwmmxt_wmulsmr */

            case 2:
              if (pattern533 (x3) != 0
                  || !
#line 333 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 692; /* 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 6277 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return -1;
          return 2804; /* 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 6277 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return -1;
          return 2805; /* 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 6277 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return -1;
          return 2806; /* 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;
  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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 515; /* tbcstv8qi */
          if (!s_register_operand (operands[0], E_V8QImode)
              || !
#line 3401 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2031; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 516; /* tbcstv4hi */
          if (!s_register_operand (operands[0], E_V4HImode)
              || !
#line 3401 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2032; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 517; /* tbcstv2si */
          if (!s_register_operand (operands[0], E_V2SImode)
              || !
#line 3441 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2039; /* 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 3401 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 2033; /* neon_vdup_nv16qi */
          if (!
#line 86 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE || TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3036; /* *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 3401 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 2034; /* neon_vdup_nv8hi */
          if (!
#line 86 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE || TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3037; /* *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 3409 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2035; /* 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 3417 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 2036; /* neon_vdup_nv8hf */
          if (!
#line 86 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE || TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3040; /* *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 3425 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2037; /* 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 3433 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2038; /* 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 3441 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2040; /* 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 3441 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 2041; /* neon_vdup_nv4si */
          if (!
#line 86 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE || TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3038; /* *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 3441 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 2042; /* neon_vdup_nv4sf */
          if (!
#line 86 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE || TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3041; /* *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 3461 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 2043; /* neon_vdup_nv2di */
          if (!
#line 86 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE || TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3039; /* *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 86 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE || TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3042; /* *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 (pattern469 (x3, E_V8QImode, E_QImode) != 0
              || !
#line 3475 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2044; /* neon_vdup_lanev8qi_internal */

        case E_V16QImode:
          if (pattern470 (x3, E_V16QImode, E_V8QImode, E_QImode) != 0
              || !
#line 3475 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2045; /* neon_vdup_lanev16qi_internal */

        case E_V4HImode:
          if (pattern469 (x3, E_V4HImode, E_HImode) != 0
              || !
#line 3475 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2046; /* neon_vdup_lanev4hi_internal */

        case E_V8HImode:
          if (pattern470 (x3, E_V8HImode, E_V4HImode, E_HImode) != 0
              || !
#line 3475 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2047; /* neon_vdup_lanev8hi_internal */

        case E_V2SImode:
          if (pattern469 (x3, E_V2SImode, E_SImode) != 0
              || !
#line 3475 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2048; /* neon_vdup_lanev2si_internal */

        case E_V4SImode:
          if (pattern470 (x3, E_V4SImode, E_V2SImode, E_SImode) != 0
              || !
#line 3475 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2049; /* neon_vdup_lanev4si_internal */

        case E_V2SFmode:
          if (pattern469 (x3, E_V2SFmode, E_SFmode) != 0
              || !
#line 3475 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2050; /* neon_vdup_lanev2sf_internal */

        case E_V4SFmode:
          if (pattern470 (x3, E_V4SFmode, E_V2SFmode, E_SFmode) != 0
              || !
#line 3475 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2051; /* neon_vdup_lanev4sf_internal */

        case E_V8HFmode:
          if (pattern470 (x3, E_V8HFmode, E_V4HFmode, E_HFmode) != 0
              || !
#line 3497 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && (TARGET_FP16 || TARGET_BF16_SIMD)))
            return -1;
          return 2052; /* neon_vdup_lanev8hf_internal */

        case E_V4HFmode:
          if (pattern469 (x3, E_V4HFmode, E_HFmode) != 0
              || !
#line 3497 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && (TARGET_FP16 || TARGET_BF16_SIMD)))
            return -1;
          return 2053; /* neon_vdup_lanev4hf_internal */

        case E_V4BFmode:
          if (pattern470 (x3, E_V4BFmode, E_V4BFmode, E_BFmode) != 0
              || !
#line 3497 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && (TARGET_FP16 || TARGET_BF16_SIMD)))
            return -1;
          return 2054; /* neon_vdup_lanev4bf_internal */

        case E_V8BFmode:
          if (pattern470 (x3, E_V8BFmode, E_V4BFmode, E_BFmode) != 0
              || !
#line 3497 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && (TARGET_FP16 || TARGET_BF16_SIMD)))
            return -1;
          return 2055; /* 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 4999 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2527; /* 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 4999 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2528; /* 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 4999 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2529; /* 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 4999 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2530; /* 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 4999 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2531; /* 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 4999 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2532; /* 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 5016 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2533; /* 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 5016 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2534; /* 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 5016 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2535; /* 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 5016 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2536; /* 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 5016 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2537; /* 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 5026 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2538; /* neon_vld1_dupv2di */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

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, 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 (pattern499 (x3, E_V8QImode, E_QImode) != 0
                  || !
#line 676 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 570; /* iwmmxt_tinsrb */

            case E_V4HImode:
              if (pattern499 (x3, E_V4HImode, E_HImode) != 0
                  || !
#line 693 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 571; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                        return 572; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1112; /* vec_setv2si_internal */

            case E_V8QImode:
              if (pattern396 (x3, E_V8QImode, E_QImode) != 0
                  || !
#line 324 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1108; /* vec_setv8qi_internal */

            case E_V4HImode:
              if (pattern396 (x3, E_V4HImode, E_HImode) != 0
                  || !
#line 324 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1109; /* vec_setv4hi_internal */

            case E_V4HFmode:
              if (pattern396 (x3, E_V4HFmode, E_HFmode) != 0
                  || !
#line 324 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1110; /* vec_setv4hf_internal */

            case E_V4BFmode:
              if (pattern396 (x3, E_V4BFmode, E_BFmode) != 0
                  || !
#line 324 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1111; /* vec_setv4bf_internal */

            case E_V2SFmode:
              if (pattern396 (x3, E_V2SFmode, E_SFmode) != 0
                  || !
#line 324 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1113; /* vec_setv2sf_internal */

            case E_V16QImode:
              if (pattern396 (x3, E_V16QImode, E_QImode) != 0)
                return -1;
              if (
#line 345 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1114; /* vec_setv16qi_internal */
              if (!
#line 10125 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 4906; /* mve_vec_setv16qi_internal */

            case E_V8HImode:
              if (pattern396 (x3, E_V8HImode, E_HImode) != 0)
                return -1;
              if (
#line 345 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1115; /* vec_setv8hi_internal */
              if (!
#line 10125 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 4907; /* mve_vec_setv8hi_internal */

            case E_V8HFmode:
              if (pattern396 (x3, E_V8HFmode, E_HFmode) != 0)
                return -1;
              if (
#line 345 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1116; /* vec_setv8hf_internal */
              if (!
#line 10125 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 4908; /* mve_vec_setv8hf_internal */

            case E_V4SImode:
              if (pattern396 (x3, E_V4SImode, E_SImode) != 0)
                return -1;
              if (
#line 345 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1117; /* vec_setv4si_internal */
              if (!
#line 10125 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 4909; /* mve_vec_setv4si_internal */

            case E_V4SFmode:
              if (pattern396 (x3, E_V4SFmode, E_SFmode) != 0)
                return -1;
              if (
#line 345 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1118; /* vec_setv4sf_internal */
              if (!
#line 10125 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 4910; /* mve_vec_setv4sf_internal */

            case E_V2DImode:
              if (pattern396 (x3, E_V2DImode, E_DImode) != 0)
                return -1;
              if (
#line 374 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1119; /* vec_setv2di_internal */
              if (!
#line 10144 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
                return -1;
              return 4911; /* 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 (pattern500 (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
              || pattern580 (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
              || pattern606 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 606; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 609; /* iwmmxt_wunpckilb */

            default:
              return -1;
            }

        case 4:
          if (pattern500 (x9) != 0
              || pattern580 (x10, 4) != 0
              || XWINT (x5, 0) != 5L
              || pattern606 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 607; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 610; /* 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
              || pattern606 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 608; /* iwmmxt_wunpckihw */

            case 0L:
              if (XWINT (x21, 0) != 1L
                  || XWINT (x24, 0) != 1L
                  || XWINT (x25, 0) != 0L
                  || !
#line 1129 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 611; /* iwmmxt_wunpckilw */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case SS_MINUS:
      if (pattern284 (x3, SS_PLUS) != 0
          || !
#line 81 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 678; /* iwmmxt_waddsubhx */

    case SS_PLUS:
      if (pattern284 (x3, SS_MINUS) != 0
          || !
#line 99 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 679; /* iwmmxt_wsubaddhx */

    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 (pattern110 (x1, E_CCmode, 104) != 0
              || !
#line 4326 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM_QBIT))
            return -1;
          return 128; /* 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 12198 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_HARD_TP))
            return -1;
          return 402; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HAVE_FPCXT_CMSE && use_cmse))
                return -1;
              return 839; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HAVE_FPCXT_CMSE && use_cmse))
                return -1;
              return 840; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_BASE))
            return -1;
          return 909; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(ARM_DOUBLEWORD_ALIGN && TARGET_HAVE_LPAE))
            return -1;
          return 2869; /* arm_atomic_loaddi2_ldrd */

        case 20:
          switch (pattern278 (x1))
            {
            case 0:
              if (!
#line 479 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX))
                return -1;
              return 2958; /* arm_load_exclusivesi */

            case 1:
              if (!
#line 503 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD))
                return -1;
              return 2960; /* arm_load_exclusivedi */

            default:
              return -1;
            }

        case 23:
          switch (pattern278 (x1))
            {
            case 0:
              if (!
#line 491 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ))
                return -1;
              return 2959; /* arm_load_acquire_exclusivesi */

            case 1:
              if (!
#line 512 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQEXD && ARM_DOUBLEWORD_ALIGN))
                return -1;
              return 2961; /* arm_load_acquire_exclusivedi */

            default:
              return -1;
            }

        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 9778 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4860; /* set_fpscr_nzcvqc */

        default:
          return -1;
        }

    case 2:
      x4 = XEXP (x1, 0);
      operands[0] = x4;
      x7 = XVECEXP (x2, 0, 1);
      operands[2] = x7;
      switch (XINT (x2, 1))
        {
        case 30:
          if (GET_MODE (x2) != E_SImode
              || !register_operand (operands[0], E_SImode))
            return -1;
          x3 = XVECEXP (x2, 0, 0);
          operands[1] = x3;
          if (!register_operand (operands[1], E_SImode)
              || !register_operand (operands[2], E_SImode)
              || !
#line 9170 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 303; /* probe_stack_range */

        case 13:
          switch (pattern340 (x2))
            {
            case 0:
              if (!
#line 802 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 579; /* eqv8qi3 */

            case 1:
              if (!
#line 813 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 580; /* eqv4hi3 */

            case 2:
              if (!
#line 825 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 581; /* eqv2si3 */

            default:
              return -1;
            }

        case 14:
          switch (pattern340 (x2))
            {
            case 0:
              if (!
#line 836 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 582; /* gtuv8qi3 */

            case 1:
              if (!
#line 847 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 583; /* gtuv4hi3 */

            case 2:
              if (!
#line 858 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 584; /* gtuv2si3 */

            default:
              return -1;
            }

        case 15:
          switch (pattern340 (x2))
            {
            case 0:
              if (!
#line 869 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 585; /* gtv8qi3 */

            case 1:
              if (!
#line 880 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 586; /* gtv4hi3 */

            case 2:
              if (!
#line 891 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 587; /* gtv2si3 */

            default:
              return -1;
            }

        case 25:
          x3 = XVECEXP (x2, 0, 0);
          operands[1] = x3;
          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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ))
                return -1;
              return 2863; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ))
                return -1;
              return 2864; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ))
                return -1;
              return 2865; /* atomic_loadsi */

            default:
              return -1;
            }

        case 26:
          x3 = XVECEXP (x2, 0, 0);
          operands[1] = x3;
          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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ))
                return -1;
              return 2866; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ))
                return -1;
              return 2867; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ))
                return -1;
              return 2868; /* atomic_storesi */

            default:
              return -1;
            }

        case 19:
          if (pnum_clobbers == NULL
              || !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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2882; /* atomic_addqi */

                case 1:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2887; /* atomic_addhi */

                case 2:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2892; /* atomic_addsi */

                case 3:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2897; /* atomic_adddi */

                default:
                  return -1;
                }

            case MINUS:
              switch (pattern437 (x2))
                {
                case 0:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2883; /* atomic_subqi */

                case 1:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2888; /* atomic_subhi */

                case 2:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2893; /* atomic_subsi */

                case 3:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2898; /* atomic_subdi */

                default:
                  return -1;
                }

            case IOR:
              switch (pattern437 (x2))
                {
                case 0:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2884; /* atomic_orqi */

                case 1:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2889; /* atomic_orhi */

                case 2:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2894; /* atomic_orsi */

                case 3:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2899; /* atomic_ordi */

                default:
                  return -1;
                }

            case XOR:
              switch (pattern437 (x2))
                {
                case 0:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2885; /* atomic_xorqi */

                case 1:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2890; /* atomic_xorhi */

                case 2:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2895; /* atomic_xorsi */

                case 3:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2900; /* atomic_xordi */

                default:
                  return -1;
                }

            case AND:
              switch (pattern437 (x2))
                {
                case 0:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2886; /* atomic_andqi */

                case 1:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2891; /* atomic_andhi */

                case 2:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2896; /* atomic_andsi */

                case 3:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2901; /* 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 (pattern543 (x2, E_QImode) != 0
                      || !
#line 320 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2902; /* atomic_nandqi */

                case E_HImode:
                  if (pattern543 (x2, E_HImode) != 0
                      || !
#line 320 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2903; /* atomic_nandhi */

                case E_SImode:
                  if (pattern543 (x2, E_SImode) != 0
                      || !
#line 320 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2904; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2905; /* 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 12823 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_MRC)))
            return -1;
          return 496; /* arm_mrc */

        case 44:
          if (!
#line 12823 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_MRC2)))
            return -1;
          return 497; /* arm_mrc2 */

        default:
          return -1;
        }

    case 3:
      if (pattern10 (x1, E_DImode) != 0)
        return -1;
      switch (XINT (x2, 1))
        {
        case 47:
          if (!
#line 12856 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_MRRC)))
            return -1;
          return 500; /* arm_mrrc */

        case 48:
          if (!
#line 12856 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_MRRC2)))
            return -1;
          return 501; /* 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;
  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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
                return -1;
              return 808; /* fmahf4 */

            case E_SFmode:
              if (pattern439 (x3, E_SFmode) != 0
                  || !
#line 1365 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA ))
                return -1;
              return 809; /* fmasf4 */

            case E_DFmode:
              if (pattern439 (x3, E_DFmode) != 0
                  || !(
#line 1365 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
                return -1;
              return 810; /* fmadf4 */

            case E_V2SFmode:
              if (pattern439 (x3, E_V2SFmode) != 0)
                return -1;
              if (
#line 580 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V2SF_ARITH && TARGET_FMA))
                return 1180; /* fmav2sf4 */
              if (!
#line 590 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_FMA))
                return -1;
              return 1182; /* fmav2sf4_intrinsic */

            case E_V4SFmode:
              if (pattern439 (x3, E_V4SFmode) != 0)
                return -1;
              if (
#line 580 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4SF_ARITH && TARGET_FMA))
                return 1181; /* fmav4sf4 */
              if (!
#line 590 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_FMA))
                return -1;
              return 1183; /* fmav4sf4_intrinsic */

            case E_V8HFmode:
              if (pattern439 (x3, E_V8HFmode) != 0
                  || !
#line 601 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V8HF_ARITH))
                return -1;
              return 1184; /* fmav8hf4 */

            case E_V4HFmode:
              if (pattern439 (x3, E_V4HFmode) != 0
                  || !
#line 601 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4HF_ARITH))
                return -1;
              return 1185; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
                return -1;
              return 814; /* *fnmsubhf4 */

            case E_SFmode:
              if (pattern440 (x3, E_SFmode) != 0
                  || !
#line 1423 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA ))
                return -1;
              return 815; /* *fnmsubsf4 */

            case E_DFmode:
              if (pattern440 (x3, E_DFmode) != 0
                  || !(
#line 1423 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
                return -1;
              return 816; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
                return -1;
              return 811; /* fmsubhf4_fp16 */

            case E_SFmode:
              if (pattern441 (x3, E_SFmode) != 0
                  || !
#line 1401 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA ))
                return -1;
              return 812; /* *fmsubsf4 */

            case E_DFmode:
              if (pattern441 (x3, E_DFmode) != 0
                  || !(
#line 1401 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
                return -1;
              return 813; /* *fmsubdf4 */

            case E_V2SFmode:
              if (pattern441 (x3, E_V2SFmode) != 0)
                return -1;
              if (
#line 611 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V2SF_ARITH && TARGET_FMA))
                return 1186; /* *fmsubv2sf4 */
              if (!
#line 622 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_FMA))
                return -1;
              return 1188; /* fmsubv2sf4_intrinsic */

            case E_V4SFmode:
              if (pattern441 (x3, E_V4SFmode) != 0)
                return -1;
              if (
#line 611 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4SF_ARITH && TARGET_FMA))
                return 1187; /* *fmsubv4sf4 */
              if (!
#line 622 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_FMA))
                return -1;
              return 1189; /* fmsubv4sf4_intrinsic */

            case E_V8HFmode:
              if (pattern441 (x3, E_V8HFmode) != 0
                  || !
#line 633 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
                return -1;
              return 1190; /* fmsubv8hf4_intrinsic */

            case E_V4HFmode:
              if (pattern441 (x3, E_V4HFmode) != 0
                  || !
#line 633 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
                return -1;
              return 1191; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
                return -1;
              return 817; /* *fnmaddhf4 */

            case E_SFmode:
              if (pattern442 (x3, E_SFmode) != 0
                  || !
#line 1446 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA ))
                return -1;
              return 818; /* *fnmaddsf4 */

            case E_DFmode:
              if (pattern442 (x3, E_DFmode) != 0
                  || !(
#line 1446 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
                return -1;
              return 819; /* *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 (pattern545 (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 1674 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                return 1509; /* vfmal_lowv2sf_intrinsic */
              if (!vect_par_constant_high (operands[4], E_V4HFmode)
                  || !vect_par_constant_high (operands[5], E_V4HFmode)
                  || !
#line 1709 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                return -1;
              return 1513; /* vfmal_highv2sf_intrinsic */

            case 1:
              if (pattern545 (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 1674 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                return 1510; /* vfmal_lowv4sf_intrinsic */
              if (!vect_par_constant_high (operands[4], E_V8HFmode)
                  || !vect_par_constant_high (operands[5], E_V8HFmode)
                  || !
#line 1709 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                return -1;
              return 1514; /* vfmal_highv4sf_intrinsic */

            case 2:
              if (pattern610 (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 1764 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                        return 1517; /* vfmal_lane_lowv2sf_intrinsic */
                      break;

                    case E_V8HFmode:
                      if (s_register_operand (operands[3], E_V8HFmode)
                          && 
#line 1820 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                        return 1519; /* 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 1857 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                    return -1;
                  return 1521; /* vfmal_lane_highv8hfv2sf_intrinsic */

                case E_V4HFmode:
                  if (!s_register_operand (operands[3], E_V4HFmode)
                      || !
#line 1886 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                    return -1;
                  return 1523; /* vfmal_lane_highv2sf_intrinsic */

                default:
                  return -1;
                }

            case 3:
              if (pattern610 (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 1764 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                        return 1518; /* vfmal_lane_lowv4sf_intrinsic */
                      break;

                    case E_V4HFmode:
                      if (s_register_operand (operands[3], E_V4HFmode)
                          && 
#line 1820 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                        return 1520; /* 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 1857 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                    return -1;
                  return 1522; /* vfmal_lane_highv4hfv4sf_intrinsic */

                case E_V8HFmode:
                  if (!s_register_operand (operands[3], E_V8HFmode)
                      || !
#line 1886 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                    return -1;
                  return 1524; /* 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 (pattern564 (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 1692 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                return 1511; /* vfmsl_highv2sf_intrinsic */
              if (!vect_par_constant_low (operands[4], E_V4HFmode)
                  || !vect_par_constant_low (operands[5], E_V4HFmode)
                  || !
#line 1727 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                return -1;
              return 1515; /* vfmsl_lowv2sf_intrinsic */

            case 1:
              if (pattern564 (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 1692 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                return 1512; /* vfmsl_highv4sf_intrinsic */
              if (!vect_par_constant_low (operands[4], E_V8HFmode)
                  || !vect_par_constant_low (operands[5], E_V8HFmode)
                  || !
#line 1727 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                return -1;
              return 1516; /* vfmsl_lowv4sf_intrinsic */

            case 2:
              if (pattern613 (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 1917 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                        return 1525; /* vfmsl_lane_lowv2sf_intrinsic */
                      break;

                    case E_V8HFmode:
                      if (s_register_operand (operands[3], E_V8HFmode)
                          && 
#line 1955 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                        return 1527; /* 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 1993 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                    return -1;
                  return 1529; /* vfmsl_lane_highv8hfv2sf_intrinsic */

                case E_V4HFmode:
                  if (!s_register_operand (operands[3], E_V4HFmode)
                      || !
#line 2023 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                    return -1;
                  return 1531; /* vfmsl_lane_highv2sf_intrinsic */

                default:
                  return -1;
                }

            case 3:
              if (pattern613 (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 1917 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                        return 1526; /* vfmsl_lane_lowv4sf_intrinsic */
                      break;

                    case E_V4HFmode:
                      if (s_register_operand (operands[3], E_V4HFmode)
                          && 
#line 1955 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                        return 1528; /* 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 1993 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                    return -1;
                  return 1530; /* vfmsl_lane_highv4hfv4sf_intrinsic */

                case E_V8HFmode:
                  if (!s_register_operand (operands[3], E_V8HFmode)
                      || !
#line 2023 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                    return -1;
                  return 1532; /* vfmsl_lane_highv4sf_intrinsic */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    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;
  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 3479 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 12267 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_HAVE_MOVT))
                        return 406; /* *arm_movtas_ze */
                    }
                }
            }
        }
      break;

    case CONST_DOUBLE:
    case REG:
    case SUBREG:
    case MEM:
      res = recog_268 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    case LABEL_REF:
      x3 = XEXP (x1, 0);
      if (GET_CODE (x3) == PC)
        {
          x7 = XEXP (x2, 0);
          operands[0] = x7;
          if (
#line 8488 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return 284; /* *arm_jump */
          if (
#line 1781 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return 973; /* *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 6242 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 251; /* *arm_movdi */
      break;

    case E_SImode:
      if (nonimmediate_operand (operands[0], E_SImode)
          && general_operand (operands[1], E_SImode)
          && 
#line 6454 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && !TARGET_IWMMXT && !TARGET_HARD_FLOAT
   && (   register_operand (operands[0], SImode)
       || register_operand (operands[1], SImode))))
        return 253; /* *arm_movsi_insn */
      break;

    case E_HImode:
      if (nonimmediate_operand (operands[0], E_HImode)
          && general_operand (operands[1], E_HImode)
          && 
#line 7109 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM
   && arm_arch4 && !TARGET_HARD_FLOAT
   && (register_operand (operands[0], HImode)
       || register_operand (operands[1], HImode))))
        return 261; /* *movhi_insn_arch4 */
      if (s_register_operand (operands[0], E_HImode)
          && arm_rhs_operand (operands[1], E_HImode)
          && 
#line 7136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && !TARGET_HARD_FLOAT))
        return 262; /* *movhi_bytes */
      break;

    case E_QImode:
      if (nonimmediate_operand (operands[0], E_QImode)
          && general_operand (operands[1], E_QImode)
          && 
#line 7253 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (   register_operand (operands[0], QImode)
       || register_operand (operands[1], QImode))))
        return 263; /* *arm_movqi_insn */
      break;

    case E_HFmode:
      if (nonimmediate_operand (operands[0], E_HFmode)
          && general_operand (operands[1], E_HFmode)
          && 
#line 7300 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 264; /* *arm32_movhf */
      break;

    case E_BFmode:
      if (nonimmediate_operand (operands[0], E_BFmode)
          && general_operand (operands[1], E_BFmode)
          && 
#line 7300 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 265; /* *arm32_movbf */
      break;

    case E_SFmode:
      if (nonimmediate_operand (operands[0], E_SFmode)
          && general_operand (operands[1], E_SFmode)
          && 
#line 7399 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && TARGET_SOFT_FLOAT && !TARGET_HAVE_MVE
   && (!MEM_P (operands[0])
       || register_operand (operands[1], SFmode))))
        return 266; /* *arm_movsf_soft_insn */
      break;

    default:
      break;
    }
  operands[0] = x3;
  if (cc_register (operands[0], E_VOIDmode)
      && rtx_equal_p (x2, operands[0])
      && 
#line 7839 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
    return 272; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT
   && (   register_operand (operands[0], DImode)
       || register_operand (operands[1], DImode))))
            return 522; /* *iwmmxt_arm_movdi */
          if (
#line 344 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 750; /* *movdi_vfp */
        }
      break;

    case E_V2SImode:
      if (nonimmediate_operand (operands[0], E_V2SImode)
          && general_operand (operands[1], E_V2SImode)
          && 
#line 229 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 525; /* movv2si_internal */
      break;

    case E_V4HImode:
      if (nonimmediate_operand (operands[0], E_V4HImode)
          && general_operand (operands[1], E_V4HImode)
          && 
#line 229 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 526; /* movv4hi_internal */
      break;

    case E_V8QImode:
      if (nonimmediate_operand (operands[0], E_V8QImode)
          && general_operand (operands[1], E_V8QImode)
          && 
#line 229 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 527; /* 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-12.2.0-r0/gcc-12.2.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 738; /* *arm_movhi_vfp */
          if (
#line 80 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 739; /* *thumb2_movhi_vfp */
          if (
#line 135 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_ARM && TARGET_VFP_FP16INST
  && (register_operand (operands[0], HImode)
       || register_operand (operands[1], HImode))))
            return 743; /* *arm_movhi_fp16 */
          if (
#line 185 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 744; /* *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-12.2.0-r0/gcc-12.2.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 740; /* *thumb2_movhi_vfp */
          if (
#line 185 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 745; /* *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-12.2.0-r0/gcc-12.2.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 741; /* *thumb2_movhi_vfp */
          if (
#line 185 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 746; /* *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-12.2.0-r0/gcc-12.2.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 742; /* *thumb2_movhi_vfp */
          if (
#line 185 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 747; /* *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-12.2.0-r0/gcc-12.2.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 751; /* *movhf_vfp_hf16 */
          if (
#line 488 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 753; /* *movhf_vfp_neon */
          if (
#line 544 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 755; /* *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-12.2.0-r0/gcc-12.2.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 752; /* *movbf_vfp_bf16 */
          if (
#line 488 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 754; /* *movbf_vfp_neon */
          if (
#line 544 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 756; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_ARM && TARGET_HARD_FLOAT
   && (   s_register_operand (operands[0], SFmode)
       || s_register_operand (operands[1], SFmode))))
            return 757; /* *movsf_vfp */
          if (hard_sf_operand (operands[1], E_SFmode)
              && 
#line 636 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && TARGET_VFP_BASE
   && (   s_register_operand (operands[0], SFmode)
       || s_register_operand (operands[1], SFmode))))
            return 758; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_ARM && TARGET_HARD_FLOAT
   && (   register_operand (operands[0], DFmode)
       || register_operand (operands[1], DFmode))))
            return 759; /* *movdf_vfp */
          if (hard_df_operand (operands[1], E_DFmode)
              && 
#line 725 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && TARGET_VFP_BASE
   && (   register_operand (operands[0], DFmode)
       || register_operand (operands[1], DFmode))))
            return 760; /* *thumb2_movdf_vfp */
        }
      break;

    default:
      break;
    }
  switch (GET_CODE (x2))
    {
    case MEM:
      if (pattern283 (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 6668 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return 259; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT
   && (   register_operand (operands[0], SImode)
       || register_operand (operands[1], SImode))))
            return 523; /* *iwmmxt_movsi_insn */
          if (
#line 238 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_ARM && TARGET_HARD_FLOAT
   && (   s_register_operand (operands[0], SImode)
       || s_register_operand (operands[1], SImode))))
            return 748; /* *arm_movsi_vfp */
          if (
#line 283 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && TARGET_VFP_BASE
   && (   s_register_operand (operands[0], SImode)
       || s_register_operand (operands[1], SImode))))
            return 749; /* *thumb2_movsi_vfp */
        }
    }
  if (GET_CODE (x2) == REG
      && REGNO (x2) == 101
      && GET_CODE (x3) == REG
      && REGNO (x3) == 100
      && 
#line 1637 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
    return 838; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return 986; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && (reload_in_progress || reload_completed)))
                return 996; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !TARGET_IWMMXT && !TARGET_HARD_FLOAT
   && (   register_operand (operands[0], SImode)
       || register_operand (operands[1], SImode))))
    return 997; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
    {
      *pnum_clobbers = 1;
      return 1039; /* *thumb2_movsi_shortim */
    }
  if (pnum_clobbers == NULL
      || !register_operand (operands[0], E_SImode)
      || GET_CODE (x2) != MEM
      || pattern283 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
    return -1;
  *pnum_clobbers = 1;
  return 998; /* tls_load_dot_plus_four */
}

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 1142 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 7822 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 271; /* *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 1748 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 1765 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 1780 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 1748 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 1765 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 1780 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 2098 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 5325 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          *pnum_clobbers = 1;
          return 171; /* *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 4725 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          *pnum_clobbers = 1;
          return 152; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && optimize_size))
        return -1;
      *pnum_clobbers = 1;
      return 1046; /* *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 3071 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 7774 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 268; /* *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 7795 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 269; /* *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 9016 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 300; /* *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 309; /* 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 3779 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return 111; /* *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 9648 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      *pnum_clobbers = 1;
      return 326; /* *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]
          || pattern376 (x1) != 0)
        return -1;
      switch (XWINT (x12, 0))
        {
        case 0L:
          if (!
#line 10058 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 336; /* *cmp_ite0 */

        case 1L:
          if (!
#line 10141 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 337; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 627; /* ashrv4hi3_iwmmxt */
              if (imm_or_reg_operand (operands[2], E_DImode)
                  && 
#line 1382 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 639; /* 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 843 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1346; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 628; /* ashrv2si3_iwmmxt */
              if (imm_or_reg_operand (operands[2], E_DImode)
                  && 
#line 1382 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 640; /* 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 843 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1348; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                    return 629; /* ashrdi3_iwmmxt */
                  if (imm_or_reg_operand (operands[2], E_DImode)
                      && 
#line 1382 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                    return 641; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_HAVE_MVE))
                    return 1055; /* thumb2_asrl */
                }
            }
          break;

        case 3:
          if (
#line 843 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1344; /* vashrv8qi3_imm */
          break;

        case 4:
          if (
#line 843 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1345; /* vashrv16qi3_imm */
          if (
#line 762 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3185; /* mve_vshrq_n_sv16qi_imm */
          break;

        case 5:
          if (
#line 843 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1347; /* vashrv8hi3_imm */
          if (
#line 762 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3186; /* mve_vshrq_n_sv8hi_imm */
          break;

        case 6:
          if (
#line 843 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1349; /* vashrv4si3_imm */
          if (
#line 762 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3187; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 630; /* lshrv4hi3_iwmmxt */
              if (register_operand (operands[2], E_DImode)
                  && 
#line 1403 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 642; /* 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 856 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1352; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 631; /* lshrv2si3_iwmmxt */
              if (register_operand (operands[2], E_DImode)
                  && 
#line 1403 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 643; /* 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 856 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1354; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                    return 632; /* lshrdi3_iwmmxt */
                  if (register_operand (operands[2], E_DImode)
                      && 
#line 1403 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                    return 644; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_HAVE_MVE))
                    return 1057; /* thumb2_lsrl */
                }
            }
          break;

        case 3:
          if (
#line 856 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1350; /* vlshrv8qi3_imm */
          break;

        case 4:
          if (
#line 856 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1351; /* vlshrv16qi3_imm */
          if (
#line 777 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3188; /* mve_vshrq_n_uv16qi_imm */
          break;

        case 5:
          if (
#line 856 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1353; /* vlshrv8hi3_imm */
          if (
#line 777 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3189; /* mve_vshrq_n_uv8hi_imm */
          break;

        case 6:
          if (
#line 856 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1355; /* vlshrv4si3_imm */
          if (
#line 777 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3190; /* 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 4650 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return 147; /* *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-12.2.0-r0/gcc-12.2.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 1036; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && optimize_size && reload_completed))
    return -1;
  *pnum_clobbers = 1;
  return 1044; /* *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_237 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    case EQ:
      switch (pattern272 (x3))
        {
        case 0:
          if (
#line 826 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3197; /* mve_vcmpeqq_v16qi */
          break;

        case 1:
          if (
#line 840 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3221; /* mve_vcmpeqq_n_v16qi */
          break;

        case 2:
          if (
#line 826 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3205; /* mve_vcmpeqq_v8hi */
          break;

        case 3:
          if (
#line 840 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3229; /* mve_vcmpeqq_n_v8hi */
          break;

        case 4:
          if (
#line 1916 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3554; /* mve_vcmpeqq_fv8hf */
          break;

        case 5:
          if (
#line 1930 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3566; /* mve_vcmpeqq_n_fv8hf */
          break;

        case 6:
          if (
#line 826 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3213; /* mve_vcmpeqq_v4si */
          break;

        case 7:
          if (
#line 840 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3237; /* mve_vcmpeqq_n_v4si */
          break;

        case 8:
          if (
#line 1916 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3560; /* mve_vcmpeqq_fv4sf */
          break;

        case 9:
          if (
#line 1930 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3572; /* mve_vcmpeqq_n_fv4sf */
          break;

        default:
          break;
        }
      break;

    case GE:
      switch (pattern272 (x3))
        {
        case 0:
          if (
#line 826 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3198; /* mve_vcmpgeq_v16qi */
          break;

        case 1:
          if (
#line 840 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3222; /* mve_vcmpgeq_n_v16qi */
          break;

        case 2:
          if (
#line 826 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3206; /* mve_vcmpgeq_v8hi */
          break;

        case 3:
          if (
#line 840 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3230; /* mve_vcmpgeq_n_v8hi */
          break;

        case 4:
          if (
#line 1916 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3555; /* mve_vcmpgeq_fv8hf */
          break;

        case 5:
          if (
#line 1930 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3567; /* mve_vcmpgeq_n_fv8hf */
          break;

        case 6:
          if (
#line 826 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3214; /* mve_vcmpgeq_v4si */
          break;

        case 7:
          if (
#line 840 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3238; /* mve_vcmpgeq_n_v4si */
          break;

        case 8:
          if (
#line 1916 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3561; /* mve_vcmpgeq_fv4sf */
          break;

        case 9:
          if (
#line 1930 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3573; /* mve_vcmpgeq_n_fv4sf */
          break;

        default:
          break;
        }
      break;

    case GEU:
      switch (pattern273 (x3))
        {
        case 0:
          if (
#line 826 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3199; /* mve_vcmpcsq_v16qi */
          break;

        case 1:
          if (
#line 840 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3223; /* mve_vcmpcsq_n_v16qi */
          break;

        case 2:
          if (
#line 826 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3207; /* mve_vcmpcsq_v8hi */
          break;

        case 3:
          if (
#line 840 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3231; /* mve_vcmpcsq_n_v8hi */
          break;

        case 4:
          if (
#line 826 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3215; /* mve_vcmpcsq_v4si */
          break;

        case 5:
          if (
#line 840 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3239; /* mve_vcmpcsq_n_v4si */
          break;

        default:
          break;
        }
      break;

    case GT:
      switch (pattern272 (x3))
        {
        case 0:
          if (
#line 826 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3200; /* mve_vcmpgtq_v16qi */
          break;

        case 1:
          if (
#line 840 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3224; /* mve_vcmpgtq_n_v16qi */
          break;

        case 2:
          if (
#line 826 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3208; /* mve_vcmpgtq_v8hi */
          break;

        case 3:
          if (
#line 840 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3232; /* mve_vcmpgtq_n_v8hi */
          break;

        case 4:
          if (
#line 1916 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3556; /* mve_vcmpgtq_fv8hf */
          break;

        case 5:
          if (
#line 1930 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3568; /* mve_vcmpgtq_n_fv8hf */
          break;

        case 6:
          if (
#line 826 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3216; /* mve_vcmpgtq_v4si */
          break;

        case 7:
          if (
#line 840 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3240; /* mve_vcmpgtq_n_v4si */
          break;

        case 8:
          if (
#line 1916 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3562; /* mve_vcmpgtq_fv4sf */
          break;

        case 9:
          if (
#line 1930 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3574; /* mve_vcmpgtq_n_fv4sf */
          break;

        default:
          break;
        }
      break;

    case GTU:
      switch (pattern273 (x3))
        {
        case 0:
          if (
#line 826 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3201; /* mve_vcmphiq_v16qi */
          break;

        case 1:
          if (
#line 840 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3225; /* mve_vcmphiq_n_v16qi */
          break;

        case 2:
          if (
#line 826 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3209; /* mve_vcmphiq_v8hi */
          break;

        case 3:
          if (
#line 840 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3233; /* mve_vcmphiq_n_v8hi */
          break;

        case 4:
          if (
#line 826 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3217; /* mve_vcmphiq_v4si */
          break;

        case 5:
          if (
#line 840 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3241; /* mve_vcmphiq_n_v4si */
          break;

        default:
          break;
        }
      break;

    case LE:
      switch (pattern272 (x3))
        {
        case 0:
          if (
#line 826 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3202; /* mve_vcmpleq_v16qi */
          break;

        case 1:
          if (
#line 840 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3226; /* mve_vcmpleq_n_v16qi */
          break;

        case 2:
          if (
#line 826 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3210; /* mve_vcmpleq_v8hi */
          break;

        case 3:
          if (
#line 840 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3234; /* mve_vcmpleq_n_v8hi */
          break;

        case 4:
          if (
#line 1916 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3557; /* mve_vcmpleq_fv8hf */
          break;

        case 5:
          if (
#line 1930 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3569; /* mve_vcmpleq_n_fv8hf */
          break;

        case 6:
          if (
#line 826 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3218; /* mve_vcmpleq_v4si */
          break;

        case 7:
          if (
#line 840 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3242; /* mve_vcmpleq_n_v4si */
          break;

        case 8:
          if (
#line 1916 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3563; /* mve_vcmpleq_fv4sf */
          break;

        case 9:
          if (
#line 1930 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3575; /* mve_vcmpleq_n_fv4sf */
          break;

        default:
          break;
        }
      break;

    case LT:
      switch (pattern272 (x3))
        {
        case 0:
          if (
#line 826 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3203; /* mve_vcmpltq_v16qi */
          break;

        case 1:
          if (
#line 840 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3227; /* mve_vcmpltq_n_v16qi */
          break;

        case 2:
          if (
#line 826 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3211; /* mve_vcmpltq_v8hi */
          break;

        case 3:
          if (
#line 840 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3235; /* mve_vcmpltq_n_v8hi */
          break;

        case 4:
          if (
#line 1916 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3558; /* mve_vcmpltq_fv8hf */
          break;

        case 5:
          if (
#line 1930 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3570; /* mve_vcmpltq_n_fv8hf */
          break;

        case 6:
          if (
#line 826 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3219; /* mve_vcmpltq_v4si */
          break;

        case 7:
          if (
#line 840 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3243; /* mve_vcmpltq_n_v4si */
          break;

        case 8:
          if (
#line 1916 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3564; /* mve_vcmpltq_fv4sf */
          break;

        case 9:
          if (
#line 1930 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return 3576; /* 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 7989 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return 275; /* *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 9846 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            {
              *pnum_clobbers = 1;
              return 332; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return 971; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
    return -1;
  return 1001; /* *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 5076 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return 164; /* *arm_negsi2 */
          if (register_operand (operands[0], E_SImode)
              && register_operand (operands[1], E_SImode)
              && 
#line 324 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return 939; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
            return -1;
          *pnum_clobbers = 1;
          return 1050; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
            return -1;
          return 767; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
            return -1;
          return 768; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 770; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return -1;
          *pnum_clobbers = 1;
          return 938; /* *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 747 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1290; /* 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 747 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1291; /* neon_negv16qi2 */
          if (!
#line 396 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3093; /* 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 747 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1292; /* 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 747 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1293; /* neon_negv8hi2 */
          if (!
#line 396 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3094; /* 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 747 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1294; /* 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 747 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1295; /* neon_negv4si2 */
          if (!
#line 396 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3095; /* 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 747 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1296; /* 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 747 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1297; /* neon_negv4sf2 */
          if (!
#line 247 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3065; /* 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 758 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return 1299; /* neon_negv8hf2 */
          if (!
#line 247 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3064; /* 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 758 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1301; /* neon_negv4hf2 */

        default:
          return -1;
        }

    case ABS:
      if (pnum_clobbers == NULL
          || pattern280 (x3, E_SImode) != 0)
        return -1;
      if (
#line 5216 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
        {
          *pnum_clobbers = 1;
          return 168; /* *arm_neg_abssi2 */
        }
      if (
#line 349 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        {
          *pnum_clobbers = 1;
          return 941; /* *thumb1_neg_abssi2 */
        }
      if (!
#line 170 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return -1;
      *pnum_clobbers = 1;
      return 995; /* *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_267 (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 (pattern317 (x3, E_HFmode) != 0
              || !
#line 1143 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 791; /* *negmulhf3_vfp */

        case E_SFmode:
          if (pattern317 (x3, E_SFmode) != 0
              || !
#line 1163 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
            return -1;
          return 793; /* *negmulsf3_vfp */

        case E_DFmode:
          if (pattern317 (x3, E_DFmode) != 0
              || !
#line 1184 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
            return -1;
          return 795; /* *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 5152 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            {
              *pnum_clobbers = 1;
              return 167; /* *arm_abssi2 */
            }
          if (
#line 334 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            {
              *pnum_clobbers = 1;
              return 940; /* *thumb1_abssi2 */
            }
          if (!
#line 117 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
            return -1;
          *pnum_clobbers = 1;
          return 994; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
            return -1;
          return 765; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
            return -1;
          return 766; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 769; /* 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 736 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1282; /* 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 736 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1283; /* neon_absv16qi2 */
          if (!
#line 491 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3117; /* 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 736 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1284; /* 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 736 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1285; /* neon_absv8hi2 */
          if (!
#line 491 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3118; /* 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 736 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1286; /* 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 736 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1287; /* neon_absv4si2 */
          if (!
#line 491 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3119; /* 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 736 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1288; /* 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 736 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1289; /* neon_absv4sf2 */
          if (!
#line 274 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3069; /* 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 758 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return 1298; /* neon_absv8hf2 */
          if (!
#line 274 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT))
            return -1;
          return 3068; /* 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 758 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1300; /* 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 (pattern317 (x3, E_V4HFmode) != 0
              || !(
#line 6300 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4HF_ARITH) && 
#line 153 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
            return -1;
          return 2807; /* neon_vabdv4hf_2 */

        case E_V8HFmode:
          if (pattern317 (x3, E_V8HFmode) != 0
              || !(
#line 6300 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V8HF_ARITH) && 
#line 154 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
            return -1;
          return 2808; /* neon_vabdv8hf_2 */

        case E_V2SFmode:
          if (pattern317 (x3, E_V2SFmode) != 0
              || !
#line 6300 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V2SF_ARITH))
            return -1;
          return 2809; /* neon_vabdv2sf_2 */

        case E_V4SFmode:
          if (pattern317 (x3, E_V4SFmode) != 0
              || !
#line 6300 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4SF_ARITH))
            return -1;
          return 2810; /* neon_vabdv4sf_2 */

        default:
          return -1;
        }

    case UNSPEC:
      if (XVECLEN (x4, 0) != 2
          || XINT (x4, 1) != 327)
        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 6310 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4HF_ARITH) && 
#line 153 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
            return -1;
          return 2811; /* neon_vabdv4hf_3 */

        case E_V8HFmode:
          if (pattern438 (x3, E_V8HFmode) != 0
              || !(
#line 6310 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V8HF_ARITH) && 
#line 154 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
            return -1;
          return 2812; /* neon_vabdv8hf_3 */

        case E_V2SFmode:
          if (pattern438 (x3, E_V2SFmode) != 0
              || !
#line 6310 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V2SF_ARITH))
            return -1;
          return 2813; /* neon_vabdv2sf_3 */

        case E_V4SFmode:
          if (pattern438 (x3, E_V4SFmode) != 0
              || !
#line 6310 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(ARM_HAVE_NEON_V4SF_ARITH))
            return -1;
          return 2814; /* 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_250 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    case SMIN:
      res = recog_251 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    case UMAX:
      switch (pattern277 (x3, pnum_clobbers))
        {
        case 0:
          if (
#line 4067 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            {
              *pnum_clobbers = 1;
              return 118; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 591; /* *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 806 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1326; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 592; /* *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 806 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1324; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 593; /* *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 806 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1322; /* *umaxv8qi3_neon */
          break;

        case 4:
          if (
#line 806 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1323; /* *umaxv16qi3_neon */
          if (
#line 1161 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3329; /* mve_vmaxq_uv16qi */
          break;

        case 5:
          if (
#line 806 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1325; /* *umaxv8hi3_neon */
          if (
#line 1161 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3330; /* mve_vmaxq_uv8hi */
          break;

        case 6:
          if (
#line 806 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1327; /* *umaxv4si3_neon */
          if (
#line 1161 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3331; /* mve_vmaxq_uv4si */
          break;

        case 7:
          if (
#line 1065 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1393; /* quad_halves_umaxv4si */
          break;

        case 8:
          if (
#line 1093 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1401; /* quad_halves_umaxv8hi */
          break;

        case 9:
          if (
#line 1112 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1406; /* quad_halves_umaxv16qi */
          break;

        default:
          break;
        }
      break;

    case UMIN:
      switch (pattern277 (x3, pnum_clobbers))
        {
        case 0:
          if (
#line 4100 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            {
              *pnum_clobbers = 1;
              return 119; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 597; /* *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 797 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1320; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 598; /* *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 797 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1318; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 599; /* *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 797 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1316; /* *uminv8qi3_neon */
          break;

        case 4:
          if (
#line 797 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1317; /* *uminv16qi3_neon */
          if (
#line 1231 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3347; /* mve_vminq_uv16qi */
          break;

        case 5:
          if (
#line 797 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1319; /* *uminv8hi3_neon */
          if (
#line 1231 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3348; /* mve_vminq_uv8hi */
          break;

        case 6:
          if (
#line 797 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1321; /* *uminv4si3_neon */
          if (
#line 1231 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return 3349; /* mve_vminq_uv4si */
          break;

        case 7:
          if (
#line 1065 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1392; /* quad_halves_uminv4si */
          break;

        case 8:
          if (
#line 1093 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1400; /* quad_halves_uminv8hi */
          break;

        case 9:
          if (
#line 1112 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1405; /* 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 4124 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && optimize_function_for_size_p (cfun) && !arm_restrict_it))
        {
          *pnum_clobbers = 1;
          return 120; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return -1;
      *pnum_clobbers = 1;
      return 990; /* *thumb2_smaxsi3 */

    case SMIN:
      if (!
#line 55 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return -1;
      *pnum_clobbers = 1;
      return 991; /* *thumb2_sminsi3 */

    case UMAX:
      if (!
#line 76 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return -1;
      *pnum_clobbers = 1;
      return 992; /* *thumb32_umaxsi3 */

    case UMIN:
      if (!
#line 97 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return -1;
      *pnum_clobbers = 1;
      return 993; /* *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 4694 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 150; /* *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 5299 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return 169; /* *arm_one_cmplsi2 */
          if (register_operand (operands[0], E_SImode)
              && register_operand (operands[1], E_SImode)
              && 
#line 363 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return 942; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
            return -1;
          *pnum_clobbers = 1;
          return 1049; /* *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 728 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1271; /* 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 728 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1272; /* one_cmplv16qi2_neon */
          if (!
#line 409 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3096; /* 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 728 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1273; /* 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 728 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1274; /* one_cmplv8hi2_neon */
          if (!
#line 409 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3097; /* 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 728 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1275; /* 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 728 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1276; /* one_cmplv4si2_neon */
          if (!
#line 409 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 3098; /* 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 728 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1277; /* 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 728 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1278; /* 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 728 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1279; /* 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 728 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1280; /* 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 728 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1281; /* 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 8035 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return 278; /* *mov_notscc */
          if (arm_comparison_operator_mode (operands[1], E_SImode)
              && 
#line 396 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !arm_restrict_it))
            return 1004; /* *thumb2_mov_notscc */
        }
      if (!low_register_operand (operands[0], E_SImode)
          || !arm_comparison_operator_mode (operands[1], E_SImode)
          || !
#line 416 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_restrict_it))
        return -1;
      return 1005; /* *thumb2_mov_notscc_strict_it */

    case SIGN_EXTRACT:
      if (pnum_clobbers == NULL
          || pattern304 (x3, 1) != 0)
        return -1;
      x7 = XEXP (x4, 2);
      operands[2] = x7;
      if (!const_int_operand (operands[2], E_SImode)
          || !
#line 11751 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      *pnum_clobbers = 1;
      return 379; /* *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 4943 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(unaligned_access))
        return -1;
      return 156; /* 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 5585 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch4 && !arm_arch6))
                        return 172; /* *arm_zero_extendhisi2 */
                      if (
#line 5596 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch6))
                        return 173; /* *arm_zero_extendhisi2_v6 */
                    }
                  break;

                case E_QImode:
                  if (nonimmediate_operand (operands[1], E_QImode))
                    {
                      if (
#line 5654 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && !arm_arch6))
                        return 175; /* *arm_zero_extendqisi2 */
                      if (
#line 5666 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch6))
                        return 176; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                    return 943; /* *thumb1_zero_extendhisi2 */
                  break;

                case E_QImode:
                  if (nonimmediate_operand (operands[1], E_QImode))
                    {
                      if (
#line 415 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && !arm_arch6))
                        return 944; /* *thumb1_zero_extendqisi2 */
                      if (
#line 427 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && arm_arch6))
                        return 945; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_arch6))
                return -1;
              return 1028; /* *thumb2_zero_extendhisi2_v6 */

            case E_QImode:
              if (!nonimmediate_operand (operands[1], E_QImode)
                  || !
#line 1120 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_arch6))
                return -1;
              return 1029; /* 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 6156 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2790; /* 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 6156 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2792; /* 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 6156 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2794; /* 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_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 5993 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return 2760; /* neon_vec_unpacku_lo_v16qi */
          if (!vect_par_constant_high (operands[2], E_V16QImode)
              || !
#line 6003 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return -1;
          return 2766; /* 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 5993 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return 2762; /* neon_vec_unpacku_lo_v8hi */
          if (!vect_par_constant_high (operands[2], E_V8HImode)
              || !
#line 6003 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return -1;
          return 2768; /* 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 5993 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return 2764; /* neon_vec_unpacku_lo_v4si */
          if (!vect_par_constant_high (operands[2], E_V4SImode)
              || !
#line 6003 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return -1;
          return 2770; /* neon_vec_unpacku_hi_v4si */

        default:
          return -1;
        }

    case ASHIFT:
      switch (pattern282 (x3))
        {
        case 0:
          if (!
#line 6118 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2784; /* neon_vec_ushiftl_v8qi */

        case 1:
          if (!
#line 6118 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2786; /* neon_vec_ushiftl_v4hi */

        case 2:
          if (!
#line 6118 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2788; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH))
                return -1;
              return 2954; /* arm_load_exclusiveqi */

            case E_HImode:
              if (!mem_noofs_operand (operands[1], E_HImode)
                  || !
#line 454 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH))
                return -1;
              return 2955; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ))
                return -1;
              return 2956; /* arm_load_acquire_exclusiveqi */

            case E_HImode:
              if (!mem_noofs_operand (operands[1], E_HImode)
                  || !
#line 467 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ))
                return -1;
              return 2957; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 577; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1124; /* vec_extractv2sisi */

            case E_V4SImode:
              if (!s_register_operand (operands[1], E_V4SImode))
                return -1;
              if (
#line 419 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1129; /* neon_vec_extractv4sisi */
              if (!
#line 10046 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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_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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1120; /* vec_extractv8qiqi */

            case E_V16QImode:
              if (!s_register_operand (operands[1], E_V16QImode))
                return -1;
              if (
#line 419 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1126; /* neon_vec_extractv16qiqi */
              if (!
#line 10046 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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_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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1121; /* vec_extractv4hihi */

            case E_V8HImode:
              if (!s_register_operand (operands[1], E_V8HImode))
                return -1;
              if (
#line 419 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1127; /* neon_vec_extractv8hihi */
              if (!
#line 10046 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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_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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1122; /* vec_extractv4hfhf */

            case E_V8HFmode:
              if (!s_register_operand (operands[1], E_V8HFmode))
                return -1;
              if (
#line 419 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1128; /* neon_vec_extractv8hfhf */
              if (!
#line 10046 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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_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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1123; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1125; /* vec_extractv2sfsf */

            case E_V4SFmode:
              if (!s_register_operand (operands[1], E_V4SFmode))
                return -1;
              if (
#line 419 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1130; /* neon_vec_extractv4sfsf */
              if (!
#line 10046 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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_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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1131; /* neon_vec_extractv2didi */
          if (!
#line 10064 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4899; /* mve_vec_extractv2didi */

        default:
          return -1;
        }

    case ZERO_EXTEND:
      switch (pattern320 (x2))
        {
        case 0:
          if (!
#line 1141 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 612; /* iwmmxt_wunpckehub */

        case 1:
          if (!
#line 1209 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 618; /* iwmmxt_wunpckelub */

        case 2:
          if (!
#line 1152 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 613; /* iwmmxt_wunpckehuh */

        case 3:
          if (!
#line 1220 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 619; /* iwmmxt_wunpckeluh */

        case 4:
          if (!
#line 1163 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 614; /* iwmmxt_wunpckehuw */

        case 5:
          if (!
#line 1231 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 620; /* iwmmxt_wunpckeluw */

        default:
          return -1;
        }

    case SIGN_EXTEND:
      switch (pattern320 (x2))
        {
        case 0:
          if (!
#line 1175 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 615; /* iwmmxt_wunpckehsb */

        case 1:
          if (!
#line 1243 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 621; /* iwmmxt_wunpckelsb */

        case 2:
          if (!
#line 1186 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 616; /* iwmmxt_wunpckehsh */

        case 3:
          if (!
#line 1254 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 622; /* iwmmxt_wunpckelsh */

        case 4:
          if (!
#line 1197 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 617; /* iwmmxt_wunpckehsw */

        case 5:
          if (!
#line 1265 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 623; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 600; /* iwmmxt_wpackhss */

        case 1:
          if (!
#line 957 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 601; /* iwmmxt_wpackwss */

        case 2:
          if (!
#line 968 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 602; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 603; /* iwmmxt_wpackhus */

            case 1:
              if (!
#line 990 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 604; /* iwmmxt_wpackwus */

            case 2:
              if (!
#line 1001 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 605; /* 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
              || pattern501 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 700; /* 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 (pattern354 (x5, E_V4HImode, SS_PLUS, E_V4QImode, US_TRUNCATE) != 0)
        return -1;
      x20 = XEXP (x5, 0);
      x21 = XEXP (x20, 1);
      if (pattern563 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 699; /* iwmmxt_waddbhusm */

    case REG:
    case SUBREG:
      switch (pattern12 (x3))
        {
        case 0:
          if (!
#line 3596 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2070; /* neon_vcombinev8qi */

        case 1:
          if (!
#line 3596 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2071; /* neon_vcombinev4hi */

        case 2:
          if (!
#line 3596 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2072; /* neon_vcombinev4hf */

        case 3:
          if (!
#line 3596 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2073; /* neon_vcombinev4bf */

        case 4:
          if (!
#line 3596 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2074; /* neon_vcombinev2si */

        case 5:
          if (!
#line 3596 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2075; /* neon_vcombinev2sf */

        case 6:
          if (!
#line 3596 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2076; /* 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 6267 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return -1;
          return 2801; /* vec_pack_trunc_v8hi */

        case E_V8HImode:
          if (pattern342 (x3, E_V4SImode, E_V4HImode, E_V8HImode) != 0
              || !
#line 6267 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return -1;
          return 2802; /* vec_pack_trunc_v4si */

        case E_V4SImode:
          if (pattern342 (x3, E_V2DImode, E_V2SImode, E_V4SImode) != 0
              || !
#line 6267 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return -1;
          return 2803; /* 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 4933 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(unaligned_access && TARGET_32BIT))
        return -1;
      return 155; /* 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 5824 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch4 && !arm_arch6))
                    return 179; /* *arm_extendhisi2 */
                  if (
#line 5837 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6))
                    return 180; /* *arm_extendhisi2_v6 */
                }
              if (arm_reg_or_extendqisi_mem_op (operands[1], E_QImode))
                {
                  if (
#line 5918 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch4 && !arm_arch6))
                    return 183; /* *arm_extendqisi */
                  if (
#line 5931 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch6))
                    return 184; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                    {
                      *pnum_clobbers = 1;
                      return 946; /* thumb1_extendhisi2 */
                    }
                  break;

                case E_QImode:
                  if (nonimmediate_operand (operands[1], E_QImode)
                      && 
#line 583 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                    return 947; /* thumb1_extendqisi2 */
                  break;

                default:
                  break;
                }
            }
          if (!s_register_operand (operands[0], E_SImode)
              || !nonimmediate_operand (operands[1], E_QImode)
              || !
#line 1094 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_arch6))
            return -1;
          return 1027; /* *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 5881 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch4))
            return -1;
          return 182; /* *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 6156 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2789; /* 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 6156 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2791; /* 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 6156 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2793; /* neon_unpacks_v2si */

        default:
          return -1;
        }

    case BSWAP:
      if (pattern280 (x3, E_HImode) != 0
          || !
#line 12451 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(arm_arch6))
        return -1;
      return 408; /* *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_265 (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 5993 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return 2759; /* neon_vec_unpacks_lo_v16qi */
          if (!vect_par_constant_high (operands[2], E_V16QImode)
              || !
#line 6003 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return -1;
          return 2765; /* 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 5993 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return 2761; /* neon_vec_unpacks_lo_v8hi */
          if (!vect_par_constant_high (operands[2], E_V8HImode)
              || !
#line 6003 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return -1;
          return 2767; /* 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 5993 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return 2763; /* neon_vec_unpacks_lo_v4si */
          if (!vect_par_constant_high (operands[2], E_V4SImode)
              || !
#line 6003 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return -1;
          return 2769; /* neon_vec_unpacks_hi_v4si */

        default:
          return -1;
        }

    case ASHIFT:
      switch (pattern282 (x3))
        {
        case 0:
          if (!
#line 6118 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2783; /* neon_vec_sshiftl_v8qi */

        case 1:
          if (!
#line 6118 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2785; /* neon_vec_sshiftl_v4hi */

        case 2:
          if (!
#line 6118 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2787; /* 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_236 (x1, insn, pnum_clobbers);

    case 2:
      return recog_233 (x1, insn, pnum_clobbers);

    case 4:
      return recog_235 (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 (pattern461 (x2))
            {
            case 0:
              if (!
#line 4484 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_CDE))
                return -1;
              return 145; /* arm_cx3asi */

            case 1:
              if (!
#line 4484 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_CDE))
                return -1;
              return 146; /* arm_cx3adi */

            default:
              return -1;
            }

        case 114:
          switch (pattern335 (x2))
            {
            case 0:
              if (!
#line 446 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 701; /* iwmmxt_wqmiabb */

            case 1:
              if (!
#line 459 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 702; /* iwmmxt_wqmiabt */

            case 2:
              if (!
#line 472 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 703; /* iwmmxt_wqmiatb */

            case 3:
              if (!
#line 485 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 704; /* iwmmxt_wqmiatt */

            default:
              return -1;
            }

        case 113:
          switch (pattern335 (x2))
            {
            case 0:
              if (!
#line 498 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 705; /* iwmmxt_wqmiabbn */

            case 1:
              if (!
#line 511 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 706; /* iwmmxt_wqmiabtn */

            case 2:
              if (!
#line 524 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 707; /* iwmmxt_wqmiatbn */

            case 3:
              if (!
#line 537 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 708; /* 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 (pattern541 (x2, E_SImode) != 0
                      || !
#line 2250 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_CDE && (TARGET_ARM_FP || TARGET_HAVE_MVE)))
                    return -1;
                  return 922; /* arm_vcx3asi */

                case E_DImode:
                  if (pattern541 (x2, E_DImode) != 0
                      || !
#line 2250 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_CDE && (TARGET_ARM_FP || TARGET_HAVE_MVE)))
                    return -1;
                  return 923; /* arm_vcx3adi */

                case E_V16QImode:
                  if (pattern516 (x2) != 0
                      || !register_operand (operands[4], E_V16QImode)
                      || !const_int_mve_cde3_operand (operands[5], E_SImode)
                      || !
#line 10417 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_CDE && TARGET_HAVE_MVE))
                    return -1;
                  return 4937; /* arm_vcx3qav16qi */

                default:
                  return -1;
                }

            case CONST_INT:
              if (!const_int_mve_cde2_operand (operands[4], E_SImode)
                  || pattern516 (x2) != 0
                  || !vpr_register_operand (operands[5], E_V16BImode)
                  || !
#line 10443 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_CDE && TARGET_HAVE_MVE))
                return -1;
              return 4941; /* 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 10443 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_CDE && TARGET_HAVE_MVE))
            return -1;
          return 4940; /* 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 10458 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_CDE && TARGET_HAVE_MVE))
            return -1;
          return 4942; /* arm_vcx3q_p_v16qi */

        case 105:
          if (!
#line 10458 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_CDE && TARGET_HAVE_MVE))
            return -1;
          return 4943; /* 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 4257 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY && !ARM_Q_BIT_READ))
        return -1;
      return 123; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 540; /* ssaddv8qi3 */
      if (!s_register_operand (operands[0], E_V8QImode)
          || !s_register_operand (operands[1], E_V8QImode)
          || !s_register_operand (operands[2], E_V8QImode)
          || !
#line 1365 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1427; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 541; /* ssaddv4hi3 */
      if (!s_register_operand (operands[0], E_V4HImode)
          || !s_register_operand (operands[1], E_V4HImode)
          || !s_register_operand (operands[2], E_V4HImode)
          || !
#line 1365 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1428; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 542; /* ssaddv2si3 */
      if (!s_register_operand (operands[0], E_V2SImode)
          || !s_register_operand (operands[1], E_V2SImode)
          || !s_register_operand (operands[2], E_V2SImode)
          || !
#line 1365 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1429; /* *ss_addv2si_neon */

    case 4:
      if (!
#line 1365 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1430; /* *ss_addv2sf_neon */

    case 5:
      if (!
#line 75 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0))
        return -1;
      return 2989; /* *arm_ssaddv4qq3 */

    case 6:
      if (!
#line 75 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0))
        return -1;
      return 2990; /* *arm_ssaddv2hq3 */

    case 7:
      if (!
#line 75 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0))
        return -1;
      return 2991; /* *arm_ssaddqq3 */

    case 8:
      if (!
#line 75 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0))
        return -1;
      return 2992; /* *arm_ssaddhq3 */

    case 9:
      if (!
#line 75 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0))
        return -1;
      return 2993; /* *arm_ssaddv2ha3 */

    case 10:
      if (!
#line 75 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0))
        return -1;
      return 2994; /* *arm_ssaddha3 */

    case 11:
      if (!
#line 75 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ))
        return -1;
      return 2995; /* *arm_ssaddsq3 */

    case 12:
      if (!
#line 75 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ))
        return -1;
      return 2996; /* *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 4257 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY && !ARM_Q_BIT_READ))
        return -1;
      return 125; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 549; /* sssubv8qi3 */
      if (!s_register_operand (operands[0], E_V8QImode)
          || !s_register_operand (operands[1], E_V8QImode)
          || !s_register_operand (operands[2], E_V8QImode)
          || !
#line 1383 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1435; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 550; /* sssubv4hi3 */
      if (!s_register_operand (operands[0], E_V4HImode)
          || !s_register_operand (operands[1], E_V4HImode)
          || !s_register_operand (operands[2], E_V4HImode)
          || !
#line 1383 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1436; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 551; /* sssubv2si3 */
      if (!s_register_operand (operands[0], E_V2SImode)
          || !s_register_operand (operands[1], E_V2SImode)
          || !s_register_operand (operands[2], E_V2SImode)
          || !
#line 1383 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1437; /* *ss_subv2si_neon */

    case 4:
      if (!
#line 1383 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1438; /* *ss_subv2sf_neon */

    case 5:
      if (!
#line 135 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0))
        return -1;
      return 3016; /* *arm_sssubv4qq3 */

    case 6:
      if (!
#line 135 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0))
        return -1;
      return 3017; /* *arm_sssubv2hq3 */

    case 7:
      if (!
#line 135 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0))
        return -1;
      return 3018; /* *arm_sssubqq3 */

    case 8:
      if (!
#line 135 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0))
        return -1;
      return 3019; /* *arm_sssubhq3 */

    case 9:
      if (!
#line 135 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0))
        return -1;
      return 3020; /* *arm_sssubv2ha3 */

    case 10:
      if (!
#line 135 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0))
        return -1;
      return 3021; /* *arm_sssubha3 */

    case 11:
      if (!
#line 135 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ))
        return -1;
      return 3022; /* *arm_sssubsq3 */

    case 12:
      if (!
#line 135 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ))
        return -1;
      return 3023; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 543; /* usaddv8qi3 */
      if (!s_register_operand (operands[0], E_V8QImode)
          || !s_register_operand (operands[1], E_V8QImode)
          || !s_register_operand (operands[2], E_V8QImode)
          || !
#line 1374 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1431; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 544; /* usaddv4hi3 */
      if (!s_register_operand (operands[0], E_V4HImode)
          || !s_register_operand (operands[1], E_V4HImode)
          || !s_register_operand (operands[2], E_V4HImode)
          || !
#line 1374 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1432; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 545; /* usaddv2si3 */
      if (!s_register_operand (operands[0], E_V2SImode)
          || !s_register_operand (operands[1], E_V2SImode)
          || !s_register_operand (operands[2], E_V2SImode)
          || !
#line 1374 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1433; /* *us_addv2si_neon */

    case 3:
      if (!
#line 1374 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1434; /* *us_addv2sf_neon */

    case 4:
      if (!
#line 55 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2983; /* usaddv4uqq3 */

    case 5:
      if (!
#line 55 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2984; /* usaddv2uhq3 */

    case 6:
      if (!
#line 55 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2985; /* usadduqq3 */

    case 7:
      if (!
#line 55 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2986; /* usadduhq3 */

    case 8:
      if (!
#line 55 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2987; /* usaddv2uha3 */

    case 9:
      if (!
#line 55 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2988; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 552; /* ussubv8qi3 */
      if (!s_register_operand (operands[0], E_V8QImode)
          || !s_register_operand (operands[1], E_V8QImode)
          || !s_register_operand (operands[2], E_V8QImode)
          || !
#line 1392 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1439; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 553; /* ussubv4hi3 */
      if (!s_register_operand (operands[0], E_V4HImode)
          || !s_register_operand (operands[1], E_V4HImode)
          || !s_register_operand (operands[2], E_V4HImode)
          || !
#line 1392 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1440; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 554; /* ussubv2si3 */
      if (!s_register_operand (operands[0], E_V2SImode)
          || !s_register_operand (operands[1], E_V2SImode)
          || !s_register_operand (operands[2], E_V2SImode)
          || !
#line 1392 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1441; /* *us_subv2si_neon */

    case 3:
      if (!
#line 1392 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1442; /* *us_subv2sf_neon */

    case 4:
      if (!
#line 115 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 3010; /* ussubv4uqq3 */

    case 5:
      if (!
#line 115 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 3011; /* ussubv2uhq3 */

    case 6:
      if (!
#line 115 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 3012; /* ussubuqq3 */

    case 7:
      if (!
#line 115 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 3013; /* ussubuhq3 */

    case 8:
      if (!
#line 115 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 3014; /* ussubv2uha3 */

    case 9:
      if (!
#line 115 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 3015; /* 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 12089 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch5t))
        return -1;
      return 395; /* 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 3105 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1995; /* 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 3105 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return 1996; /* neon_vclzv16qi */
      if (!
#line 443 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3105; /* 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 3105 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1997; /* 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 3105 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return 1998; /* neon_vclzv8hi */
      if (!
#line 443 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3106; /* 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 3105 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1999; /* 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 3105 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return 2000; /* neon_vclzv4si */
      if (!
#line 443 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
        return -1;
      return 3107; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
                return -1;
              return 826; /* *truncsisf2_vfp */

            case E_DFmode:
              if (!s_register_operand (operands[1], E_DFmode)
                  || !
#line 1521 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
                return -1;
              return 827; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP3 && !flag_rounding_math))
            return -1;
          return 856; /* *combine_vcvtf2i */

        default:
          return -1;
        }

    case UNSPEC:
      switch (pattern287 (x3))
        {
        case 0:
          if (!
#line 2053 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
            return -1;
          return 886; /* lceilsfsi2 */

        case 1:
          if (!(
#line 2053 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
            return -1;
          return 892; /* lceildfsi2 */

        case 2:
          if (!
#line 2053 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
            return -1;
          return 887; /* lfloorsfsi2 */

        case 3:
          if (!(
#line 2053 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
            return -1;
          return 893; /* lfloordfsi2 */

        case 4:
          if (!
#line 2053 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
            return -1;
          return 888; /* lroundsfsi2 */

        case 5:
          if (!(
#line 2053 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
            return -1;
          return 894; /* lrounddfsi2 */

        case 6:
          if (!
#line 653 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1204; /* neon_vcvtpv2sfv2si */

        case 7:
          if (!
#line 653 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1210; /* neon_vcvtpv4sfv4si */

        case 8:
          if (!
#line 653 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1205; /* neon_vcvtmv2sfv2si */

        case 9:
          if (!
#line 653 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1211; /* neon_vcvtmv4sfv4si */

        case 10:
          if (!
#line 653 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1206; /* neon_vcvtav2sfv2si */

        case 11:
          if (!
#line 653 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1212; /* neon_vcvtav4sfv4si */

        default:
          return -1;
        }

    case REG:
    case SUBREG:
      switch (pattern288 (x3))
        {
        case 0:
          if (!
#line 3648 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2081; /* fix_truncv2sfv2si2 */

        case 1:
          if (!
#line 3648 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2082; /* 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 12280 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(arm_arch6))
        return -1;
      return 407; /* *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 12464 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(arm_arch6))
        return -1;
      return 409; /* *arm_rev16 */

    case E_V4HImode:
      if (!register_operand (operands[0], E_V4HImode)
          || GET_MODE (x3) != E_V4HImode
          || !register_operand (operands[1], E_V4HImode)
          || !
#line 2801 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1900; /* neon_bswapv4hi */

    case E_V8HImode:
      if (!register_operand (operands[0], E_V8HImode)
          || GET_MODE (x3) != E_V8HImode
          || !register_operand (operands[1], E_V8HImode)
          || !
#line 2801 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1901; /* neon_bswapv8hi */

    case E_V2SImode:
      if (!register_operand (operands[0], E_V2SImode)
          || GET_MODE (x3) != E_V2SImode
          || !register_operand (operands[1], E_V2SImode)
          || !
#line 2801 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1902; /* neon_bswapv2si */

    case E_V4SImode:
      if (!register_operand (operands[0], E_V4SImode)
          || GET_MODE (x3) != E_V4SImode
          || !register_operand (operands[1], E_V4SImode)
          || !
#line 2801 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1903; /* neon_bswapv4si */

    case E_V2DImode:
      if (!register_operand (operands[0], E_V2DImode)
          || GET_MODE (x3) != E_V2DImode
          || !register_operand (operands[1], E_V2DImode)
          || !
#line 2801 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1904; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT
   && (   register_operand (operands[0], SImode)
       || register_operand (operands[1], SImode))))
        return 524; /* *cond_iwmmxt_movsi_insn */
      if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6454 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 6482; /* *p *arm_movsi_insn */

    case E_HImode:
      if (nonimmediate_operand (operands[0], E_HImode)
          && general_operand (operands[1], E_HImode)
          && (
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 7109 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM
   && arm_arch4 && !TARGET_HARD_FLOAT
   && (register_operand (operands[0], HImode)
       || register_operand (operands[1], HImode)))))
        return 6485; /* *p *movhi_insn_arch4 */
      if (s_register_operand (operands[0], E_HImode)
          && arm_rhs_operand (operands[1], E_HImode)
          && (
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 7136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && !TARGET_HARD_FLOAT)))
        return 6486; /* *p *movhi_bytes */
      if (!nonimmediate_operand (operands[0], E_HImode)
          || !general_operand (operands[1], E_HImode))
        return -1;
      if ((
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 29 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 6797; /* *p *arm_movhi_vfp */
      if ((
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 80 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 6798; /* *p *thumb2_movhi_vfp */
      if ((
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 135 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_ARM && TARGET_VFP_FP16INST
  && (register_operand (operands[0], HImode)
       || register_operand (operands[1], HImode)))))
        return 6802; /* *p *arm_movhi_fp16 */
      if ((
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 185 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 6803; /* *p *thumb2_movhi_fp16 */
      if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 289 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2
  && (register_operand (operands[0], HImode)
     || register_operand (operands[1], HImode)))))
        return -1;
      return 6886; /* *p *thumb2_movhi_insn */

    case E_QImode:
      if (!nonimmediate_operand (operands[0], E_QImode)
          || !general_operand (operands[1], E_QImode)
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 7253 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (   register_operand (operands[0], QImode)
       || register_operand (operands[1], QImode)))))
        return -1;
      return 6487; /* *p *arm_movqi_insn */

    case E_HFmode:
      if (!nonimmediate_operand (operands[0], E_HFmode)
          || !general_operand (operands[1], E_HFmode))
        return -1;
      if ((
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 7300 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 6488; /* *p *arm32_movhf */
      if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 407 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 6810; /* *p *movhf_vfp_hf16 */

    case E_BFmode:
      if (!nonimmediate_operand (operands[0], E_BFmode)
          || !general_operand (operands[1], E_BFmode))
        return -1;
      if ((
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 7300 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 6489; /* *p *arm32_movbf */
      if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 407 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 6811; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 7399 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && TARGET_SOFT_FLOAT && !TARGET_HAVE_MVE
   && (!MEM_P (operands[0])
       || register_operand (operands[1], SFmode)))))
            return 6490; /* *p *arm_movsf_soft_insn */
          if ((
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 600 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_ARM && TARGET_HARD_FLOAT
   && (   s_register_operand (operands[0], SFmode)
       || s_register_operand (operands[1], SFmode)))))
            return 6812; /* *p *movsf_vfp */
        }
      if (!hard_sf_operand (operands[1], E_SFmode)
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 636 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 6813; /* *p *thumb2_movsf_vfp */

    case E_V2SImode:
      if (!nonimmediate_operand (operands[0], E_V2SImode)
          || !general_operand (operands[1], E_V2SImode)
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 229 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6584; /* *p movv2si_internal */

    case E_V4HImode:
      if (!nonimmediate_operand (operands[0], E_V4HImode)
          || !general_operand (operands[1], E_V4HImode)
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 229 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6585; /* *p movv4hi_internal */

    case E_V8QImode:
      if (!nonimmediate_operand (operands[0], E_V8QImode)
          || !general_operand (operands[1], E_V8QImode)
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 229 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6586; /* *p movv8qi_internal */

    case E_V16BImode:
      if (!nonimmediate_operand (operands[0], E_V16BImode)
          || !general_operand (operands[1], E_V16BImode))
        return -1;
      if ((
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 80 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 6799; /* *p *thumb2_movhi_vfp */
      if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 185 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 6804; /* *p *thumb2_movhi_fp16 */

    case E_V8BImode:
      if (!nonimmediate_operand (operands[0], E_V8BImode)
          || !general_operand (operands[1], E_V8BImode))
        return -1;
      if ((
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 80 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 6800; /* *p *thumb2_movhi_vfp */
      if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 185 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 6805; /* *p *thumb2_movhi_fp16 */

    case E_V4BImode:
      if (!nonimmediate_operand (operands[0], E_V4BImode)
          || !general_operand (operands[1], E_V4BImode))
        return -1;
      if ((
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 80 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 6801; /* *p *thumb2_movhi_vfp */
      if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 185 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 6806; /* *p *thumb2_movhi_fp16 */

    case E_DImode:
      if (!nonimmediate_di_operand (operands[0], E_DImode)
          || !di_operand (operands[1], E_DImode)
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 344 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 6809; /* *p *movdi_vfp */

    case E_DFmode:
      if (!nonimmediate_soft_df_operand (operands[0], E_DFmode)
          || !soft_df_operand (operands[1], E_DFmode)
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 674 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_ARM && TARGET_HARD_FLOAT
   && (   register_operand (operands[0], DFmode)
       || register_operand (operands[1], DFmode)))))
        return -1;
      return 6814; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3491 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(arm_arch_thumb2)))
    return -1;
  return 6365; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3479 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(arm_arch_thumb2)))
            return 6364; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 12267 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_HAVE_MOVT)))
    return -1;
  return 6518; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6668 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM)))
    return -1;
  return 6484; /* *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 (pattern501 (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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 574 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6622; /* *p iwmmxt_clrv8qi */

    case 4:
      if (pattern501 (x6, E_V4HImode) != 0
          || !s_register_operand (operands[0], E_V4HImode)
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 584 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6623; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 593 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6624; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1656 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
    return 6722; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1671 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6723; /* *p iwmmxt_walignr0 */

    case 97:
      if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1686 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6724; /* *p iwmmxt_walignr1 */

    case 98:
      if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1701 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6725; /* *p iwmmxt_walignr2 */

    case 99:
      if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1716 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6726; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 929 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 6318; /* *p *arm_addsi3 */

        case E_V2SImode:
          if (pattern345 (x3, E_V2SImode) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 341 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6596; /* *p *addv2si3_iwmmxt */

        case E_V4HImode:
          if (pattern345 (x3, E_V4HImode) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 341 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6597; /* *p *addv4hi3_iwmmxt */

        case E_V8QImode:
          if (pattern345 (x3, E_V8QImode) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 341 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6598; /* *p *addv8qi3_iwmmxt */

        case E_SFmode:
          if (pattern344 (x3, E_SFmode) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1006 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 6819; /* *p *addsf3_vfp */

        case E_DFmode:
          if (pattern344 (x3, E_DFmode) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1016 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 6820; /* *p *adddf3_vfp */

        case E_QQmode:
          if (pattern344 (x3, E_QQmode) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 25 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
            return -1;
          return 6930; /* *p addqq3 */

        case E_HQmode:
          if (pattern344 (x3, E_HQmode) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 25 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
            return -1;
          return 6931; /* *p addhq3 */

        case E_SQmode:
          if (pattern344 (x3, E_SQmode) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 25 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
            return -1;
          return 6932; /* *p addsq3 */

        case E_UQQmode:
          if (pattern344 (x3, E_UQQmode) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 25 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
            return -1;
          return 6933; /* *p adduqq3 */

        case E_UHQmode:
          if (pattern344 (x3, E_UHQmode) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 25 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
            return -1;
          return 6934; /* *p adduhq3 */

        case E_USQmode:
          if (pattern344 (x3, E_USQmode) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 25 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
            return -1;
          return 6935; /* *p addusq3 */

        case E_HAmode:
          if (pattern344 (x3, E_HAmode) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 25 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
            return -1;
          return 6936; /* *p addha3 */

        case E_SAmode:
          if (pattern344 (x3, E_SAmode) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 25 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
            return -1;
          return 6937; /* *p addsa3 */

        case E_UHAmode:
          if (pattern344 (x3, E_UHAmode) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 25 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
            return -1;
          return 6938; /* *p adduha3 */

        case E_USAmode:
          if (pattern344 (x3, E_USAmode) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 25 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
            return -1;
          return 6939; /* *p addusa3 */

        case E_V4QQmode:
          if (pattern344 (x3, E_V4QQmode) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 46 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_GE_BITS_READ)))
            return -1;
          return 6940; /* *p *arm_addv4qq3 */

        case E_V2HQmode:
          if (pattern344 (x3, E_V2HQmode) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 46 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_GE_BITS_READ)))
            return -1;
          return 6941; /* *p *arm_addv2hq3 */

        case E_V2HAmode:
          if (pattern344 (x3, E_V2HAmode) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 46 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_GE_BITS_READ)))
            return -1;
          return 6942; /* *p *arm_addv2ha3 */

        default:
          return -1;
        }

    case MULT:
      if (pattern471 (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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1486 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6709; /* *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 (pattern644 (x13))
                {
                case 0:
                  if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1517 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 6711; /* *p iwmmxt_tmiabb */

                case 1:
                  if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1551 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 6713; /* *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 (pattern644 (x13))
                {
                case 0:
                  if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1534 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 6712; /* *p iwmmxt_tmiatb */

                case 1:
                  if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1570 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 6714; /* *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 (pattern566 (x11, E_SImode) != 0)
            return -1;
          switch (pattern645 (x5))
            {
            case 0:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 742 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6776; /* *p iwmmxt_wmiawbb */

            case 1:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 755 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6777; /* *p iwmmxt_wmiawbt */

            case 2:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 768 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6778; /* *p iwmmxt_wmiawtb */

            case 3:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 781 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6779; /* *p iwmmxt_wmiawtt */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case PLUS:
      if (pattern472 (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 (pattern607 (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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1504 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6710; /* *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 (pattern670 (x5))
            {
            case 0:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 561 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6768; /* *p iwmmxt_wmiabb */

            case 1:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 585 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6769; /* *p iwmmxt_wmiabt */

            case 2:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 609 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6770; /* *p iwmmxt_wmiatb */

            case 3:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 633 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6771; /* *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 (pattern581 (x3, E_CCFPmode))
        {
        case 0:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1815 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 6867; /* *p *cmpsf_vfp */

        case 1:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1839 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 6869; /* *p *cmpdf_vfp */

        default:
          return -1;
        }

    case E_CCFPEmode:
      switch (pattern581 (x3, E_CCFPEmode))
        {
        case 0:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1827 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 6868; /* *p *cmpsf_trap_vfp */

        case 1:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1851 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 6870; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2277 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch_thumb2)))
            return -1;
          return 6338; /* *p *mls */

        case E_SFmode:
          if (pattern582 (x5, E_SFmode) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1279 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 6835; /* *p *mulsf3negsfaddsf_vfp */

        case E_DFmode:
          if (pattern582 (x5, E_DFmode) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1290 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 6836; /* *p *fmuldf3negdfadddf_vfp */

        default:
          return -1;
        }

    case SIGN_EXTEND:
      if (pattern567 (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 (pattern645 (x6))
        {
        case 0:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 794 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6780; /* *p iwmmxt_wmiawbbn */

        case 1:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 807 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6781; /* *p iwmmxt_wmiawbtn */

        case 2:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 820 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6782; /* *p iwmmxt_wmiawtbn */

        case 3:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 833 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6783; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2246 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 6336; /* *p *mul */

        case E_V4HImode:
          if (pattern521 (x5, E_V4HImode) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 481 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6614; /* *p *mulv4hi3_iwmmxt */

        case E_V2SImode:
          if (pattern521 (x5, E_V2SImode) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 361 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6753; /* *p iwmmxt_wmulwl */

        case E_SFmode:
          if (pattern522 (x5, E_SFmode) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1113 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 6825; /* *p *mulsf3_vfp */

        case E_DFmode:
          if (pattern522 (x5, E_DFmode) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1123 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 6826; /* *p *muldf3_vfp */

        default:
          return -1;
        }

    case SIGN_EXTEND:
      if (GET_MODE (x6) != E_SImode)
        return -1;
      switch (pattern523 (x5, E_HImode))
        {
        case 0:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2513 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY)))
            return -1;
          return 6345; /* *p mulhisi3 */

        case 1:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2539 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY)))
            return -1;
          return 6347; /* *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 (pattern523 (x5, E_SImode))
        {
        case 0:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2526 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY)))
            return -1;
          return 6346; /* *p *mulhisi3tb */

        case 1:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2553 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY)))
            return -1;
          return 6348; /* *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 (pattern568 (x5, E_SFmode) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1153 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && !flag_rounding_math)))
            return -1;
          return 6827; /* *p *mulsf3negsf_vfp */

        case E_DFmode:
          if (pattern568 (x5, E_DFmode) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1173 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE
  && !flag_rounding_math)))
            return -1;
          return 6829; /* *p *muldf3negdf_vfp */

        default:
          return -1;
        }

    case UNSIGNED_FLOAT:
      switch (pattern502 (x5))
        {
        case 0:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1865 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP3 && !flag_rounding_math)))
            return -1;
          return 6871; /* *p *combine_vcvt_f32_u32 */

        case 1:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1878 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP3 && !flag_rounding_math
  && !TARGET_VFP_SINGLE)))
            return -1;
          return 6873; /* *p *combine_vcvt_f64_u32 */

        default:
          return -1;
        }

    case FLOAT:
      switch (pattern502 (x5))
        {
        case 0:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1865 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP3 && !flag_rounding_math)))
            return -1;
          return 6872; /* *p *combine_vcvt_f32_s32 */

        case 1:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1878 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP3 && !flag_rounding_math
  && !TARGET_VFP_SINGLE)))
            return -1;
          return 6874; /* *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 (pattern546 (x5) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6418; /* *p arm_qadd8 */

    case 48:
      if (pattern546 (x5) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6419; /* *p arm_qsub8 */

    case 49:
      if (pattern546 (x5) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6420; /* *p arm_shadd8 */

    case 50:
      if (pattern546 (x5) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6421; /* *p arm_shsub8 */

    case 51:
      if (pattern546 (x5) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6422; /* *p arm_uhadd8 */

    case 52:
      if (pattern546 (x5) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6423; /* *p arm_uhsub8 */

    case 53:
      if (pattern546 (x5) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6424; /* *p arm_uqadd8 */

    case 54:
      if (pattern546 (x5) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6425; /* *p arm_uqsub8 */

    case 55:
      if (pattern546 (x5) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6426; /* *p arm_qadd16 */

    case 56:
      if (pattern546 (x5) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6427; /* *p arm_qasx */

    case 57:
      if (pattern546 (x5) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6428; /* *p arm_qsax */

    case 58:
      if (pattern546 (x5) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6429; /* *p arm_qsub16 */

    case 59:
      if (pattern546 (x5) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6430; /* *p arm_shadd16 */

    case 60:
      if (pattern546 (x5) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6431; /* *p arm_shasx */

    case 61:
      if (pattern546 (x5) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6432; /* *p arm_shsax */

    case 62:
      if (pattern546 (x5) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6433; /* *p arm_shsub16 */

    case 63:
      if (pattern546 (x5) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6434; /* *p arm_uhadd16 */

    case 64:
      if (pattern546 (x5) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6435; /* *p arm_uhasx */

    case 65:
      if (pattern546 (x5) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6436; /* *p arm_uhsax */

    case 66:
      if (pattern546 (x5) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6437; /* *p arm_uhsub16 */

    case 67:
      if (pattern546 (x5) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6438; /* *p arm_uqadd16 */

    case 68:
      if (pattern546 (x5) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6439; /* *p arm_uqasx */

    case 69:
      if (pattern546 (x5) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6440; /* *p arm_uqsax */

    case 70:
      if (pattern546 (x5) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6441; /* *p arm_uqsub16 */

    case 71:
      if (pattern546 (x5) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6442; /* *p arm_smusd */

    case 72:
      if (pattern546 (x5) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6443; /* *p arm_smusdx */

    case 43:
      if (pattern546 (x5) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6444; /* *p arm_sxtab16 */

    case 44:
      if (pattern546 (x5) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6445; /* *p arm_uxtab16 */

    case 73:
      if (pattern546 (x5) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5963 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6446; /* *p arm_usad8 */

    case 98:
      if (pattern546 (x5) != 0)
        return -1;
      if ((
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6036 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ)))
        return 6472; /* *p arm_smuad_insn */
      if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6036 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && ARM_Q_BIT_READ)))
        return -1;
      return 6473; /* *p arm_smuad_setq_insn */

    case 99:
      if (pattern546 (x5) != 0)
        return -1;
      if ((
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6036 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ)))
        return 6474; /* *p arm_smuadx_insn */
      if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6036 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && ARM_Q_BIT_READ)))
        return -1;
      return 6475; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6063 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ)))
        return 6476; /* *p arm_ssat16_insn */
      if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6063 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && ARM_Q_BIT_READ)))
        return -1;
      return 6477; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6063 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ)))
        return 6478; /* *p arm_usat16_insn */
      if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6063 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && ARM_Q_BIT_READ)))
        return -1;
      return 6479; /* *p arm_usat16_setq_insn */

    case 13:
      if (pattern547 (x5) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 528 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6618; /* *p iwmmxt_wmacsz */

    case 14:
      if (pattern547 (x5) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 549 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6620; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 780 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6637; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1750 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6729; /* *p iwmmxt_wsadbz */

        case E_V4HImode:
          if (!register_operand (operands[1], E_V4HImode)
              || !register_operand (operands[2], E_V4HImode)
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1760 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6730; /* *p iwmmxt_wsadhz */

        default:
          return -1;
        }

    case 112:
      if (pattern548 (x5, E_V4HImode) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 371 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6754; /* *p iwmmxt_wqmulm */

    case 111:
      if (pattern548 (x5, E_V2SImode) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 381 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6755; /* *p iwmmxt_wqmulwm */

    case 110:
      if (pattern548 (x5, E_V4HImode) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 391 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6756; /* *p iwmmxt_wqmulmr */

    case 109:
      if (pattern548 (x5, E_V2SImode) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 401 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6757; /* *p iwmmxt_wqmulwmr */

    case 1110:
      if (pattern549 (x5) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 10165 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE)))
        return -1;
      return 6986; /* *p mve_uqrshll_sat64_di */

    case 1111:
      if (pattern549 (x5) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 10165 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE)))
        return -1;
      return 6987; /* *p mve_uqrshll_sat48_di */

    case 1112:
      if (pattern549 (x5) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 10177 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE)))
        return -1;
      return 6988; /* *p mve_sqrshrl_sat64_di */

    case 1113:
      if (pattern549 (x5) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 10177 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE)))
        return -1;
      return 6989; /* *p mve_sqrshrl_sat48_di */

    case 1109:
      if (pattern550 (x5) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 10189 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE)))
        return -1;
      return 6990; /* *p mve_uqrshl_si */

    case 1108:
      if (pattern550 (x5) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 10201 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE)))
        return -1;
      return 6991; /* *p mve_sqrshr_si */

    case 1107:
      if (pattern551 (x5) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 10224 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE)))
        return -1;
      return 6993; /* *p mve_urshrl_di */

    case 1106:
      if (pattern552 (x5, E_SImode) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 10247 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE)))
        return -1;
      return 6995; /* *p mve_urshr_si */

    case 1105:
      if (pattern552 (x5, E_DImode) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 10270 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE)))
        return -1;
      return 6997; /* *p mve_srshr_si */

    case 1104:
      if (pattern551 (x5) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 10282 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE)))
        return -1;
      return 6998; /* *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 (pattern473 (x1, E_SImode) != 0)
            return -1;
          if ((
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2777 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY && !ARM_Q_BIT_READ)))
            return 6358; /* *p arm_smlawb_insn */
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2777 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY && ARM_Q_BIT_READ)))
            return -1;
          return 6359; /* *p arm_smlawb_setq_insn */

        case 80:
          if (pattern473 (x1, E_SImode) != 0)
            return -1;
          if ((
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2777 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY && !ARM_Q_BIT_READ)))
            return 6360; /* *p arm_smlawt_insn */
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2777 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY && ARM_Q_BIT_READ)))
            return -1;
          return 6361; /* *p arm_smlawt_setq_insn */

        case 74:
          if (pattern473 (x1, E_SImode) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5974 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
            return -1;
          return 6447; /* *p arm_usada8 */

        case 75:
          if (pattern473 (x1, E_DImode) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5985 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
            return -1;
          return 6448; /* *p arm_smlald */

        case 76:
          if (pattern473 (x1, E_DImode) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5985 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
            return -1;
          return 6449; /* *p arm_smlaldx */

        case 77:
          if (pattern473 (x1, E_DImode) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5985 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
            return -1;
          return 6450; /* *p arm_smlsld */

        case 78:
          if (pattern473 (x1, E_DImode) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5985 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
            return -1;
          return 6451; /* *p arm_smlsldx */

        case 94:
          if (pattern473 (x1, E_SImode) != 0)
            return -1;
          if ((
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6008 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ)))
            return 6464; /* *p arm_smlad_insn */
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6008 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && ARM_Q_BIT_READ)))
            return -1;
          return 6465; /* *p arm_smlad_setq_insn */

        case 95:
          if (pattern473 (x1, E_SImode) != 0)
            return -1;
          if ((
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6008 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ)))
            return 6466; /* *p arm_smladx_insn */
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6008 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && ARM_Q_BIT_READ)))
            return -1;
          return 6467; /* *p arm_smladx_setq_insn */

        case 96:
          if (pattern473 (x1, E_SImode) != 0)
            return -1;
          if ((
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6008 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ)))
            return 6468; /* *p arm_smlsd_insn */
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6008 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && ARM_Q_BIT_READ)))
            return -1;
          return 6469; /* *p arm_smlsd_setq_insn */

        case 97:
          if (pattern473 (x1, E_SImode) != 0)
            return -1;
          if ((
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6008 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ)))
            return 6470; /* *p arm_smlsdx_insn */
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6008 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD && ARM_Q_BIT_READ)))
            return -1;
          return 6471; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6091 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
            return -1;
          return 6480; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6652 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM)))
            return -1;
          return 6483; /* *p pic_add_dot_plus_eight */

        case 11:
          if (pattern474 (x1) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 518 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6617; /* *p iwmmxt_wmacs */

        case 12:
          if (pattern474 (x1) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 539 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6619; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1728 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6727; /* *p iwmmxt_wsadb */

            case E_V4HImode:
              if (!register_operand (operands[2], E_V4HImode)
                  || !register_operand (operands[3], E_V4HImode)
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1740 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6728; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4316 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM_QBIT)))
            return -1;
          return 6380; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4913 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(unaligned_access)))
            return -1;
          return 6390; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4969 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(unaligned_access)))
                return -1;
              return 6393; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4984 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(unaligned_access)))
                return -1;
              return 6394; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5953 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
            return -1;
          return 6416; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5953 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
            return -1;
          return 6417; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9159 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 6496; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 12097 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch_thumb2)))
            return -1;
          return 6516; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 12188 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_HARD_TP)))
            return -1;
          return 6517; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 560 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6621; /* *p iwmmxt_clrdi */

        case 8:
          switch (pattern447 (x1, E_SImode))
            {
            case 0:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1579 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6715; /* *p iwmmxt_tmovmskb */

            case 1:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1588 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6716; /* *p iwmmxt_tmovmskh */

            case 2:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1597 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6717; /* *p iwmmxt_tmovmskw */

            default:
              return -1;
            }

        case 7:
          switch (pattern447 (x1, E_DImode))
            {
            case 0:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1606 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6718; /* *p iwmmxt_waccb */

            case 1:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1615 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6719; /* *p iwmmxt_wacch */

            case 2:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1624 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6720; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1641 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6721; /* *p iwmmxt_waligni */

        case 108:
          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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 24 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6731; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 24 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6732; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 24 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6733; /* *p iwmmxt_wabsv8qi3 */

            default:
              return -1;
            }

        case 107:
          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 (pattern584 (x4, E_V4HImode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 111 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6739; /* *p addcv4hi3 */

            case E_V2SImode:
              if (pattern584 (x4, E_V2SImode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 111 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6740; /* *p addcv2si3 */

            default:
              return -1;
            }

        case 32:
          switch (pattern448 (x1))
            {
            case 0:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2040 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 )))
                return -1;
              return 6876; /* *p btruncsf2 */

            case 1:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && (
#line 2040 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE))))
                return -1;
              return 6879; /* *p btruncdf2 */

            default:
              return -1;
            }

        case 35:
          switch (pattern448 (x1))
            {
            case 0:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2040 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 )))
                return -1;
              return 6877; /* *p nearbyintsf2 */

            case 1:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && (
#line 2040 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE))))
                return -1;
              return 6880; /* *p nearbyintdf2 */

            default:
              return -1;
            }

        case 36:
          switch (pattern448 (x1))
            {
            case 0:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2040 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 )))
                return -1;
              return 6878; /* *p rintsf2 */

            case 1:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && (
#line 2040 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE))))
                return -1;
              return 6881; /* *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 114:
          switch (pattern654 (x4))
            {
            case 0:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 446 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6760; /* *p iwmmxt_wqmiabb */

            case 1:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 459 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6761; /* *p iwmmxt_wqmiabt */

            case 2:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 472 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6762; /* *p iwmmxt_wqmiatb */

            case 3:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 485 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6763; /* *p iwmmxt_wqmiatt */

            default:
              return -1;
            }

        case 113:
          switch (pattern654 (x4))
            {
            case 0:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 498 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6764; /* *p iwmmxt_wqmiabbn */

            case 1:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 511 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6765; /* *p iwmmxt_wqmiabtn */

            case 2:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 524 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6766; /* *p iwmmxt_wqmiatbn */

            case 3:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 537 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6767; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 494 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6615; /* *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 (pattern595 (x6, E_V4HImode, E_V4SImode) != 0
                      || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 507 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 6616; /* *p umulv4hi3_highpart */

                case 32L:
                  if (pattern595 (x6, E_V2SImode, E_V2DImode) != 0
                      || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 279 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 6748; /* *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 (pattern624 (x11, 1) != 0
                      || pattern616 (x6, E_V8QImode, E_V8HImode) != 0
                      || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 617 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 6625; /* *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]
                      || pattern616 (x6, E_V4HImode, E_V4SImode) != 0
                      || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 635 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 6626; /* *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 (pattern595 (x6, E_V8QImode, E_V8HImode) != 0
                      || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 648 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 6627; /* *p iwmmxt_uavgv8qi3 */

                case E_V4HImode:
                  if (pattern595 (x6, E_V4HImode, E_V4SImode) != 0
                      || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 661 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 6628; /* *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 (pattern615 (x11) != 0)
                    return -1;
                  x20 = XVECEXP (x11, 0, 3);
                  if (GET_CODE (x20) != CONST_INT
                      || XWINT (x20, 0) != 32768L
                      || XWINT (x8, 0) != 16L
                      || pattern616 (x6, E_V4HImode, E_V4SImode) != 0
                      || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 316 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 6750; /* *p iwmmxt_wmulumr */

                case 2:
                  if (pattern617 (x6) != 0
                      || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 350 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 6752; /* *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 (pattern595 (x6, E_V8QImode, E_V8HImode) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 37 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6734; /* *p iwmmxt_wabsdiffb */

        case E_V4HImode:
          if (pattern595 (x6, E_V4HImode, E_V4SImode) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 50 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6735; /* *p iwmmxt_wabsdiffh */

        case E_V2SImode:
          if (pattern595 (x6, E_V2SImode, E_V2DImode) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 63 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6736; /* *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
          || pattern624 (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 (pattern625 (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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 143 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6741; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 175 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6742; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 265 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6747; /* *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 (pattern615 (x11) != 0
                  || XWINT (x8, 0) != 16L
                  || pattern616 (x6, E_V4HImode, E_V4SImode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 297 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6749; /* *p iwmmxt_wmulsmr */

            case 2:
              if (pattern617 (x6) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 333 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6751; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1682 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return -1;
              return 6327; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1816 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return -1;
              return 6331; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1833 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return -1;
              return 6332; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1851 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM)))
                return -1;
              return 6333; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1866 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM)))
                return -1;
              return 6334; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1699 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM)))
        return -1;
      return 6328; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2005 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return -1;
              return 6335; /* *p *arm_subsi3_insn */

            case E_V2SImode:
              if (pattern345 (x4, E_V2SImode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6605; /* *p *subv2si3_iwmmxt */

            case E_V4HImode:
              if (pattern345 (x4, E_V4HImode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6606; /* *p *subv4hi3_iwmmxt */

            case E_V8QImode:
              if (pattern345 (x4, E_V8QImode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6607; /* *p *subv8qi3_iwmmxt */

            case E_SFmode:
              if (pattern344 (x4, E_SFmode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1038 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
                return -1;
              return 6821; /* *p *subsf3_vfp */

            case E_DFmode:
              if (pattern344 (x4, E_DFmode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1048 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
                return -1;
              return 6822; /* *p *subdf3_vfp */

            case E_QQmode:
              if (pattern344 (x4, E_QQmode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 84 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
                return -1;
              return 6957; /* *p subqq3 */

            case E_HQmode:
              if (pattern344 (x4, E_HQmode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 84 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
                return -1;
              return 6958; /* *p subhq3 */

            case E_SQmode:
              if (pattern344 (x4, E_SQmode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 84 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
                return -1;
              return 6959; /* *p subsq3 */

            case E_UQQmode:
              if (pattern344 (x4, E_UQQmode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 84 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
                return -1;
              return 6960; /* *p subuqq3 */

            case E_UHQmode:
              if (pattern344 (x4, E_UHQmode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 84 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
                return -1;
              return 6961; /* *p subuhq3 */

            case E_USQmode:
              if (pattern344 (x4, E_USQmode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 84 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
                return -1;
              return 6962; /* *p subusq3 */

            case E_HAmode:
              if (pattern344 (x4, E_HAmode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 84 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
                return -1;
              return 6963; /* *p subha3 */

            case E_SAmode:
              if (pattern344 (x4, E_SAmode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 84 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
                return -1;
              return 6964; /* *p subsa3 */

            case E_UHAmode:
              if (pattern344 (x4, E_UHAmode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 84 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
                return -1;
              return 6965; /* *p subuha3 */

            case E_USAmode:
              if (pattern344 (x4, E_USAmode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 84 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
                return -1;
              return 6966; /* *p subusa3 */

            case E_V4QQmode:
              if (pattern344 (x4, E_V4QQmode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 105 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_GE_BITS_READ)))
                return -1;
              return 6967; /* *p *arm_subv4qq3 */

            case E_V2HQmode:
              if (pattern344 (x4, E_V2HQmode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 105 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_GE_BITS_READ)))
                return -1;
              return 6968; /* *p *arm_subv2hq3 */

            case E_V2HAmode:
              if (pattern344 (x4, E_V2HAmode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 105 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_GE_BITS_READ)))
                return -1;
              return 6969; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9661 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 6509; /* *p *sub_shiftsi */

        case PLUS:
          if (pattern472 (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 (pattern623 (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 (pattern607 (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 (pattern670 (x10))
            {
            case 0:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 657 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6772; /* *p iwmmxt_wmiabbn */

            case 1:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 681 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6773; /* *p iwmmxt_wmiabtn */

            case 2:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 705 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6774; /* *p iwmmxt_wmiatbn */

            case 3:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 729 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6775; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9580 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return -1;
              return 6500; /* *p *rsb_multsi */

            case REG:
            case SUBREG:
              switch (GET_MODE (operands[0]))
                {
                case E_SFmode:
                  if (pattern594 (x4, E_SFmode) != 0
                      || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1245 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
                    return -1;
                  return 6833; /* *p *mulsf3subsf_vfp */

                case E_DFmode:
                  if (pattern594 (x4, E_DFmode) != 0
                      || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1256 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
                    return -1;
                  return 6834; /* *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 (pattern622 (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 (pattern652 (x1))
            {
            case 0:
              if (pattern666 (x4, SIGN_EXTEND) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 232 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6745; /* *p iwmmxt_wmaddsn */

            case 1:
              if (pattern666 (x4, ZERO_EXTEND) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 251 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6746; /* *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 (pattern583 (x4, E_SFmode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1316 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
                return -1;
              return 6837; /* *p *mulsf3negsfsubsf_vfp */

            case E_DFmode:
              if (pattern583 (x4, E_DFmode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1328 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
                return -1;
              return 6838; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9594 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && GET_CODE (operands[2]) != MULT)))
        return -1;
      return 6505; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1323 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 6323; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1354 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 6325; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1375 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return -1;
              return 6326; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1734 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM)))
                return -1;
              return 6330; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1714 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM || (TARGET_THUMB2 && !CONST_INT_P (operands[2])))))
            return -1;
          return 6329; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1341 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
        return -1;
      return 6324; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2264 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                    return -1;
                  return 6337; /* *p *mla */

                case E_SFmode:
                  if (pattern565 (x4, E_SFmode) != 0
                      || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1211 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
                    return -1;
                  return 6831; /* *p *mulsf3addsf_vfp */

                case E_DFmode:
                  if (pattern565 (x4, E_DFmode) != 0
                      || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1222 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
                    return -1;
                  return 6832; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9580 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return -1;
              return 6499; /* *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 (pattern614 (x4, E_SImode) != 0
                      || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2588 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY && !ARM_Q_BIT_READ)))
                    return -1;
                  return 6349; /* *p *arm_maddhisi4 */

                case E_DImode:
                  if (pattern614 (x4, E_DImode) != 0
                      || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2732 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY)))
                    return -1;
                  return 6355; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2748 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY)))
                    return -1;
                  return 6356; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2765 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY)))
                    return -1;
                  return 6357; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2635 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY && !ARM_Q_BIT_READ)))
                return -1;
              return 6351; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2684 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY && !ARM_Q_BIT_READ)))
                return -1;
              return 6353; /* *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 (pattern622 (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 (pattern652 (x1))
            {
            case 0:
              switch (pattern665 (x4, SIGN_EXTEND))
                {
                case 0:
                  if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1454 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 6707; /* *p iwmmxt_wmadds */

                case 1:
                  if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 194 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 6743; /* *p iwmmxt_wmaddsx */

                default:
                  return -1;
                }

            case 1:
              switch (pattern665 (x4, ZERO_EXTEND))
                {
                case 0:
                  if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1473 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 6708; /* *p iwmmxt_wmaddu */

                case 1:
                  if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 213 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 6744; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5608 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
            return -1;
          return 6405; /* *p *arm_zero_extendhisi2addsi */

        case E_QImode:
          if (!s_register_operand (operands[1], E_QImode)
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5678 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
            return -1;
          return 6408; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5943 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 6415; /* *p *arm_extendqisi2addsi */

    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      operands[2] = x5;
      if (pattern445 (x1) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9594 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && GET_CODE (operands[2]) != MULT)))
        return -1;
      return 6504; /* *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 (pattern608 (x4, E_V8QImode, E_QImode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 676 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6629; /* *p iwmmxt_tinsrb */

            case E_V4HImode:
              if (pattern608 (x4, E_V4HImode, E_HImode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 693 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6630; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 710 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6631; /* *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 (pattern609 (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
              || pattern626 (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
              || pattern636 (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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1029 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6665; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1093 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6668; /* *p iwmmxt_wunpckilb */

            default:
              return -1;
            }

        case 4:
          if (pattern609 (x12) != 0
              || pattern626 (x13, 4) != 0
              || XWINT (x9, 0) != 5L
              || pattern636 (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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1049 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6666; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1113 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6669; /* *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
              || pattern636 (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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1065 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6667; /* *p iwmmxt_wunpckihw */

            case 0L:
              if (XWINT (x24, 0) != 1L
                  || XWINT (x27, 0) != 1L
                  || XWINT (x28, 0) != 0L
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1129 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6670; /* *p iwmmxt_wunpckilw */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case SS_MINUS:
      if (pattern420 (x1, SS_PLUS) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 81 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6737; /* *p iwmmxt_waddsubhx */

    case SS_PLUS:
      if (pattern420 (x1, SS_MINUS) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 99 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6738; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4326 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM_QBIT)))
            return -1;
          return 6381; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1647 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HAVE_FPCXT_CMSE && use_cmse)))
                return -1;
              return 6863; /* *p push_fpsysreg_insn */

            case POST_INC:
              x9 = XEXP (x8, 0);
              operands[0] = x9;
              if (!s_register_operand (operands[0], E_SImode)
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1666 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HAVE_FPCXT_CMSE && use_cmse)))
                return -1;
              return 6864; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 124 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(ARM_DOUBLEWORD_ALIGN && TARGET_HAVE_LPAE)))
            return -1;
          return 6913; /* *p arm_atomic_loaddi2_ldrd */

        case 20:
          switch (pattern419 (x1))
            {
            case 0:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 479 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX)))
                return -1;
              return 6918; /* *p arm_load_exclusivesi */

            case 1:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 503 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD)))
                return -1;
              return 6920; /* *p arm_load_exclusivedi */

            default:
              return -1;
            }

        case 23:
          switch (pattern419 (x1))
            {
            case 0:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 491 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ)))
                return -1;
              return 6919; /* *p arm_load_acquire_exclusivesi */

            case 1:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 512 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQEXD && ARM_DOUBLEWORD_ALIGN)))
                return -1;
              return 6921; /* *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 (pattern569 (x3, E_V8QImode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 802 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6638; /* *p eqv8qi3 */

            case E_V4HImode:
              if (pattern569 (x3, E_V4HImode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 813 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6639; /* *p eqv4hi3 */

            case E_V2SImode:
              if (pattern569 (x3, E_V2SImode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 825 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6640; /* *p eqv2si3 */

            default:
              return -1;
            }

        case 14:
          switch (GET_MODE (operands[0]))
            {
            case E_V8QImode:
              if (pattern569 (x3, E_V8QImode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 836 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6641; /* *p gtuv8qi3 */

            case E_V4HImode:
              if (pattern569 (x3, E_V4HImode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 847 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6642; /* *p gtuv4hi3 */

            case E_V2SImode:
              if (pattern569 (x3, E_V2SImode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 858 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6643; /* *p gtuv2si3 */

            default:
              return -1;
            }

        case 15:
          switch (GET_MODE (operands[0]))
            {
            case E_V8QImode:
              if (pattern569 (x3, E_V8QImode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 869 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6644; /* *p gtv8qi3 */

            case E_V4HImode:
              if (pattern569 (x3, E_V4HImode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 880 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6645; /* *p gtv4hi3 */

            case E_V2SImode:
              if (pattern569 (x3, E_V2SImode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 891 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6646; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 71 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ)))
                return -1;
              return 6907; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 71 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ)))
                return -1;
              return 6908; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 71 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ)))
                return -1;
              return 6909; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 97 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ)))
                return -1;
              return 6910; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 97 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ)))
                return -1;
              return 6911; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 97 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ)))
                return -1;
              return 6912; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1277 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6683; /* *p rorv4hi3 */
          if (imm_or_reg_operand (operands[2], E_DImode)
              && (
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1361 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6695; /* *p rorv4hi3_di */
          break;

        case 1:
          if (imm_or_reg_operand (operands[2], E_SImode)
              && (
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1277 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6684; /* *p rorv2si3 */
          if (imm_or_reg_operand (operands[2], E_DImode)
              && (
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1361 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6696; /* *p rorv2si3_di */
          break;

        case 2:
          if (imm_or_reg_operand (operands[2], E_SImode)
              && (
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1277 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6685; /* *p rordi3 */
          if (imm_or_reg_operand (operands[2], E_DImode)
              && (
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1361 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6697; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1298 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6686; /* *p ashrv4hi3_iwmmxt */
          if (imm_or_reg_operand (operands[2], E_DImode)
              && (
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1382 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6698; /* *p ashrv4hi3_di */
          break;

        case 1:
          if (imm_or_reg_operand (operands[2], E_SImode)
              && (
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1298 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6687; /* *p ashrv2si3_iwmmxt */
          if (imm_or_reg_operand (operands[2], E_DImode)
              && (
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1382 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6699; /* *p ashrv2si3_di */
          break;

        case 2:
          if (imm_or_reg_operand (operands[2], E_SImode)
              && (
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1298 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6688; /* *p ashrdi3_iwmmxt */
          if (imm_or_reg_operand (operands[2], E_DImode)
              && (
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1382 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6700; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1707 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_HAVE_MVE)))
                    return 6904; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1319 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6689; /* *p lshrv4hi3_iwmmxt */
          if (register_operand (operands[2], E_DImode)
              && (
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1403 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6701; /* *p lshrv4hi3_di */
          break;

        case 1:
          if (imm_or_reg_operand (operands[2], E_SImode)
              && (
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1319 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6690; /* *p lshrv2si3_iwmmxt */
          if (register_operand (operands[2], E_DImode)
              && (
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1403 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6702; /* *p lshrv2si3_di */
          break;

        case 2:
          if (imm_or_reg_operand (operands[2], E_SImode)
              && (
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1319 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6691; /* *p lshrdi3_iwmmxt */
          if (register_operand (operands[2], E_DImode)
              && (
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1403 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6703; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1723 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_HAVE_MVE)))
                    return 6906; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1340 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6692; /* *p ashlv4hi3_iwmmxt */
          if (imm_or_reg_operand (operands[2], E_DImode)
              && (
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1424 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6704; /* *p ashlv4hi3_di */
          break;

        case 1:
          if (imm_or_reg_operand (operands[2], E_SImode)
              && (
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1340 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6693; /* *p ashlv2si3_iwmmxt */
          if (imm_or_reg_operand (operands[2], E_DImode)
              && (
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1424 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6705; /* *p ashlv2si3_di */
          break;

        case 2:
          if (imm_or_reg_operand (operands[2], E_SImode)
              && (
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1340 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6694; /* *p ashldi3_iwmmxt */
          if (imm_or_reg_operand (operands[2], E_DImode)
              && (
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1424 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 6706; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1715 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_HAVE_MVE)))
                    return 6905; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4650 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
    return -1;
  return 6388; /* *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, 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 (pattern525 (x6))
        {
        case 0:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 946 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6659; /* *p iwmmxt_wpackhss */

        case 1:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 957 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6660; /* *p iwmmxt_wpackwss */

        case 2:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 968 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6661; /* *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 (pattern525 (x6))
            {
            case 0:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 979 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6662; /* *p iwmmxt_wpackhus */

            case 1:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 990 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6663; /* *p iwmmxt_wpackwus */

            case 2:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1001 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6664; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 433 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6759; /* *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 (pattern623 (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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 417 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6758; /* *p iwmmxt_waddbhusm */

    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;
  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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1127 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM)))
            return 6319; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1278 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return 6321; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1301 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
        return -1;
      return 6322; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1142 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 6320; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 7822 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 6492; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3071 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 6363; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5729 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return 6409; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 7774 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
        return -1;
      return 6491; /* *p *arm_cmpsi_insn */

    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, 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:
      switch (pattern417 (x1))
        {
        case 0:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3634 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 6370; /* *p *iorsi3_insn */

        case 1:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 61 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6580; /* *p iwmmxt_iordi3 */

        case 2:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 318 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6590; /* *p *iorv2si3_iwmmxt */

        case 3:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 318 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6591; /* *p *iorv4hi3_iwmmxt */

        case 4:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 318 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6592; /* *p *iorv8qi3_iwmmxt */

        default:
          return -1;
        }

    case MULT:
      if (pattern414 (x1) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9580 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
        return -1;
      return 6501; /* *p *orr_multsi */

    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      operands[2] = x5;
      if (pattern445 (x1) == 0
          && (
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9594 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && GET_CODE (operands[2]) != MULT)))
        return 6506; /* *p *orr_shiftsi */
      if (GET_CODE (x5) != ASHIFT
          || GET_MODE (x5) != E_DImode)
        return -1;
      x6 = XEXP (x5, 1);
      if (GET_CODE (x6) != MINUS
          || GET_MODE (x6) != E_SImode)
        return -1;
      x7 = XEXP (x6, 0);
      if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 64])
        return -1;
      x8 = XEXP (x6, 1);
      if (GET_CODE (x8) != MULT
          || GET_MODE (x8) != E_SImode)
        return -1;
      x9 = XEXP (x8, 1);
      if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
        return -1;
      x10 = XEXP (x4, 1);
      if (GET_CODE (x10) != LSHIFTRT
          || GET_MODE (x10) != E_DImode)
        return -1;
      x11 = XEXP (x10, 0);
      if (GET_CODE (x11) != ASHIFT
          || GET_MODE (x11) != E_DImode)
        return -1;
      x12 = XEXP (x11, 1);
      if (GET_CODE (x12) != MULT
          || GET_MODE (x12) != E_SImode)
        return -1;
      x13 = XEXP (x12, 1);
      if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
        return -1;
      x14 = XEXP (x10, 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;
      x16 = XEXP (x1, 0);
      operands[4] = x16;
      x17 = XEXP (x16, 0);
      operands[5] = x17;
      if (!register_operand (operands[0], E_DImode)
          || GET_MODE (x4) != E_DImode)
        return -1;
      x18 = XEXP (x5, 0);
      operands[2] = x18;
      if (!register_operand (operands[2], E_DImode))
        return -1;
      x19 = XEXP (x8, 0);
      operands[3] = x19;
      if (!immediate_operand (operands[3], E_SImode))
        return -1;
      x20 = XEXP (x11, 0);
      operands[1] = x20;
      if (!register_operand (operands[1], E_DImode))
        return -1;
      x21 = XEXP (x12, 0);
      if (!rtx_equal_p (x21, operands[3]))
        return -1;
      x22 = XEXP (x14, 0);
      if (!rtx_equal_p (x22, operands[3])
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 858 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6784; /* *p iwmmxt_wmerge */

    case NOT:
      switch (pattern413 (x1))
        {
        case 0:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1534 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2)))
            return -1;
          return 6900; /* *p *orsi_notsi_si */

        case 1:
          x18 = XEXP (x5, 0);
          x23 = XEXP (x18, 0);
          operands[2] = x23;
          if (!s_register_operand (operands[2], E_SImode))
            return -1;
          x24 = XEXP (x18, 1);
          operands[3] = x24;
          if (!const_int_operand (operands[3], E_SImode)
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1546 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2)))
            return -1;
          return 6901; /* *p *orsi_not_shiftsi_si */

        default:
          return -1;
        }

    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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4943 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(unaligned_access)))
        return -1;
      return 6392; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5585 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch4 && !arm_arch6)))
            return 6403; /* *p *arm_zero_extendhisi2 */
          if ((
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5596 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch6)))
            return 6404; /* *p *arm_zero_extendhisi2_v6 */
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1107 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_arch6)))
            return -1;
          return 6888; /* *p *thumb2_zero_extendhisi2_v6 */

        case E_QImode:
          if (!nonimmediate_operand (operands[1], E_QImode))
            return -1;
          if ((
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5654 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && !arm_arch6)))
            return 6406; /* *p *arm_zero_extendqisi2 */
          if ((
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5666 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch6)))
            return 6407; /* *p *arm_zero_extendqisi2_v6 */
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1120 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_arch6)))
            return -1;
          return 6889; /* *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 (pattern570 (x5))
        {
        case 0:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 725 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6632; /* *p iwmmxt_textrmub */

        case 1:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 747 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6634; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 454 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH)))
                return -1;
              return 6914; /* *p arm_load_exclusiveqi */

            case E_HImode:
              if (!mem_noofs_operand (operands[1], E_HImode)
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 454 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH)))
                return -1;
              return 6915; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 467 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ)))
                return -1;
              return 6916; /* *p arm_load_acquire_exclusiveqi */

            case E_HImode:
              if (!mem_noofs_operand (operands[1], E_HImode)
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 467 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ)))
                return -1;
              return 6917; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3008 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return -1;
              return 6362; /* *p *arm_andsi3_insn */

            case 1:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 83 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6582; /* *p iwmmxt_anddi3 */

            case 2:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 308 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6587; /* *p *andv2si3_iwmmxt */

            case 3:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 308 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6588; /* *p *andv4hi3_iwmmxt */

            case 4:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 308 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6589; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 94 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6583; /* *p iwmmxt_nanddi3 */

        default:
          return -1;
        }

    case NOT:
      switch (pattern413 (x1))
        {
        case 0:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3502 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 6366; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3514 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 6367; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3807 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
        return -1;
      return 6372; /* *p *andsi_iorsi3_notsi */

    case MULT:
      if (pattern414 (x1) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9580 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
        return -1;
      return 6503; /* *p *and_multsi */

    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      operands[2] = x5;
      if (pattern445 (x1) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9594 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && GET_CODE (operands[2]) != MULT)))
        return -1;
      return 6508; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4933 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(unaligned_access && TARGET_32BIT)))
        return -1;
      return 6391; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5824 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch4 && !arm_arch6)))
                return 6410; /* *p *arm_extendhisi2 */
              if ((
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5837 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6)))
                return 6411; /* *p *arm_extendhisi2_v6 */
            }
          if (arm_reg_or_extendqisi_mem_op (operands[1], E_QImode))
            {
              if ((
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5918 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch4 && !arm_arch6)))
                return 6413; /* *p *arm_extendqisi */
              if ((
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5931 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch6)))
                return 6414; /* *p *arm_extendqisi_v6 */
            }
          if (!nonimmediate_operand (operands[1], E_QImode)
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1094 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_arch6)))
            return -1;
          return 6887; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5881 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch4)))
            return -1;
          return 6412; /* *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 (pattern570 (x5))
        {
        case 0:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 736 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6633; /* *p iwmmxt_textrmsb */

        case 1:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 758 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6635; /* *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 (pattern585 (x6, E_SFmode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1365 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA )))
                return -1;
              return 6839; /* *p fmasf4 */

            case E_DFmode:
              if (pattern585 (x6, E_DFmode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && (
#line 1365 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE))))
                return -1;
              return 6840; /* *p fmadf4 */

            default:
              return -1;
            }

        case NEG:
          x10 = XEXP (x9, 0);
          operands[3] = x10;
          switch (GET_MODE (operands[0]))
            {
            case E_SFmode:
              if (pattern586 (x6, E_SFmode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1423 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA )))
                return -1;
              return 6843; /* *p *fnmsubsf4 */

            case E_DFmode:
              if (pattern586 (x6, E_DFmode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && (
#line 1423 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE))))
                return -1;
              return 6844; /* *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 (pattern587 (x6, E_SFmode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1401 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA )))
                return -1;
              return 6841; /* *p *fmsubsf4 */

            case E_DFmode:
              if (pattern587 (x6, E_DFmode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && (
#line 1401 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE))))
                return -1;
              return 6842; /* *p *fmsubdf4 */

            default:
              return -1;
            }

        case NEG:
          x10 = XEXP (x9, 0);
          operands[3] = x10;
          switch (GET_MODE (operands[0]))
            {
            case E_SFmode:
              if (pattern588 (x6, E_SFmode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1446 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA )))
                return -1;
              return 6845; /* *p *fnmaddsf4 */

            case E_DFmode:
              if (pattern588 (x6, E_DFmode) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && (
#line 1446 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE))))
                return -1;
              return 6846; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 770 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 6636; /* *p iwmmxt_textrmw */

    case ZERO_EXTEND:
      switch (pattern449 (x1))
        {
        case 0:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1141 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6671; /* *p iwmmxt_wunpckehub */

        case 1:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1209 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6677; /* *p iwmmxt_wunpckelub */

        case 2:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1152 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6672; /* *p iwmmxt_wunpckehuh */

        case 3:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1220 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6678; /* *p iwmmxt_wunpckeluh */

        case 4:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1163 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6673; /* *p iwmmxt_wunpckehuw */

        case 5:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1231 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6679; /* *p iwmmxt_wunpckeluw */

        default:
          return -1;
        }

    case SIGN_EXTEND:
      switch (pattern449 (x1))
        {
        case 0:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1175 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6674; /* *p iwmmxt_wunpckehsb */

        case 1:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1243 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6680; /* *p iwmmxt_wunpckelsb */

        case 2:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1186 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6675; /* *p iwmmxt_wunpckehsh */

        case 3:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1254 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6681; /* *p iwmmxt_wunpckelsh */

        case 4:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1197 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6676; /* *p iwmmxt_wunpckehsw */

        case 5:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1265 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6682; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9523 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM)))
        return 6497; /* *p *arm_indirect_jump */
      if (memory_operand (operands[0], E_SImode)
          && (
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9532 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM)))
        return 6498; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 8488 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return 6493; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 238 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_ARM && TARGET_HARD_FLOAT
   && (   s_register_operand (operands[0], SImode)
       || s_register_operand (operands[1], SImode)))))
            return 6807; /* *p *arm_movsi_vfp */
          if ((
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 283 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && TARGET_VFP_BASE
   && (   s_register_operand (operands[0], SImode)
       || s_register_operand (operands[1], SImode)))))
            return 6808; /* *p *thumb2_movsi_vfp */
        }
    }
  operands[0] = x3;
  if (low_register_operand (operands[0], E_SImode)
      && GET_CODE (x6) == MEM
      && pattern393 (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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 223 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && (reload_in_progress || reload_completed))))
            return 6884; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 238 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 6885; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5076 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 6399; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 890 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 6817; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 901 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 6818; /* *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 (pattern553 (x4, E_SFmode) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1163 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 6828; /* *p *negmulsf3_vfp */

        case E_DFmode:
          if (pattern553 (x4, E_DFmode) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1184 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 6830; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3964 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return -1;
              return 6373; /* *p *smax_0 */

            case -1L:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3974 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return -1;
              return 6374; /* *p *smax_m1 */

            default:
              return -1;
            }

        case REG:
        case SUBREG:
          switch (pattern475 (x1))
            {
            case 0:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 903 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6647; /* *p *smaxv2si3_iwmmxt */

            case 1:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 903 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6648; /* *p *smaxv4hi3_iwmmxt */

            case 2:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 903 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6649; /* *p *smaxv8qi3_iwmmxt */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case SMIN:
      switch (pattern418 (x1))
        {
        case 0:
          if ((
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4374 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 6384; /* *p satsi_smax */
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4374 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 6385; /* *p satsi_smax_setq */

        case 1:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4400 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 6387; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4024 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 6375; /* *p *smin_0 */

        case REG:
        case SUBREG:
          switch (pattern475 (x1))
            {
            case 0:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 923 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6653; /* *p *sminv2si3_iwmmxt */

            case 1:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 923 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6654; /* *p *sminv4hi3_iwmmxt */

            case 2:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 923 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6655; /* *p *sminv8qi3_iwmmxt */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case SMAX:
      switch (pattern418 (x1))
        {
        case 0:
          if ((
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4374 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 6382; /* *p satsi_smin */
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4374 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 6383; /* *p satsi_smin_setq */

        case 1:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4400 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 6386; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1512 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 6853; /* *p *truncsisf2_vfp */

        case E_DFmode:
          if (!s_register_operand (operands[1], E_DFmode)
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1521 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 6854; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1895 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP3 && !flag_rounding_math)))
        return -1;
      return 6875; /* *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 (pattern589 (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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2429 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
        return -1;
      return 6339; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2429 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
        return -1;
      return 6340; /* *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 (pattern503 (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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1271 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 6891; /* *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 (pattern589 (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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2470 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 6341; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2470 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 6342; /* *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
          || pattern618 (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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2603 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY)))
        return -1;
      return 6350; /* *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]
          || pattern618 (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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2651 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY)))
            return -1;
          return 6352; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2701 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY)))
            return -1;
          return 6354; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 11366 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && adjacent_mem_locations (operands[2], operands[3]))))
                return 6510; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1256 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed
   && GET_CODE(operands[3]) != PLUS
   && GET_CODE(operands[3]) != MINUS)))
    return -1;
  return 6890; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 12528 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 6520; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 12556 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 6522; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 12543 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 6521; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 12570 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 6523; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 12598 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 6525; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 12585 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 6524; /* *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 115:
          if (XINT (x7, 1) != 115)
            return -1;
          switch (GET_MODE (x5))
            {
            case E_V2SImode:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 868 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6785; /* *p iwmmxt_tandcv2si3 */

            case E_V4HImode:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 868 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6786; /* *p iwmmxt_tandcv4hi3 */

            case E_V8QImode:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 868 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6787; /* *p iwmmxt_tandcv8qi3 */

            default:
              return -1;
            }

        case 116:
          if (XINT (x7, 1) != 116)
            return -1;
          switch (GET_MODE (x5))
            {
            case E_V2SImode:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 878 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6788; /* *p iwmmxt_torcv2si3 */

            case E_V4HImode:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 878 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6789; /* *p iwmmxt_torcv4hi3 */

            case E_V8QImode:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 878 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6790; /* *p iwmmxt_torcv8qi3 */

            default:
              return -1;
            }

        case 117:
          if (XINT (x7, 1) != 117)
            return -1;
          switch (GET_MODE (x5))
            {
            case E_V2SImode:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 888 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6791; /* *p iwmmxt_torvscv2si3 */

            case E_V4HImode:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 888 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6792; /* *p iwmmxt_torvscv4hi3 */

            case E_V8QImode:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 888 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6793; /* *p iwmmxt_torvscv8qi3 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 2:
      if (XINT (x5, 1) != 118)
        return -1;
      x9 = XVECEXP (x5, 0, 0);
      if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
          || XINT (x7, 1) != 118)
        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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 899 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6794; /* *p iwmmxt_textrcv2si3 */

        case E_V4HImode:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 899 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6795; /* *p iwmmxt_textrcv4hi3 */

        case E_V8QImode:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 899 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6796; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 164 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldrdstrd.md"
(TARGET_LDRD && TARGET_ARM && reload_completed
  && valid_operands_ldrd_strd (operands, true))))
    return -1;
  return 6526; /* *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
              || pattern476 (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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1429 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && optimize_size && reload_completed)))
            return -1;
          return 6897; /* *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)
              || pattern476 (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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1301 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed)))
                return -1;
              return 6895; /* *p *thumb2_addsi_short */

            case MINUS:
              if (!low_register_operand (operands[2], E_SImode)
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1330 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed)))
                return -1;
              return 6896; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2500 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return -1;
              return 6343; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2500 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return -1;
              return 6344; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3534 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return -1;
              return 6368; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3558 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                    return -1;
                  return 6369; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5152 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM)))
            return 6400; /* *p *arm_abssi2 */
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 117 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2)))
            return -1;
          return 6882; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5216 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM)))
                return 6401; /* *p *arm_neg_abssi2 */
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 170 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2)))
                return -1;
              return 6883; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1523 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed)))
                return -1;
              return 6899; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5997 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
                return -1;
              return 6452; /* *p arm_sadd8 */

            case 83:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5997 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
                return -1;
              return 6453; /* *p arm_ssub8 */

            case 84:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5997 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
                return -1;
              return 6454; /* *p arm_uadd8 */

            case 85:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5997 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
                return -1;
              return 6455; /* *p arm_usub8 */

            case 86:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5997 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
                return -1;
              return 6456; /* *p arm_sadd16 */

            case 87:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5997 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
                return -1;
              return 6457; /* *p arm_sasx */

            case 88:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5997 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
                return -1;
              return 6458; /* *p arm_ssax */

            case 89:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5997 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
                return -1;
              return 6459; /* *p arm_ssub16 */

            case 90:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5997 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
                return -1;
              return 6460; /* *p arm_uadd16 */

            case 91:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5997 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
                return -1;
              return 6461; /* *p arm_uasx */

            case 92:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5997 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
                return -1;
              return 6462; /* *p arm_usax */

            case 93:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5997 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
                return -1;
              return 6463; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 184 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldrdstrd.md"
(TARGET_LDRD && TARGET_ARM && reload_completed
  && valid_operands_ldrd_strd (operands, false))))
            return -1;
          return 6527; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1289 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed)))
                return -1;
              return 6892; /* *p *thumb2_movqi_shortim */

            case E_HImode:
              if (!low_register_operand (operands[0], E_HImode)
                  || !const_int_operand (operands[1], E_HImode)
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1289 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed)))
                return -1;
              return 6893; /* *p *thumb2_movhi_shortim */

            case E_SImode:
              if (!low_register_operand (operands[0], E_SImode)
                  || !const_int_operand (operands[1], E_SImode)
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1289 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed)))
                return -1;
              return 6894; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1512 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed)))
            return -1;
          return 6898; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 523 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER)))
                    return -1;
                  return 6922; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 523 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER)))
                    return -1;
                  return 6923; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 523 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER)))
                    return -1;
                  return 6924; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 523 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER)))
                    return -1;
                  return 6925; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 549 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQEXD && ARM_DOUBLEWORD_ALIGN)))
                    return -1;
                  return 6926; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 564 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ)))
                    return -1;
                  return 6927; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 564 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ)))
                    return -1;
                  return 6928; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 564 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ)))
                    return -1;
                  return 6929; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 11912 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && (reload_in_progress || reload_completed))))
        return -1;
      return 6514; /* *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 (pattern503 (x10) != 0)
        return -1;
      x5 = XEXP (x1, 0);
      operands[0] = x5;
      x11 = XEXP (x5, 0);
      operands[1] = x11;
      if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1665 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && TARGET_HAVE_FPCXT_CMSE && use_cmse)))
        return -1;
      return 6902; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 11834 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && (reload_in_progress || reload_completed))))
            return -1;
          return 6511; /* *p *load_multiple_with_writeback */

        case MEM:
          if (pattern504 (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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 993 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 2)))
            return -1;
          return 6568; /* *p *ldm2_da */

        case REG:
          if (pattern505 (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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1018 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 2)))
            return -1;
          return 6570; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 11890 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && (reload_in_progress || reload_completed))))
        return -1;
      return 6513; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 11867 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && (reload_in_progress || reload_completed))))
        return -1;
      return 6512; /* *p *pop_multiple_with_writeback_and_return */

    case SET:
      x15 = XEXP (x5, 1);
      switch (GET_CODE (x15))
        {
        case MEM:
          if (pattern504 (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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 643 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3)))
            return -1;
          return 6552; /* *p *ldm3_da */

        case REG:
          if (pattern505 (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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 673 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3)))
            return -1;
          return 6554; /* *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 (pattern619 (x3))
                {
                case 0:
                  x7 = XEXP (x4, 1);
                  if (pattern620 (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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 880 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3)))
                        return -1;
                      return 6561; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 957 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3)))
                        return -1;
                      return 6565; /* *p *ldm2_ib_update */

                    default:
                      return -1;
                    }

                case 1:
                  x12 = XEXP (x4, 0);
                  if (pattern629 (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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 917 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3)))
                        return -1;
                      return 6563; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 981 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3)))
                        return -1;
                      return 6567; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1007 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3)))
                        return -1;
                      return 6569; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1059 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3)))
                        return -1;
                      return 6573; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1031 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3)))
                        return -1;
                      return 6571; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1083 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3)))
                        return -1;
                      return 6575; /* *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
          || pattern572 (x2) != 0)
        return -1;
      x9 = XEXP (x1, 0);
      operands[6] = x9;
      x10 = XEXP (x9, 0);
      operands[7] = x10;
      if (pattern638 (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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 37 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4)))
            return -1;
          return 6528; /* *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 (pattern668 (x19, 16) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 160 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4)))
                return -1;
              return 6532; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 231 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4)))
                return -1;
              return 6536; /* *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 (pattern668 (x19, -4) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 302 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4)))
                return -1;
              return 6540; /* *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
          || pattern597 (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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 108 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4)))
            return -1;
          return 6530; /* *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 (pattern669 (x34, 16) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 196 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4)))
                return -1;
              return 6534; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 266 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4)))
                return -1;
              return 6538; /* *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 (pattern669 (x34, -4) != 0
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 338 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4)))
                return -1;
              return 6542; /* *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 (pattern619 (x4))
            {
            case 0:
              if (pattern571 (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
                  || pattern650 (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 (pattern661 (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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 508 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4)))
                    return -1;
                  return 6545; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 600 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4)))
                    return -1;
                  return 6549; /* *p *ldm3_ib_update */

                default:
                  return -1;
                }

            case 1:
              if (pattern596 (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 (pattern663 (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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 552 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4)))
                    return -1;
                  return 6547; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 628 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4)))
                    return -1;
                  return 6551; /* *p *stm3_ib_update */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case -12L:
          x8 = XEXP (x4, 1);
          switch (GET_CODE (x8))
            {
            case MEM:
              if (pattern572 (x2) != 0
                  || pattern650 (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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 660 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4)))
                    return -1;
                  return 6553; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 722 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4)))
                    return -1;
                  return 6557; /* *p *ldm3_db_update */

                default:
                  return -1;
                }

            case REG:
              operands[1] = x8;
              if (!arm_hard_general_register_operand (operands[1], E_SImode)
                  || pattern597 (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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 688 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4)))
                    return -1;
                  return 6555; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 750 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4)))
                    return -1;
                  return 6559; /* *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 (pattern619 (x6))
        {
        case 0:
          if (pattern637 (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
              || pattern656 (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 (pattern661 (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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 74 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 5)))
                return -1;
              return 6529; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 181 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 5)))
                return -1;
              return 6533; /* *p *ldm4_ib_update */

            default:
              return -1;
            }

        case 1:
          if (pattern640 (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
              || pattern662 (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 (pattern663 (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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 125 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 5)))
                return -1;
              return 6531; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 213 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 5)))
                return -1;
              return 6535; /* *p *stm4_ib_update */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case -16L:
      x24 = XEXP (x6, 1);
      switch (GET_CODE (x24))
        {
        case MEM:
          if (pattern573 (x24) != 0
              || pattern637 (x2) != 0
              || pattern656 (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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 251 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 5)))
                return -1;
              return 6537; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 323 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 5)))
                return -1;
              return 6541; /* *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 (pattern598 (x39) != 0
              || pattern640 (x2) != 0
              || pattern662 (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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 283 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 5)))
                return -1;
              return 6539; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 355 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 5)))
                return -1;
              return 6543; /* *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 (pattern620 (x12) != 0
          || pattern638 (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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 477 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3)))
            return -1;
          return 6544; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 582 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3)))
                return -1;
              return 6548; /* *p *ldm3_ib */

            case -12L:
              if (XWINT (x11, 0) != -8L)
                return -1;
              x15 = XEXP (x14, 1);
              if (XWINT (x15, 0) != -4L
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 704 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3)))
                return -1;
              return 6556; /* *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 (pattern629 (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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 537 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3)))
            return -1;
          return 6546; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 613 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3)))
                return -1;
              return 6550; /* *p *stm3_ib */

            case -12L:
              if (XWINT (x23, 0) != -8L)
                return -1;
              x27 = XEXP (x26, 1);
              if (XWINT (x27, 0) != -4L
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 735 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3)))
                return -1;
              return 6558; /* *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
          || pattern573 (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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 855 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 2)))
            return -1;
          return 6560; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 942 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 2)))
                return -1;
              return 6564; /* *p *ldm2_ib */

            case -8L:
              x13 = XEXP (x12, 1);
              if (XWINT (x13, 0) != -4L
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1044 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 2)))
                return -1;
              return 6572; /* *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 (pattern598 (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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 904 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 2)))
            return -1;
          return 6562; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 968 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 2)))
                return -1;
              return 6566; /* *p *stm2_ib */

            case -8L:
              x19 = XEXP (x18, 1);
              if (XWINT (x19, 0) != -4L
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1070 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 2)))
                return -1;
              return 6574; /* *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_316 (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_317 (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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3740 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return -1;
              return 6371; /* *p *arm_xorsi3 */

            case 1:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 72 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6581; /* *p iwmmxt_xordi3 */

            case 2:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 328 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6593; /* *p *xorv2si3_iwmmxt */

            case 3:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 328 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6594; /* *p *xorv4hi3_iwmmxt */

            case 4:
              if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 328 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 6595; /* *p *xorv8qi3_iwmmxt */

            default:
              return -1;
            }

        case MULT:
          if (pattern414 (x1) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9580 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 6502; /* *p *eor_multsi */

        case ASHIFT:
        case ROTATE:
        case ASHIFTRT:
        case LSHIFTRT:
        case ROTATERT:
          operands[2] = x5;
          if (pattern445 (x1) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9594 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && GET_CODE (operands[2]) != MULT)))
            return -1;
          return 6507; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4257 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY && !ARM_Q_BIT_READ)))
            return 6376; /* *p arm_qadd_insn */
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4257 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY && ARM_Q_BIT_READ)))
            return -1;
          return 6377; /* *p arm_qadd_setq_insn */

        case 1:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 351 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6599; /* *p ssaddv8qi3 */

        case 2:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 361 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6600; /* *p ssaddv4hi3 */

        case 3:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 371 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6601; /* *p ssaddv2si3 */

        case 4:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 75 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0)))
            return -1;
          return 6949; /* *p *arm_ssaddv4qq3 */

        case 5:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 75 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0)))
            return -1;
          return 6950; /* *p *arm_ssaddv2hq3 */

        case 6:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 75 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0)))
            return -1;
          return 6951; /* *p *arm_ssaddqq3 */

        case 7:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 75 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0)))
            return -1;
          return 6952; /* *p *arm_ssaddhq3 */

        case 8:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 75 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0)))
            return -1;
          return 6953; /* *p *arm_ssaddv2ha3 */

        case 9:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 75 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0)))
            return -1;
          return 6954; /* *p *arm_ssaddha3 */

        case 10:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 75 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ)))
            return -1;
          return 6955; /* *p *arm_ssaddsq3 */

        case 11:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 75 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ)))
            return -1;
          return 6956; /* *p *arm_ssaddsa3 */

        default:
          return -1;
        }

    case SS_MINUS:
      switch (pattern346 (x1))
        {
        case 0:
          if ((
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4257 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY && !ARM_Q_BIT_READ)))
            return 6378; /* *p arm_qsub_insn */
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4257 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY && ARM_Q_BIT_READ)))
            return -1;
          return 6379; /* *p arm_qsub_setq_insn */

        case 1:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 421 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6608; /* *p sssubv8qi3 */

        case 2:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 431 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6609; /* *p sssubv4hi3 */

        case 3:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 441 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6610; /* *p sssubv2si3 */

        case 4:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 135 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0)))
            return -1;
          return 6976; /* *p *arm_sssubv4qq3 */

        case 5:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 135 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0)))
            return -1;
          return 6977; /* *p *arm_sssubv2hq3 */

        case 6:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 135 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0)))
            return -1;
          return 6978; /* *p *arm_sssubqq3 */

        case 7:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 135 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0)))
            return -1;
          return 6979; /* *p *arm_sssubhq3 */

        case 8:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 135 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0)))
            return -1;
          return 6980; /* *p *arm_sssubv2ha3 */

        case 9:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 135 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !0)))
            return -1;
          return 6981; /* *p *arm_sssubha3 */

        case 10:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 135 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ)))
            return -1;
          return 6982; /* *p *arm_sssubsq3 */

        case 11:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 135 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ)))
            return -1;
          return 6983; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4694 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 6389; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5299 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 6402; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5001 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 6395; /* *p *extv_reg */

    case ZERO_EXTRACT:
      if (pattern347 (x1) != 0
          || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5015 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 6396; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5030 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_IDIV)))
            return -1;
          return 6397; /* *p divsi3 */

        case E_SFmode:
          if (pattern344 (x3, E_SFmode) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1077 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 6823; /* *p *divsf3_vfp */

        case E_DFmode:
          if (pattern344 (x3, E_DFmode) != 0
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1088 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 6824; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5043 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_IDIV)))
        return -1;
      return 6398; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6441 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_HAVE_MOVT && arm_valid_symbolic_address_p (operands[2]))))
        return -1;
      return 6481; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 12089 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch5t)))
        return -1;
      return 6515; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 12280 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(arm_arch6)))
        return -1;
      return 6519; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 33 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6577; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 42 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6578; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 51 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6579; /* *p tbcstv2si */

        default:
          return -1;
        }

    case US_PLUS:
      switch (pattern348 (x1))
        {
        case 0:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 381 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6602; /* *p usaddv8qi3 */

        case 1:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 391 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6603; /* *p usaddv4hi3 */

        case 2:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 401 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6604; /* *p usaddv2si3 */

        case 3:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 55 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 6943; /* *p usaddv4uqq3 */

        case 4:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 55 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 6944; /* *p usaddv2uhq3 */

        case 5:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 55 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 6945; /* *p usadduqq3 */

        case 6:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 55 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 6946; /* *p usadduhq3 */

        case 7:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 55 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 6947; /* *p usaddv2uha3 */

        case 8:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 55 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 6948; /* *p usadduha3 */

        default:
          return -1;
        }

    case US_MINUS:
      switch (pattern348 (x1))
        {
        case 0:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 451 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6611; /* *p ussubv8qi3 */

        case 1:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 461 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6612; /* *p ussubv4hi3 */

        case 2:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 471 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6613; /* *p ussubv2si3 */

        case 3:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 115 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 6970; /* *p ussubv4uqq3 */

        case 4:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 115 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 6971; /* *p ussubv2uhq3 */

        case 5:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 115 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 6972; /* *p ussubuqq3 */

        case 6:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 115 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 6973; /* *p ussubuhq3 */

        case 7:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 115 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 6974; /* *p ussubv2uha3 */

        case 8:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 115 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 6975; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 913 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6650; /* *p *umaxv2si3_iwmmxt */

        case 1:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 913 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6651; /* *p *umaxv4hi3_iwmmxt */

        case 2:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 913 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6652; /* *p *umaxv8qi3_iwmmxt */

        default:
          return -1;
        }

    case UMIN:
      switch (pattern349 (x1))
        {
        case 0:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 933 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6656; /* *p *uminv2si3_iwmmxt */

        case 1:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 933 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6657; /* *p *uminv4hi3_iwmmxt */

        case 2:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 933 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 6658; /* *p *uminv8qi3_iwmmxt */

        default:
          return -1;
        }

    case VEC_CONCAT:
      return recog_315 (x1, insn, pnum_clobbers);

    case ABS:
      switch (pattern350 (x1))
        {
        case 0:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 872 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 6815; /* *p *abssf2_vfp */

        case 1:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 881 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 6816; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1458 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
                return -1;
              return 6847; /* *p *extendsfdf2_vfp */

            case E_HFmode:
              if (!s_register_operand (operands[1], E_HFmode)
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1494 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_FP16_TO_DOUBLE)))
                return -1;
              return 6851; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1476 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && (TARGET_FP16 || TARGET_VFP_FP16INST))))
            return -1;
          return 6849; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1467 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 6848; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1485 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_FP16_TO_DOUBLE)))
                return -1;
              return 6850; /* *p *truncdfhf2 */

            case E_SFmode:
              if (!s_register_operand (operands[1], E_SFmode)
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1503 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && (TARGET_FP16 || TARGET_VFP_FP16INST))))
                return -1;
              return 6852; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1531 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 6855; /* *p fixuns_truncsfsi2 */

        case E_DFmode:
          if (!s_register_operand (operands[1], E_DFmode)
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1540 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 6856; /* *p fixuns_truncdfsi2 */

        default:
          return -1;
        }

    case FLOAT:
      switch (pattern351 (x1))
        {
        case 0:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1550 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 6857; /* *p *floatsisf2_vfp */

        case 1:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1559 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 6858; /* *p *floatsidf2_vfp */

        default:
          return -1;
        }

    case UNSIGNED_FLOAT:
      switch (pattern351 (x1))
        {
        case 0:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1569 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 6859; /* *p floatunssisf2 */

        case 1:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1578 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 6860; /* *p floatunssidf2 */

        default:
          return -1;
        }

    case SQRT:
      switch (pattern350 (x1))
        {
        case 0:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1614 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 6861; /* *p *sqrtsf2_vfp */

        case 1:
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1624 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 6862; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 481 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT && arm_arch6 && !ARM_Q_BIT_READ)))
        return -1;
      return 6984; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 490 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ)))
        return -1;
      return 6985; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 10212 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE)))
            return -1;
          return 6992; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 10235 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE)))
            return -1;
          return 6994; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 10258 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE)))
            return -1;
          return 6996; /* *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 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 10293 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE)))
            return -1;
          return 6999; /* *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_249 (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 10661 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          *pnum_clobbers = 1;
          return 346; /* 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_255 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        case MINUS:
          res = recog_258 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        case AND:
          res = recog_259 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        case IOR:
          res = recog_260 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        case XOR:
          res = recog_261 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        default:
          break;
        }
      if (pnum_clobbers != NULL)
        {
          res = recog_262 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      if (GET_MODE (x2) == E_SImode)
        {
          res = recog_263 (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_264 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_restrict_it))
                                {
                                  *pnum_clobbers = 1;
                                  return 1020; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
            return -1;
          *pnum_clobbers = 1;
          return 1040; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
            return -1;
          *pnum_clobbers = 1;
          return 1041; /* *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 5001 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 160; /* *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 11733 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      *pnum_clobbers = 1;
      return 378; /* *sign_extract_onebit */

    case ZERO_EXTRACT:
      if (pattern3 (x1) != 0
          || !
#line 5015 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 161; /* 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 5030 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_IDIV))
            return -1;
          return 162; /* divsi3 */

        case E_HFmode:
          if (pattern1 (x2, E_HFmode) != 0
              || !
#line 1064 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 784; /* divhf3 */

        case E_SFmode:
          if (pattern1 (x2, E_SFmode) != 0
              || !
#line 1077 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
            return -1;
          return 785; /* *divsf3_vfp */

        case E_DFmode:
          if (pattern1 (x2, E_DFmode) != 0
              || !
#line 1088 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
            return -1;
          return 786; /* *divdf3_vfp */

        default:
          return -1;
        }

    case UDIV:
      if (pattern4 (x1, E_SImode) != 0
          || !
#line 5043 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_IDIV))
        return -1;
      return 163; /* 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_277 (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 6441 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_HAVE_MOVT && arm_valid_symbolic_address_p (operands[2])))
        return -1;
      return 252; /* *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 12109 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch_thumb2))
        return -1;
      return 397; /* ctzsi2 */

    case BSWAP:
      return recog_296 (x1, insn, pnum_clobbers);

    case VEC_DUPLICATE:
      return recog_273 (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_274 (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_276 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
                return -1;
              return 820; /* *extendsfdf2_vfp */

            case E_HFmode:
              if (!s_register_operand (operands[1], E_HFmode)
                  || !
#line 1494 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_FP16_TO_DOUBLE))
                return -1;
              return 824; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && (TARGET_FP16 || TARGET_VFP_FP16INST)))
            return -1;
          return 822; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
            return -1;
          return 821; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_FP16_TO_DOUBLE))
                return -1;
              return 823; /* *truncdfhf2 */

            case E_SFmode:
              if (!s_register_operand (operands[1], E_SFmode)
                  || !
#line 1503 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && (TARGET_FP16 || TARGET_VFP_FP16INST)))
                return -1;
              return 825; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
                return -1;
              return 828; /* fixuns_truncsfsi2 */

            case E_DFmode:
              if (!s_register_operand (operands[1], E_DFmode)
                  || !
#line 1540 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
                return -1;
              return 829; /* fixuns_truncdfsi2 */

            default:
              return -1;
            }

        case UNSPEC:
          switch (pattern287 (x2))
            {
            case 0:
              if (!
#line 2053 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
                return -1;
              return 889; /* lceilusfsi2 */

            case 1:
              if (!(
#line 2053 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
                return -1;
              return 895; /* lceiludfsi2 */

            case 2:
              if (!
#line 2053 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
                return -1;
              return 890; /* lfloorusfsi2 */

            case 3:
              if (!(
#line 2053 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
                return -1;
              return 896; /* lfloorudfsi2 */

            case 4:
              if (!
#line 2053 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
                return -1;
              return 891; /* lroundusfsi2 */

            case 5:
              if (!(
#line 2053 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 56 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
                return -1;
              return 897; /* lroundudfsi2 */

            case 6:
              if (!
#line 653 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
                return -1;
              return 1207; /* neon_vcvtpuv2sfv2si */

            case 7:
              if (!
#line 653 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
                return -1;
              return 1213; /* neon_vcvtpuv4sfv4si */

            case 8:
              if (!
#line 653 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
                return -1;
              return 1208; /* neon_vcvtmuv2sfv2si */

            case 9:
              if (!
#line 653 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
                return -1;
              return 1214; /* neon_vcvtmuv4sfv4si */

            case 10:
              if (!
#line 653 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
                return -1;
              return 1209; /* neon_vcvtauv2sfv2si */

            case 11:
              if (!
#line 653 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
                return -1;
              return 1215; /* neon_vcvtauv4sfv4si */

            default:
              return -1;
            }

        case REG:
        case SUBREG:
          switch (pattern288 (x2))
            {
            case 0:
              if (!
#line 3656 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2083; /* fixuns_truncv2sfv2si2 */

            case 1:
              if (!
#line 3656 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2084; /* fixuns_truncv4sfv4si2 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case FLOAT:
      switch (pattern6 (x1))
        {
        case 0:
          if (!
#line 1550 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
            return -1;
          return 830; /* *floatsisf2_vfp */

        case 1:
          if (!
#line 1559 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
            return -1;
          return 831; /* *floatsidf2_vfp */

        case 2:
          if (!
#line 3632 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !flag_rounding_math))
            return -1;
          return 2077; /* floatv2siv2sf2 */

        case 3:
          if (!
#line 3632 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !flag_rounding_math))
            return -1;
          return 2078; /* floatv4siv4sf2 */

        default:
          return -1;
        }

    case UNSIGNED_FLOAT:
      switch (pattern6 (x1))
        {
        case 0:
          if (!
#line 1569 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
            return -1;
          return 832; /* floatunssisf2 */

        case 1:
          if (!
#line 1578 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
            return -1;
          return 833; /* floatunssidf2 */

        case 2:
          if (!
#line 3640 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !flag_rounding_math))
            return -1;
          return 2079; /* floatunsv2siv2sf2 */

        case 3:
          if (!
#line 3640 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && !flag_rounding_math))
            return -1;
          return 2080; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 834; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
            return -1;
          return 836; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
            return -1;
          return 837; /* *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 3113 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2001; /* 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 3113 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2002; /* popcountv16qi2 */

        default:
          return -1;
        }

    case SS_MULT:
      if (pnum_clobbers == NULL
          || pattern4 (x1, E_SAmode) != 0
          || !
#line 264 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT && arm_arch6 && !ARM_Q_BIT_READ))
        return -1;
      *pnum_clobbers = 3;
      return 3024; /* *arm_ssmulsa3 */

    case US_MULT:
      if (pnum_clobbers == NULL
          || pattern4 (x1, E_USAmode) != 0
          || !
#line 336 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT && arm_arch6 && !ARM_Q_BIT_READ))
        return -1;
      *pnum_clobbers = 3;
      return 3025; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT && arm_arch6 && !ARM_Q_BIT_READ))
        return -1;
      return 3026; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD && !ARM_Q_BIT_READ))
        return -1;
      return 3027; /* 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 10212 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4918; /* 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 10235 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4920; /* 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 10258 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4922; /* 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 10293 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/mve.md"
(TARGET_HAVE_MVE))
            return -1;
          return 4925; /* mve_sqshll_di */

        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, x19, x20, x21, x22, x23, x24, x25;
  rtx x26, x27, x28, x29, x30, x31, x32, x33;
  rtx x34, x35;
  int res ATTRIBUTE_UNUSED;
  recog_data.insn = NULL;
  switch (GET_CODE (x1))
    {
    case PARALLEL:
      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 12633 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed))
                        return 483; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2
   && INTVAL (operands[5]) == INTVAL (operands[2]) + 4))
            return -1;
          return 1000; /* *thumb2_storewb_pairsi */

        case 4:
          if (pattern0 (x1, 18) != 0
              || pattern294 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2880; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 2;
              return 2880; /* atomic_exchangesi */

            case 19:
              x19 = XVECEXP (x13, 0, 0);
              if (GET_MODE (x19) != E_SImode)
                return -1;
              switch (pattern603 (x19))
                {
                case 0:
                  if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2916; /* atomic_fetch_addsi */

                case 1:
                  if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2917; /* atomic_fetch_subsi */

                case 2:
                  if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2918; /* atomic_fetch_orsi */

                case 3:
                  if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2919; /* atomic_fetch_xorsi */

                case 4:
                  if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2920; /* atomic_fetch_andsi */

                case 5:
                  if (!
#line 386 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2928; /* atomic_fetch_nandsi */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case 5:
          if (pattern0 (x1, 19) != 0)
            return -1;
          x9 = XVECEXP (x1, 0, 2);
          if (pattern352 (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 (pattern603 (x19))
            {
            case 0:
              if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2916; /* atomic_fetch_addsi */

            case 1:
              if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2917; /* atomic_fetch_subsi */

            case 2:
              if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2918; /* atomic_fetch_orsi */

            case 3:
              if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2919; /* atomic_fetch_xorsi */

            case 4:
              if (!
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2920; /* atomic_fetch_andsi */

            case 5:
              if (!
#line 386 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2928; /* atomic_fetch_nandsi */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case SET:
      return recog_346 (x1, insn, pnum_clobbers);

    case RETURN:
      if (!
#line 8919 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && USE_RETURN_INSN (FALSE)))
        return -1;
      return 294; /* *arm_return */

    case SIMPLE_RETURN:
      if (
#line 8980 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
        return 299; /* *arm_simple_return */
      if (
#line 1210 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !IS_CMSE_ENTRY (arm_current_func_type ())))
        return 1032; /* *thumb2_return */
      if (!
#line 1218 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && IS_CMSE_ENTRY (arm_current_func_type ())))
        return -1;
      return 1033; /* *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 301; /* blockage */

            case 3:
              x2 = XVECEXP (x1, 0, 0);
              if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              return 387; /* align_4 */

            case 12:
              x2 = XVECEXP (x1, 0, 0);
              if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              return 388; /* align_8 */

            case 4:
              x2 = XVECEXP (x1, 0, 0);
              if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              return 389; /* consttable_end */

            case 5:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              return 390; /* consttable_1 */

            case 6:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              return 391; /* consttable_2 */

            case 7:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              return 392; /* consttable_4 */

            case 8:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              return 393; /* consttable_8 */

            case 9:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              return 394; /* 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 12171 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                {
                  *pnum_clobbers = 1;
                  return 400; /* arm_eh_return */
                }
              if (
#line 2032 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                {
                  *pnum_clobbers = 1;
                  return 988; /* thumb_eh_return */
                }
              if (!
#line 1239 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
                return -1;
              *pnum_clobbers = 1;
              return 1034; /* thumb2_eh_return */

            case 49:
              x2 = XVECEXP (x1, 0, 0);
              if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
                  || !
#line 12887 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(arm_arch7 || arm_arch8))
                return -1;
              return 502; /* *speculation_barrier_insn */

            case 54:
              x2 = XVECEXP (x1, 0, 0);
              if (GET_CODE (x2) != MEM
                  || GET_MODE (x2) != E_BLKmode)
                return -1;
              x4 = XEXP (x2, 0);
              operands[0] = x4;
              if (!s_register_operand (operands[0], E_SImode)
                  || !
#line 1725 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(use_cmse && reload_completed))
                return -1;
              return 842; /* lazy_store_multiple_insn */

            case 55:
              x2 = XVECEXP (x1, 0, 0);
              if (GET_CODE (x2) != MEM
                  || GET_MODE (x2) != E_BLKmode)
                return -1;
              x4 = XEXP (x2, 0);
              operands[0] = x4;
              if (!s_register_operand (operands[0], E_SImode)
                  || !
#line 1735 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(use_cmse && reload_completed))
                return -1;
              return 843; /* 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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_VFP_BASE))
                return -1;
              return 908; /* set_fpscr */

            case 2:
              x2 = XVECEXP (x1, 0, 0);
              if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
                  || !
#line 1964 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                return -1;
              return 984; /* prologue_thumb1_interwork */

            case 1:
              x2 = XVECEXP (x1, 0, 0);
              if (GET_CODE (x2) != RETURN
                  || !
#line 1972 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                return -1;
              return 985; /* *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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && TARGET_HAVE_FPCXT_CMSE && use_cmse))
                return -1;
              *pnum_clobbers = 1;
              return 1053; /* *clear_apsr */

            default:
              return -1;
            }

        case 6:
          x2 = XVECEXP (x1, 0, 0);
          operands[0] = x2;
          if (!immediate_operand (operands[0], E_SImode))
            return -1;
          x6 = XVECEXP (x1, 0, 1);
          operands[1] = x6;
          if (!immediate_operand (operands[1], E_SImode))
            return -1;
          x9 = XVECEXP (x1, 0, 2);
          operands[2] = x9;
          if (!immediate_operand (operands[2], E_SImode))
            return -1;
          x21 = XVECEXP (x1, 0, 3);
          operands[3] = x21;
          if (!immediate_operand (operands[3], E_SImode))
            return -1;
          x23 = XVECEXP (x1, 0, 4);
          operands[4] = x23;
          if (!immediate_operand (operands[4], E_SImode))
            return -1;
          x25 = XVECEXP (x1, 0, 5);
          operands[5] = x25;
          if (!immediate_operand (operands[5], E_SImode))
            return -1;
          switch (XINT (x1, 1))
            {
            case 31:
              if (!
#line 12745 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_CDP)))
                return -1;
              return 484; /* arm_cdp */

            case 32:
              if (!
#line 12745 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_CDP2)))
                return -1;
              return 485; /* arm_cdp2 */

            default:
              return -1;
            }

        case 3:
          x2 = XVECEXP (x1, 0, 0);
          operands[0] = x2;
          if (!immediate_operand (operands[0], E_SImode))
            return -1;
          x6 = XVECEXP (x1, 0, 1);
          operands[1] = x6;
          if (!immediate_operand (operands[1], E_SImode))
            return -1;
          x9 = XVECEXP (x1, 0, 2);
          operands[2] = x9;
          if (!memory_operand (operands[2], E_SImode))
            return -1;
          switch (XINT (x1, 1))
            {
            case 33:
              if (!
#line 12762 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_LDC)))
                return -1;
              return 486; /* *ldc */

            case 34:
              if (!
#line 12762 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_LDC2)))
                return -1;
              return 487; /* *ldc */

            case 35:
              if (!
#line 12762 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_LDCL)))
                return -1;
              return 488; /* *ldc */

            case 36:
              if (!
#line 12762 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_LDC2L)))
                return -1;
              return 489; /* *ldc */

            case 37:
              if (!
#line 12775 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_STC)))
                return -1;
              return 490; /* *stc */

            case 38:
              if (!
#line 12775 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_STC2)))
                return -1;
              return 491; /* *stc */

            case 39:
              if (!
#line 12775 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_STCL)))
                return -1;
              return 492; /* *stc */

            case 40:
              if (!
#line 12775 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_STC2L)))
                return -1;
              return 493; /* *stc */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case CONST_INT:
      if (XWINT (x1, 0) != 0L)
        return -1;
      return 313; /* nop */

    case TRAP_IF:
      x26 = XEXP (x1, 0);
      if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
        return -1;
      x27 = XEXP (x1, 1);
      if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      return 314; /* trap */

    case PREFETCH:
      x26 = XEXP (x1, 0);
      operands[0] = x26;
      if (!address_operand (operands[0], E_SImode))
        return -1;
      x27 = XEXP (x1, 1);
      operands[1] = x27;
      x28 = XEXP (x1, 2);
      operands[2] = x28;
      if (!
#line 12125 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch5te))
        return -1;
      return 398; /* 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 399; /* force_register_use */

    case COND_EXEC:
      x26 = XEXP (x1, 0);
      if (!arm_comparison_operator (x26, E_VOIDmode))
        return -1;
      x29 = XEXP (x26, 1);
      if (x29 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x30 = XEXP (x26, 0);
      if (!cc_register (x30, E_VOIDmode))
        return -1;
      x27 = XEXP (x1, 1);
      switch (GET_CODE (x27))
        {
        case SET:
          return recog_345 (x1, insn, pnum_clobbers);

        case PARALLEL:
          if (XVECLEN (x27, 0) == 2)
            {
              res = recog_338 (x1, insn, pnum_clobbers);
              if (res >= 0)
                return res;
            }
          operands[0] = x27;
          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;
          x31 = XVECEXP (x27, 0, 0);
          switch (GET_CODE (x31))
            {
            case SET:
              x32 = XEXP (x31, 1);
              switch (GET_CODE (x32))
                {
                case MEM:
                  if (GET_MODE (x32) != E_SImode)
                    return -1;
                  operands[3] = x26;
                  operands[4] = x30;
                  if (!load_multiple_operation (operands[0], E_VOIDmode))
                    return -1;
                  x33 = XEXP (x31, 0);
                  operands[2] = x33;
                  if (!s_register_operand (operands[2], E_SImode))
                    return -1;
                  x34 = XEXP (x32, 0);
                  operands[1] = x34;
                  if (!s_register_operand (operands[1], E_SImode)
                      || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 12633 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed)))
                    return -1;
                  return 6576; /* *p *load_multiple */

                case CONST_INT:
                  if (XWINT (x32, 0) != 0L)
                    return -1;
                  operands[2] = x26;
                  operands[3] = x30;
                  if (!clear_multiple_operation (operands[0], E_VOIDmode))
                    return -1;
                  x33 = XEXP (x31, 0);
                  operands[1] = x33;
                  if (!register_operand (operands[1], E_SImode)
                      || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1677 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && TARGET_HAVE_FPCXT_CMSE && use_cmse && reload_completed)))
                    return -1;
                  return 6903; /* *p *clear_multiple */

                default:
                  return -1;
                }

            case UNSPEC_VOLATILE:
              if (XVECLEN (x31, 0) != 1
                  || XINT (x31, 1) != 53)
                return -1;
              x35 = XVECEXP (x31, 0, 0);
              if (x35 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              operands[1] = x26;
              operands[2] = x30;
              if (!clear_vfp_multiple_operation (operands[0], E_VOIDmode)
                  || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1688 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_HAVE_FPCXT_CMSE && use_cmse && reload_completed)))
                return -1;
              return 6865; /* *p *clear_vfp_multiple */

            default:
              return -1;
            }

        case RETURN:
          operands[0] = x26;
          operands[1] = x30;
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 8919 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && USE_RETURN_INSN (FALSE))))
            return -1;
          return 6494; /* *p *arm_return */

        case SIMPLE_RETURN:
          operands[0] = x26;
          operands[1] = x30;
          if (!(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 8980 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM)))
            return -1;
          return 6495; /* *p *arm_simple_return */

        case UNSPEC_VOLATILE:
          if (XVECLEN (x27, 0) != 1
              || XINT (x27, 1) != 54)
            return -1;
          x31 = XVECEXP (x27, 0, 0);
          if (GET_CODE (x31) != MEM
              || GET_MODE (x31) != E_BLKmode)
            return -1;
          operands[1] = x26;
          operands[2] = x30;
          x33 = XEXP (x31, 0);
          operands[0] = x33;
          if (!s_register_operand (operands[0], E_SImode)
              || !(
#line 12136 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1725 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(use_cmse && reload_completed)))
            return -1;
          return 6866; /* *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, x7;
  rtx_insn *res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 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 LABEL_REF:
    case SYMBOL_REF:
    case HIGH:
      operands[1] = x3;
      switch (GET_MODE (operands[0]))
        {
        case E_DImode:
          if (arm_general_register_operand (operands[0], E_DImode))
            {
              if (immediate_operand (operands[1], E_DImode)
                  && 
#line 6275 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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_39 (insn, operands);
              if (const_double_operand (operands[1], E_DImode)
                  && 
#line 6305 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && reload_completed
   && arm_const_double_by_parts (operands[1])))
                return gen_split_46 (insn, operands);
              if (immediate_operand (operands[1], E_DImode)
                  && 
#line 716 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && reload_completed && !satisfies_constraint_J (operands[1])))
                return gen_split_118 (insn, operands);
            }
          break;

        case E_DFmode:
          if (arm_general_register_operand (operands[0], E_DFmode))
            {
              if (immediate_operand (operands[1], E_DFmode)
                  && 
#line 6275 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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_DFmode)
                  && 
#line 6305 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && reload_completed
   && arm_const_double_by_parts (operands[1])))
                return gen_split_47 (insn, operands);
            }
          if (s_register_operand (operands[0], E_DFmode)
              && const_double_operand (operands[1], E_DFmode)
              && 
#line 7555 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(arm_disable_literal_pool && TARGET_SOFT_FLOAT))
            return gen_split_69 (insn, operands);
          if (arm_general_register_operand (operands[0], E_DFmode)
              && immediate_operand (operands[1], E_DFmode)
              && 
#line 716 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && reload_completed && !satisfies_constraint_J (operands[1])))
            return gen_split_119 (insn, operands);
          break;

        case E_V8QImode:
          if (arm_general_register_operand (operands[0], E_V8QImode))
            {
              if (immediate_operand (operands[1], E_V8QImode)
                  && 
#line 6275 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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_V8QImode)
                  && 
#line 6305 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && reload_completed
   && arm_const_double_by_parts (operands[1])))
                return gen_split_48 (insn, operands);
              if (immediate_operand (operands[1], E_V8QImode)
                  && 
#line 716 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && reload_completed && !satisfies_constraint_J (operands[1])))
                return gen_split_120 (insn, operands);
            }
          break;

        case E_V4HImode:
          if (arm_general_register_operand (operands[0], E_V4HImode))
            {
              if (immediate_operand (operands[1], E_V4HImode)
                  && 
#line 6275 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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_V4HImode)
                  && 
#line 6305 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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_V4HImode)
                  && 
#line 716 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && reload_completed && !satisfies_constraint_J (operands[1])))
                return gen_split_121 (insn, operands);
            }
          break;

        case E_V4HFmode:
          if (arm_general_register_operand (operands[0], E_V4HFmode))
            {
              if (immediate_operand (operands[1], E_V4HFmode)
                  && 
#line 6275 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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_V4HFmode)
                  && 
#line 6305 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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_V4HFmode)
                  && 
#line 716 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && reload_completed && !satisfies_constraint_J (operands[1])))
                return gen_split_122 (insn, operands);
            }
          break;

        case E_V2SImode:
          if (arm_general_register_operand (operands[0], E_V2SImode))
            {
              if (immediate_operand (operands[1], E_V2SImode)
                  && 
#line 6275 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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_V2SImode)
                  && 
#line 6305 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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_V2SImode)
                  && 
#line 716 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && reload_completed && !satisfies_constraint_J (operands[1])))
                return gen_split_123 (insn, operands);
            }
          break;

        case E_V2SFmode:
          if (arm_general_register_operand (operands[0], E_V2SFmode))
            {
              if (immediate_operand (operands[1], E_V2SFmode)
                  && 
#line 6275 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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_V2SFmode)
                  && 
#line 6305 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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_V2SFmode)
                  && 
#line 716 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && reload_completed && !satisfies_constraint_J (operands[1])))
                return gen_split_124 (insn, operands);
            }
          break;

        case E_SImode:
          if (arm_general_register_operand (operands[0], E_SImode)
              && const_int_operand (operands[1], E_SImode)
              && 
#line 6474 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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_62 (insn, operands);
          break;

        case E_SFmode:
          if (arm_general_register_operand (operands[0], E_SFmode)
              && immediate_operand (operands[1], E_SFmode)
              && 
#line 7384 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_EITHER
   && reload_completed
   && CONST_DOUBLE_P (operands[1])))
            return gen_split_67 (insn, operands);
          if (s_register_operand (operands[0], E_SFmode)
              && const_double_operand (operands[1], E_SFmode)
              && 
#line 7428 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(arm_disable_literal_pool && TARGET_SOFT_FLOAT))
            return gen_split_68 (insn, operands);
          break;

        default:
          break;
        }
      if (GET_CODE (x3) == CONST
          && GET_MODE (x3) == E_SImode)
        {
          x4 = XEXP (x3, 0);
          if (GET_CODE (x4) == PLUS
              && GET_MODE (x4) == E_SImode
              && 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 6503 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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_63 (insn, operands);
                }
            }
        }
      break;

    case REG:
    case SUBREG:
      operands[1] = 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 6321 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_EITHER && reload_completed))
            return gen_split_53 (insn, operands);
          break;

        case E_DFmode:
          if (arm_general_register_operand (operands[0], E_DFmode)
              && arm_general_register_operand (operands[1], E_DFmode)
              && 
#line 6321 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_EITHER && reload_completed))
            return gen_split_54 (insn, operands);
          break;

        case E_V8QImode:
          if (arm_general_register_operand (operands[0], E_V8QImode)
              && arm_general_register_operand (operands[1], E_V8QImode)
              && 
#line 6321 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_EITHER && reload_completed))
            return gen_split_55 (insn, operands);
          break;

        case E_V4HImode:
          if (arm_general_register_operand (operands[0], E_V4HImode)
              && arm_general_register_operand (operands[1], E_V4HImode)
              && 
#line 6321 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_EITHER && reload_completed))
            return gen_split_56 (insn, operands);
          break;

        case E_V4BFmode:
          if (arm_general_register_operand (operands[0], E_V4BFmode)
              && arm_general_register_operand (operands[1], E_V4BFmode)
              && 
#line 6321 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_EITHER && reload_completed))
            return gen_split_57 (insn, operands);
          break;

        case E_V4HFmode:
          if (arm_general_register_operand (operands[0], E_V4HFmode)
              && arm_general_register_operand (operands[1], E_V4HFmode)
              && 
#line 6321 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_EITHER && reload_completed))
            return gen_split_58 (insn, operands);
          break;

        case E_V2SImode:
          if (arm_general_register_operand (operands[0], E_V2SImode)
              && arm_general_register_operand (operands[1], E_V2SImode)
              && 
#line 6321 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_EITHER && reload_completed))
            return gen_split_59 (insn, operands);
          break;

        case E_V2SFmode:
          if (arm_general_register_operand (operands[0], E_V2SFmode)
              && arm_general_register_operand (operands[1], E_V2SFmode)
              && 
#line 6321 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_EITHER && reload_completed))
            return gen_split_60 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
            return gen_split_149 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
((TARGET_NEON || TARGET_HAVE_MVE)&& reload_completed))
            return gen_split_150 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
            return gen_split_151 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
((TARGET_NEON || TARGET_HAVE_MVE) && reload_completed))
            return gen_split_152 (insn, operands);
          break;

        default:
          break;
        }
      break;

    case MEM:
      if (GET_MODE (x3) == E_DImode)
        {
          x4 = XEXP (x3, 0);
          if (GET_CODE (x4) == PLUS
              && GET_MODE (x4) == E_SImode
              && 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 6351 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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_61 (insn, operands);
                }
            }
        }
      break;

    default:
      break;
    }
  operands[1] = x3;
  if (general_operand (operands[1], E_SImode)
      && arm_general_register_operand (operands[0], E_SImode)
      && 
#line 6535 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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_64 (insn, operands);
  if (const_int_operand (operands[1], E_SImode)
      && register_operand (operands[0], E_SImode))
    {
      if (
#line 731 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && satisfies_constraint_J (operands[1])))
        return gen_split_125 (insn, operands);
      if (
#line 744 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && satisfies_constraint_K (operands[1])
   && !(TARGET_HAVE_MOVT && satisfies_constraint_j (operands[1]))))
        return gen_split_126 (insn, operands);
      if (
#line 772 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && satisfies_constraint_Pe (operands[1])
   && !(TARGET_HAVE_MOVT && satisfies_constraint_j (operands[1]))))
        return gen_split_127 (insn, operands);
      if (
#line 787 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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_128 (insn, operands);
    }
  if (!register_operand (operands[0], E_SImode)
      || GET_CODE (x3) != MEM
      || GET_MODE (x3) != E_SImode)
    return NULL;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != PLUS
      || GET_MODE (x4) != E_SImode)
    return NULL;
  x6 = XEXP (x4, 1);
  if (pattern382 (x6, 1) != 0)
    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 6571 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(flag_pic))
    return NULL;
  return gen_split_65 (insn, operands);
}

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, 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 4201 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && !arm_eliminable_register (operands[1]) && reload_completed))
    return NULL;
  return gen_split_25 (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, 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 1880 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
    return NULL;
  return gen_split_2 (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 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 3795 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return NULL;
          return gen_split_15 (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 (pattern554 (x1) != 0
              || !
#line 10392 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed))
            return NULL;
          return gen_split_86 (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 (pattern554 (x1) == 0)
            {
              if (
#line 10454 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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_88 (insn, operands);
              if (
#line 10522 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed))
                return gen_split_90 (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 11485 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return NULL;
          return gen_split_97 (insn, operands);

        default:
          return NULL;
        }

    default:
      return NULL;
    }
}

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_insn *res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) == E_SImode)
    {
      res = split_4 (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 (pattern574 (x3, LSHIFTRT) != 0
          || !
#line 3846 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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_17 (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 (pattern627 (x3, ZERO_EXTRACT) != 0
              || !
#line 3872 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 ASHIFTRT:
          if (pattern627 (x3, SIGN_EXTRACT) != 0
              || !
#line 3924 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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;
        }

    case SIGN_EXTRACT:
      if (pattern574 (x3, ASHIFTRT) != 0
          || !
#line 3898 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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);

    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);
  switch (GET_CODE (x3))
    {
    case PLUS:
      res = split_3 (x1, insn);
      if (res != NULL_RTX)
        return res;
      break;

    case AND:
    case IOR:
    case XOR:
      res = split_5 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_restrict_it) && 
#line 800 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
( reload_completed)))
    return NULL;
  return gen_split_146 (insn, operands);
}

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 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 3168 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 3202 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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_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;
  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 3101 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 3135 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 9815 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed))
            return gen_split_83 (insn, operands);
          if (!arm_add_operand (operands[2], E_SImode)
              || !
#line 9831 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed))
            return NULL;
          return gen_split_84 (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 9774 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed))
        return NULL;
      return gen_split_79 (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 9782 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed))
        return NULL;
      return gen_split_80 (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 9791 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(arm_arch5t && TARGET_32BIT))
        return gen_split_81 (insn, operands);
      if (!
#line 9801 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed))
        return NULL;
      return gen_split_82 (insn, operands);

    default:
      return NULL;
    }
}

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, 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_2 (x1, insn);
              if (res != NULL_RTX)
                return res;
              break;

            case PLUS:
            case AND:
            case IOR:
            case XOR:
              res = split_6 (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 (pattern506 (x1) != 0
                  || !
#line 3227 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return NULL;
              return gen_split_11 (insn, operands);

            case SIGN_EXTRACT:
              if (pattern506 (x1) != 0
                  || !
#line 3249 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 9611 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return NULL;
              return gen_split_76 (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]
                  && pattern290 (x1) == 0)
                {
                  x8 = XEXP (x7, 0);
                  if (GET_MODE (x8) == E_SImode)
                    {
                      if (GET_CODE (x8) == ZERO_EXTRACT)
                        {
                          res = split_7 (x1, insn);
                          if (res != NULL_RTX)
                            return res;
                        }
                      if (GET_CODE (x8) == PLUS)
                        {
                          operands[5] = x7;
                          if (comparison_operator (operands[5], E_VOIDmode)
                              && pattern600 (x3) == 0
                              && (
#line 10661 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT) && 
#line 10663 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
( reload_completed)))
                            return gen_split_94 (insn, operands);
                        }
                    }
                }
              if (!arm_comparison_operator (x7, E_VOIDmode))
                return NULL;
              operands[1] = x7;
              if (pattern290 (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 11604 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && reload_completed))
                return gen_split_99 (insn, operands);
              operands[4] = x12;
              if (rtx_equal_p (x13, operands[0])
                  && 
#line 11632 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && reload_completed))
                return gen_split_100 (insn, operands);
              operands[5] = x13;
              if (
#line 11653 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && reload_completed))
                return gen_split_101 (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 11685 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && reload_completed))
                return NULL;
              return gen_split_102 (insn, operands);

            default:
              return NULL;
            }

        case SMAX:
          if (pattern289 (x1) != 0)
            return NULL;
          if (
#line 3989 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return gen_split_21 (insn, operands);
          if (!
#line 37 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
            return NULL;
          return gen_split_131 (insn, operands);

        case SMIN:
          if (pattern289 (x1) != 0)
            return NULL;
          if (
#line 4039 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return gen_split_22 (insn, operands);
          if (!
#line 58 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
            return NULL;
          return gen_split_132 (insn, operands);

        case UMAX:
          if (pattern289 (x1) != 0)
            return NULL;
          if (
#line 4072 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return gen_split_23 (insn, operands);
          if (!
#line 79 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
            return NULL;
          return gen_split_133 (insn, operands);

        case UMIN:
          if (pattern289 (x1) != 0)
            return NULL;
          if (
#line 4105 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
            return gen_split_24 (insn, operands);
          if (!
#line 100 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
            return NULL;
          return gen_split_134 (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 5152 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM) && 
#line 5154 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
( reload_completed)))
                return gen_split_26 (insn, operands);
              if ((
#line 117 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2) && 
#line 122 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
( reload_completed)))
                return gen_split_135 (insn, operands);
            }
          operands[2] = x6;
          if (!scratch_operand (operands[2], E_SImode)
              || !
#line 336 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && reload_completed))
            return NULL;
          return gen_split_115 (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 5216 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM) && 
#line 5218 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
( reload_completed)))
                    return gen_split_27 (insn, operands);
                  if ((
#line 170 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2) && 
#line 175 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 351 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && reload_completed))
                return NULL;
              return gen_split_116 (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 10586 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM) && 
#line 10588 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
( reload_completed)))
                return gen_split_93 (insn, operands);
              if (!(
#line 899 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !TARGET_COND_ARITH) && 
#line 901 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
( reload_completed)))
                return NULL;
              return gen_split_147 (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 5688 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && (!MEM_P (operands[1])) && ! BYTES_BIG_ENDIAN))
                return NULL;
              return gen_split_32 (insn, operands);

            case 3:
              if (!
#line 5698 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && (!MEM_P (operands[1])) && BYTES_BIG_ENDIAN))
                return NULL;
              return gen_split_33 (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 5767 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(!arm_arch6))
            return NULL;
          return gen_split_36 (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 (pattern290 (x1) != 0)
            return NULL;
          if (GET_MODE (x3) == E_SImode)
            {
              res = split_8 (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 9846 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT) && 
#line 9848 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
( reload_completed)))
            return NULL;
          return gen_split_85 (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 10426 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed))
                                return NULL;
                              return gen_split_87 (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 10570 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                        return NULL;
                      return gen_split_92 (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 (pattern477 (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 10551 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                    return NULL;
                  return gen_split_91 (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 10490 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed))
                return NULL;
              return gen_split_89 (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]
                  || pattern477 (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 11503 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM
   && ((UINTVAL (operands[1]))
       == ((UINTVAL (operands[1])) >> 24) << 24)))
                return NULL;
              return gen_split_98 (insn, operands);

            default:
              return NULL;
            }

        case CONST_DOUBLE:
          switch (pattern16 (x1))
            {
            case 0:
              if (!(
#line 2142 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
( 1)))
                return NULL;
              return gen_split_110 (insn, operands);

            case 1:
              if (!(
#line 2168 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(arm_disable_literal_pool
   && TARGET_VFP_BASE
   && !vfp3_const_double_rtx (operands[1])) && 
#line 2172 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
( 1)))
                return NULL;
              return gen_split_111 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return NULL;
          return gen_split_113 (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 12171 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM) && 
#line 12173 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
( reload_completed)))
        return gen_split_104 (insn, operands);
      if ((
#line 2032 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1) && 
#line 2034 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
( reload_completed)))
        return gen_split_130 (insn, operands);
      if (!(
#line 1239 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2) && 
#line 1241 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
( reload_completed)))
        return NULL;
      return gen_split_148 (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;
  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 947 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1) && 
#line 87 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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_112 (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 2005 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT) && 
#line 2016 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 2887 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 3015 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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])))))
                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 3807 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT) && 
#line 3809 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
( reload_completed)))
                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[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 9709 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM) && 
#line 9711 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
( reload_completed)))
                return gen_split_77 (insn, operands);
              if (!(
#line 618 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2) && 
#line 620 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
( reload_completed)))
                return NULL;
              return gen_split_143 (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 3641 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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_13 (insn, operands);

            case AND:
              if (pattern397 (x2) != 0
                  || !
#line 5714 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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_34 (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 9738 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM) && 
#line 9742 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
( reload_completed
   && REGNO (operands [0]) != REGNO (operands[3]))))
                    return gen_split_78 (insn, operands);
                  if ((
#line 646 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !arm_restrict_it) && 
#line 651 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
( reload_completed
    && REGNO (operands [0]) != REGNO (operands[3]))))
                    return gen_split_144 (insn, operands);
                }
              operands[3] = x6;
              operands[2] = x4;
              operands[1] = x5;
              if (!s_register_operand (operands[1], E_SImode)
                  || !(
#line 677 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_restrict_it) && 
#line 679 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
( reload_completed)))
                return NULL;
              return gen_split_145 (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 3746 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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_14 (insn, operands);

            case AND:
              if (pattern397 (x2) != 0
                  || !
#line 5714 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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);

            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 2907 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 8037 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                return gen_split_72 (insn, operands);
              if (arm_comparison_operator_mode (operands[1], E_SImode)
                  && (
#line 396 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !arm_restrict_it) && 
#line 398 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
( true)))
                return gen_split_140 (insn, operands);
            }
          if (!low_register_operand (operands[0], E_SImode)
              || !arm_comparison_operator_mode (operands[1], E_SImode)
              || !(
#line 416 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_restrict_it) && 
#line 418 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
( reload_completed)))
            return NULL;
          return gen_split_141 (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 5519 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return NULL;
          return gen_split_28 (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 5575 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(!TARGET_THUMB2 && !arm_arch6))
                return NULL;
              return gen_split_30 (insn, operands);

            case E_QImode:
              if (!s_register_operand (operands[1], E_QImode)
                  || !
#line 5639 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(!arm_arch6))
                return NULL;
              return gen_split_31 (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 5537 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return NULL;
          return gen_split_29 (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 5814 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(!arm_arch6))
                return NULL;
              return gen_split_37 (insn, operands);

            case E_QImode:
              if (register_operand (operands[1], E_QImode)
                  && 
#line 5908 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(!arm_arch6))
                return gen_split_38 (insn, operands);
              if (!memory_operand (operands[1], E_QImode)
                  || !
#line 512 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && reload_completed))
                return NULL;
              return gen_split_117 (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_1 (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 6587 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(flag_pic) && 
#line 6589 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
( reload_completed)))
            return NULL;
          return gen_split_66 (insn, operands);

        case 334:
          if (GET_MODE (x2) != E_V16QImode
              || !s_register_operand (operands[0], E_V16QImode))
            return NULL;
          switch (pattern451 ())
            {
            case 0:
              if (!(
#line 4695 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 4697 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
( reload_completed)))
                return NULL;
              return gen_split_160 (insn, operands);

            case 1:
              if (!(
#line 4726 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 4728 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
( reload_completed)))
                return NULL;
              return gen_split_161 (insn, operands);

            default:
              return NULL;
            }

        case 170:
          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 4761 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 4763 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
( reload_completed)))
            return NULL;
          return gen_split_162 (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 7991 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM))
                    return gen_split_70 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                return gen_split_129 (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-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return NULL;
      return gen_split_137 (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 8016 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM && !arm_borrow_operation (operands[1], SImode)) && 
#line 8018 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
( true)))
                return gen_split_71 (insn, operands);
              if ((
#line 344 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2
   && !arm_restrict_it
   && !arm_borrow_operation (operands[1], SImode)) && 
#line 348 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
( true)))
                return gen_split_138 (insn, operands);
            }
          if (!low_register_operand (operands[0], E_SImode)
              || !(
#line 365 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2
   && arm_restrict_it
   && !arm_borrow_operation (operands[1], SImode)) && 
#line 369 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
( reload_completed)))
            return NULL;
          return gen_split_139 (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-12.2.0-r0/gcc-12.2.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_105 (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 8403 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM) && 
#line 8417 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
( reload_completed)))
                return gen_split_73 (insn, operands);
              if (!(
#line 442 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2) && 
#line 462 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
( reload_completed)))
                return NULL;
              return gen_split_142 (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 11337 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT) && 
#line 11339 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
( reload_completed)))
                return NULL;
              return gen_split_96 (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 11301 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && !TARGET_COND_ARITH) && 
#line 11303 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
( reload_completed)))
            return NULL;
          return gen_split_95 (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 12109 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch_thumb2) && 
#line 12111 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
( reload_completed)))
        return NULL;
      return gen_split_103 (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 (pattern398 (x2, E_CCFPmode))
            {
            case 0:
              if (!
#line 1751 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
                return NULL;
              return gen_split_106 (insn, operands);

            case 1:
              if (!
#line 1781 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
                return NULL;
              return gen_split_108 (insn, operands);

            default:
              return NULL;
            }

        case E_CCFPEmode:
          switch (pattern398 (x2, E_CCFPEmode))
            {
            case 0:
              if (!
#line 1766 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
                return NULL;
              return gen_split_107 (insn, operands);

            case 1:
              if (!
#line 1796 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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;
            }

        default:
          return NULL;
        }

    case SIGN_EXTRACT:
      if (pattern3 (x1) != 0
          || !
#line 220 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return NULL;
      return gen_split_114 (insn, operands);

    case VEC_CONCAT:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      switch (pattern12 (x2))
        {
        case 0:
          if (!(
#line 3596 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 3598 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
( reload_completed)))
            return NULL;
          return gen_split_153 (insn, operands);

        case 1:
          if (!(
#line 3596 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 3598 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
( reload_completed)))
            return NULL;
          return gen_split_154 (insn, operands);

        case 2:
          if (!(
#line 3596 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 3598 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
( reload_completed)))
            return NULL;
          return gen_split_155 (insn, operands);

        case 3:
          if (!(
#line 3596 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 3598 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
( reload_completed)))
            return NULL;
          return gen_split_156 (insn, operands);

        case 4:
          if (!(
#line 3596 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 3598 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
( reload_completed)))
            return NULL;
          return gen_split_157 (insn, operands);

        case 5:
          if (!(
#line 3596 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 3598 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
( reload_completed)))
            return NULL;
          return gen_split_158 (insn, operands);

        case 6:
          if (!(
#line 3596 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 3598 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
( reload_completed)))
            return NULL;
          return gen_split_159 (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 5026 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 5028 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/neon.md"
( reload_completed)))
        return NULL;
      return gen_split_163 (insn, operands);

    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, x21, x22, x23, x24, x25;
  rtx x26, x27, x28, x29, x30, x31, x32, x33;
  rtx x34, x35, x36, x37, x38, x39, x40;
  rtx_insn *res ATTRIBUTE_UNUSED;
  recog_data.insn = NULL;
  switch (GET_CODE (x1))
    {
    case SET:
      return split_10 (x1, insn);

    case PARALLEL:
      switch (XVECLEN (x1, 0))
        {
        case 2:
          return split_9 (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
              || pattern321 (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
              || pattern486 (x1) != 0
              || !
#line 9203 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(reload_completed))
            return NULL;
          return gen_split_74 (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 9292 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(reload_completed))
                return NULL;
              return gen_split_75 (insn, operands);

            case UNSPEC_VOLATILE:
              switch (pattern302 (x1))
                {
                case 0:
                  if (!((
#line 204 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_32BIT)) && 
#line 206 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_164 (insn, operands);

                case 1:
                  if (!((
#line 204 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_32BIT)) && 
#line 206 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_165 (insn, operands);

                case 2:
                  if (!((
#line 204 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_THUMB1)) && 
#line 206 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_166 (insn, operands);

                case 3:
                  if (!((
#line 204 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_THUMB1)) && 
#line 206 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_167 (insn, operands);

                case 4:
                  if (!((
#line 235 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_32BIT)) && 
#line 237 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_168 (insn, operands);

                case 5:
                  if (!((
#line 235 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_32BIT)) && 
#line 237 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_169 (insn, operands);

                case 6:
                  if (!((
#line 235 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_THUMB1)) && 
#line 237 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_170 (insn, operands);

                case 7:
                  if (!((
#line 235 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 53 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/iterators.md"
(TARGET_THUMB1)) && 
#line 237 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_171 (insn, operands);

                case 8:
                  if (!(
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_176 (insn, operands);

                case 9:
                  if (!(
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_181 (insn, operands);

                case 10:
                  if (!(
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_186 (insn, operands);

                case 11:
                  if (!(
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_191 (insn, operands);

                case 12:
                  if (!(
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_177 (insn, operands);

                case 13:
                  if (!(
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_182 (insn, operands);

                case 14:
                  if (!(
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_187 (insn, operands);

                case 15:
                  if (!(
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_192 (insn, operands);

                case 16:
                  if (!(
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_178 (insn, operands);

                case 17:
                  if (!(
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_183 (insn, operands);

                case 18:
                  if (!(
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_188 (insn, operands);

                case 19:
                  if (!(
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_193 (insn, operands);

                case 20:
                  if (!(
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_179 (insn, operands);

                case 21:
                  if (!(
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_184 (insn, operands);

                case 22:
                  if (!(
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_189 (insn, operands);

                case 23:
                  if (!(
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_194 (insn, operands);

                case 24:
                  if (!(
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_180 (insn, operands);

                case 25:
                  if (!(
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_185 (insn, operands);

                case 26:
                  if (!(
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_190 (insn, operands);

                case 27:
                  if (!(
#line 296 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_195 (insn, operands);

                case 28:
                  if (!(
#line 320 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 322 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_196 (insn, operands);

                case 29:
                  if (!(
#line 320 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 322 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_197 (insn, operands);

                case 30:
                  if (!(
#line 320 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 322 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_198 (insn, operands);

                case 31:
                  if (!(
#line 320 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 322 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_199 (insn, operands);

                default:
                  return NULL;
                }

            case MEM:
              operands[1] = x3;
              if (pattern353 (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 (pattern601 (x19, E_QImode) != 0
                      || !(
#line 255 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 257 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_172 (insn, operands);

                case E_HImode:
                  if (pattern601 (x19, E_HImode) != 0
                      || !(
#line 255 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 257 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_173 (insn, operands);

                case E_SImode:
                  if (pattern601 (x19, E_SImode) != 0
                      || !(
#line 255 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 257 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_174 (insn, operands);

                case E_DImode:
                  if (pattern601 (x19, E_DImode) != 0
                      || !(
#line 255 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 257 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_175 (insn, operands);

                default:
                  return NULL;
                }

            case PLUS:
              switch (pattern322 (x1))
                {
                case 0:
                  if (!(
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_224 (insn, operands);

                case 1:
                  if (!(
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_229 (insn, operands);

                case 2:
                  if (!(
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_234 (insn, operands);

                case 3:
                  if (!(
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_239 (insn, operands);

                default:
                  return NULL;
                }

            case MINUS:
              switch (pattern322 (x1))
                {
                case 0:
                  if (!(
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_225 (insn, operands);

                case 1:
                  if (!(
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_230 (insn, operands);

                case 2:
                  if (!(
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_235 (insn, operands);

                case 3:
                  if (!(
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_240 (insn, operands);

                default:
                  return NULL;
                }

            case IOR:
              switch (pattern322 (x1))
                {
                case 0:
                  if (!(
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_226 (insn, operands);

                case 1:
                  if (!(
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_231 (insn, operands);

                case 2:
                  if (!(
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_236 (insn, operands);

                case 3:
                  if (!(
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_241 (insn, operands);

                default:
                  return NULL;
                }

            case XOR:
              switch (pattern322 (x1))
                {
                case 0:
                  if (!(
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_227 (insn, operands);

                case 1:
                  if (!(
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_232 (insn, operands);

                case 2:
                  if (!(
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_237 (insn, operands);

                case 3:
                  if (!(
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_242 (insn, operands);

                default:
                  return NULL;
                }

            case AND:
              switch (pattern322 (x1))
                {
                case 0:
                  if (!(
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_228 (insn, operands);

                case 1:
                  if (!(
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_233 (insn, operands);

                case 2:
                  if (!(
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_238 (insn, operands);

                case 3:
                  if (!(
#line 411 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_243 (insn, operands);

                default:
                  return NULL;
                }

            case NOT:
              x7 = XEXP (x3, 0);
              if (GET_CODE (x7) != AND
                  || pattern353 (x1, 19, 3) != 0)
                return NULL;
              switch (pattern559 (x1))
                {
                case 0:
                  if (!(
#line 437 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 439 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_244 (insn, operands);

                case 1:
                  if (!(
#line 437 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 439 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_245 (insn, operands);

                case 2:
                  if (!(
#line 437 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 439 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_246 (insn, operands);

                case 3:
                  if (!(
#line 437 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 439 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_247 (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 (pattern590 (x1))
            {
            case 0:
              x4 = XVECEXP (x1, 0, 1);
              x19 = XEXP (x4, 1);
              switch (pattern632 (x19))
                {
                case 0:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_200 (insn, operands);

                case 1:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_205 (insn, operands);

                case 2:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_210 (insn, operands);

                case 3:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_215 (insn, operands);

                default:
                  return NULL;
                }

            case 1:
              x4 = XVECEXP (x1, 0, 1);
              x19 = XEXP (x4, 1);
              switch (pattern632 (x19))
                {
                case 0:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_201 (insn, operands);

                case 1:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_206 (insn, operands);

                case 2:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_211 (insn, operands);

                case 3:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_216 (insn, operands);

                default:
                  return NULL;
                }

            case 2:
              x4 = XVECEXP (x1, 0, 1);
              x19 = XEXP (x4, 1);
              switch (pattern632 (x19))
                {
                case 0:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_202 (insn, operands);

                case 1:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_207 (insn, operands);

                case 2:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_212 (insn, operands);

                case 3:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_217 (insn, operands);

                default:
                  return NULL;
                }

            case 3:
              x4 = XVECEXP (x1, 0, 1);
              x19 = XEXP (x4, 1);
              switch (pattern632 (x19))
                {
                case 0:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_203 (insn, operands);

                case 1:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_208 (insn, operands);

                case 2:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_213 (insn, operands);

                case 3:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_218 (insn, operands);

                default:
                  return NULL;
                }

            case 4:
              x4 = XVECEXP (x1, 0, 1);
              x19 = XEXP (x4, 1);
              switch (pattern632 (x19))
                {
                case 0:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_204 (insn, operands);

                case 1:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_209 (insn, operands);

                case 2:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_214 (insn, operands);

                case 3:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_219 (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 (pattern641 (x19, E_QImode) != 0
                      || !(
#line 386 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 388 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_220 (insn, operands);

                case E_HImode:
                  if (pattern641 (x19, E_HImode) != 0
                      || !(
#line 386 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 388 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_221 (insn, operands);

                case E_SImode:
                  if (pattern641 (x19, E_SImode) != 0
                      || !(
#line 386 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 388 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_222 (insn, operands);

                case E_DImode:
                  if (pattern642 (x19) != 0
                      || !(
#line 386 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 388 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_223 (insn, operands);

                default:
                  return NULL;
                }

            default:
              return NULL;
            }

        default:
          return NULL;
        }

    case COND_EXEC:
      x25 = XEXP (x1, 0);
      if (!arm_comparison_operator (x25, E_VOIDmode))
        return NULL;
      x26 = XEXP (x25, 1);
      if (x26 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return NULL;
      x27 = XEXP (x25, 0);
      if (!cc_register (x27, E_VOIDmode))
        return NULL;
      x28 = XEXP (x1, 1);
      switch (GET_CODE (x28))
        {
        case SET:
          x29 = XEXP (x28, 0);
          operands[0] = x29;
          x30 = XEXP (x28, 1);
          switch (GET_CODE (x30))
            {
            case PLUS:
              if (pattern399 (x1) != 0
                  || !
#line 947 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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_248 (insn, operands);

            case MINUS:
              if (GET_MODE (x30) != E_SImode)
                return NULL;
              operands[3] = x25;
              operands[4] = x27;
              if (!s_register_operand (operands[0], E_SImode))
                return NULL;
              x31 = XEXP (x30, 0);
              operands[1] = x31;
              if (!reg_or_int_operand (operands[1], E_SImode))
                return NULL;
              x32 = XEXP (x30, 1);
              operands[2] = x32;
              if (!reg_or_int_operand (operands[2], E_SImode)
                  || !(
#line 2005 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT) && 
#line 2016 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
( (CONST_INT_P (operands[1])
       && !const_ok_for_arm (INTVAL (operands[1]))))))
                return NULL;
              return gen_split_249 (insn, operands);

            case AND:
              if (GET_MODE (x30) != E_SImode
                  || !s_register_operand (operands[0], E_SImode))
                return NULL;
              x31 = XEXP (x30, 0);
              switch (GET_CODE (x31))
                {
                case REG:
                case SUBREG:
                  operands[1] = x31;
                  if (!s_register_operand (operands[1], E_SImode))
                    return NULL;
                  operands[3] = x25;
                  operands[4] = x27;
                  x32 = XEXP (x30, 1);
                  operands[2] = x32;
                  if (!reg_or_int_operand (operands[2], E_SImode)
                      || !
#line 3015 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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])))))
                    return NULL;
                  return gen_split_250 (insn, operands);

                case IOR:
                  if (GET_MODE (x31) != E_SImode)
                    return NULL;
                  x32 = XEXP (x30, 1);
                  if (GET_CODE (x32) != NOT
                      || GET_MODE (x32) != E_SImode)
                    return NULL;
                  operands[4] = x25;
                  operands[5] = x27;
                  x33 = XEXP (x31, 0);
                  operands[1] = x33;
                  if (!s_register_operand (operands[1], E_SImode))
                    return NULL;
                  x34 = XEXP (x31, 1);
                  operands[2] = x34;
                  if (!arm_rhs_operand (operands[2], E_SImode))
                    return NULL;
                  x35 = XEXP (x32, 0);
                  operands[3] = x35;
                  if (!arm_rhs_operand (operands[3], E_SImode)
                      || !(
#line 3807 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_32BIT) && 
#line 3809 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
( reload_completed)))
                    return NULL;
                  return gen_split_253 (insn, operands);

                default:
                  return NULL;
                }

            case IOR:
              if (pattern399 (x1) != 0
                  || !
#line 3641 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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_251 (insn, operands);

            case XOR:
              if (pattern399 (x1) != 0
                  || !
#line 3746 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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_252 (insn, operands);

            case NEG:
              if (GET_MODE (x30) != E_DFmode)
                return NULL;
              operands[2] = x25;
              operands[3] = x27;
              if (!s_register_operand (operands[0], E_DFmode))
                return NULL;
              x31 = XEXP (x30, 0);
              operands[1] = x31;
              if (!s_register_operand (operands[1], E_DFmode)
                  || !
#line 906 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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_256 (insn, operands);

            default:
              return NULL;
            }

        case PARALLEL:
          if (XVECLEN (x28, 0) != 2)
            return NULL;
          x36 = XVECEXP (x28, 0, 0);
          if (GET_CODE (x36) != SET
              || pattern400 (x1) != 0)
            return NULL;
          x37 = XEXP (x36, 0);
          operands[0] = x37;
          if (!s_register_operand (operands[0], E_SImode))
            return NULL;
          x38 = XEXP (x36, 1);
          if (GET_MODE (x38) != E_SImode)
            return NULL;
          switch (GET_CODE (x38))
            {
            case ABS:
              x39 = XEXP (x38, 0);
              operands[1] = x39;
              if (!s_register_operand (operands[1], E_SImode))
                return NULL;
              if ((
#line 5152 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM) && 
#line 5154 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
( reload_completed)))
                return gen_split_254 (insn, operands);
              if (!(
#line 117 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2) && 
#line 122 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
( reload_completed)))
                return NULL;
              return gen_split_257 (insn, operands);

            case NEG:
              x39 = XEXP (x38, 0);
              if (GET_CODE (x39) != ABS
                  || GET_MODE (x39) != E_SImode)
                return NULL;
              x40 = XEXP (x39, 0);
              operands[1] = x40;
              if (!s_register_operand (operands[1], E_SImode))
                return NULL;
              if ((
#line 5216 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
(TARGET_ARM) && 
#line 5218 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/arm.md"
( reload_completed)))
                return gen_split_255 (insn, operands);
              if (!(
#line 170 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
(TARGET_THUMB2) && 
#line 175 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.0/gcc/config/arm/thumb2.md"
( reload_completed)))
                return NULL;
              return gen_split_258 (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-12.2.0-r0/gcc-12.2.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 (pattern526 (x5) != 0)
    return NULL;
  if (
#line 9884 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 9901 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 (pattern526 (x5) != 0)
    return NULL;
  if (
#line 9923 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 9944 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 11471 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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-12.2.0-r0/gcc-12.2.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-12.2.0-r0/gcc-12.2.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 (pattern575 (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-12.2.0-r0/gcc-12.2.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 (pattern478 (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-12.2.0-r0/gcc-12.2.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-12.2.0-r0/gcc-12.2.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 (pattern527 (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 (pattern527 (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 913 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 1201 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 (pattern354 (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 1073 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 1092 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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-12.2.0-r0/gcc-12.2.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-12.2.0-r0/gcc-12.2.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-12.2.0-r0/gcc-12.2.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-12.2.0-r0/gcc-12.2.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 2036 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 3663 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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 6690 "../../../../../../../work-shared/gcc-12.2.0-r0/gcc-12.2.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-12.2.0-r0/gcc-12.2.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 (pattern291 (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 (pattern291 (x4) != 0)
        return NULL;
      x11 = PATTERN (peep2_next_insn (2));
      switch (GET_CODE (x11))
        {
        case PARALLEL:
          if (pattern575 (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-12.2.0-r0/gcc-12.2.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-12.2.0-r0/gcc-12.2.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-12.2.0-r0/gcc-12.2.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 (pattern478 (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;
    }
}
