/* 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.c) 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_split_1 (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_1 (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_peephole2_2 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_7 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_8 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_9 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_10 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_11 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_12 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_13 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_14 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_15 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_3 (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_peephole2_4 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_35 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_36 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_37 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_38 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_39 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_40 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_41 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_42 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_43 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_44 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_45 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_46 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_47 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_48 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_49 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_50 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_51 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_52 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_53 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_54 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_55 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_56 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_57 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_58 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_59 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_60 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_61 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_62 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_63 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_64 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_65 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_66 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_67 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_68 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_69 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_70 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_71 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_72 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_73 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_74 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_75 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_76 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_77 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_78 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_79 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_80 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_81 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_82 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_83 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_84 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_85 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_86 (rtx_insn *, rtx *);
extern rtx_insn *gen_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_peephole2_5 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_94 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_95 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_96 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_97 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_98 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_99 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_100 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_101 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_102 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_103 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_104 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_105 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_106 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_107 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_108 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_109 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_110 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_111 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_112 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_113 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_114 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_6 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_7 (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_split_115 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_116 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_117 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_118 (rtx_insn *, rtx *);
extern rtx_insn *gen_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_peephole2_10 (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_peephole2_11 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_12 (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_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_peephole2_33 (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_peephole2_34 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_147 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_148 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_149 (rtx_insn *, rtx *);
extern rtx_insn *gen_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_peephole2_35 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_36 (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_peephole2_37 (rtx_insn *, rtx *);
extern rtx_insn *gen_peephole2_38 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_181 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_182 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_183 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_184 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_185 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_186 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_187 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_188 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_189 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_190 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_191 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_192 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_193 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_194 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_195 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_196 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_197 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_198 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_199 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_200 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_201 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_202 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_203 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_204 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_205 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_206 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_207 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_208 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_209 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_210 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_211 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_212 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_213 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_214 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_215 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_216 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_217 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_218 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_219 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_220 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_221 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_222 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_223 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_224 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_225 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_226 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_227 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_228 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_229 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_230 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_231 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_232 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_233 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_234 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_235 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_236 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_237 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_238 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_239 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_240 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_241 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_242 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_243 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_244 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_245 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_246 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_247 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_248 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_249 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_250 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_251 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_252 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_253 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_254 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_255 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_256 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_257 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_258 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_259 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_260 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_261 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_262 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_263 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_264 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_265 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_266 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_267 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_268 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_269 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_270 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_271 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_272 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_273 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_274 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_275 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_276 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_277 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_278 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_279 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_280 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_281 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_282 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_283 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_284 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_285 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_286 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_287 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_288 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_289 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_290 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_291 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_292 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_293 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_294 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_295 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_296 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_297 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_298 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_299 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_300 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_301 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_302 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_303 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_304 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_305 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_306 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_307 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_308 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_309 (rtx_insn *, rtx *);
extern rtx_insn *gen_split_310 (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)
{
  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
pattern2 (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
pattern3 (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
pattern4 (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 (pattern3 (x3, E_V2SFmode) != 0)
        return -1;
      return 3;

    case E_V4QQmode:
      if (pattern3 (x3, E_V4QQmode) != 0)
        return -1;
      return 4;

    case E_V2HQmode:
      if (pattern3 (x3, E_V2HQmode) != 0)
        return -1;
      return 5;

    case E_QQmode:
      if (pattern3 (x3, E_QQmode) != 0)
        return -1;
      return 6;

    case E_HQmode:
      if (pattern3 (x3, E_HQmode) != 0)
        return -1;
      return 7;

    case E_V2HAmode:
      if (pattern3 (x3, E_V2HAmode) != 0)
        return -1;
      return 8;

    case E_HAmode:
      if (pattern3 (x3, E_HAmode) != 0)
        return -1;
      return 9;

    case E_SQmode:
      if (pattern3 (x3, E_SQmode) != 0)
        return -1;
      return 10;

    case E_SAmode:
      if (pattern3 (x3, E_SAmode) != 0)
        return -1;
      return 11;

    default:
      return -1;
    }
}

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 (pattern3 (x3, E_V2SFmode) != 0)
        return -1;
      return 3;

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

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

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

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

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

    case E_UHAmode:
      if (pattern3 (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, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != E_SImode)
    return -1;
  switch (GET_CODE (x2))
    {
    case MEM:
      x3 = XEXP (x2, 0);
      operands[0] = x3;
      x4 = XEXP (x1, 1);
      operands[1] = x4;
      return 0;

    case UNSPEC:
      if (XVECLEN (x2, 0) != 1
          || XINT (x2, 1) != 36)
        return -1;
      x5 = XVECEXP (x2, 0, 0);
      if (GET_CODE (x5) != MEM
          || GET_MODE (x5) != E_SImode)
        return -1;
      x6 = XEXP (x5, 0);
      if (GET_CODE (x6) != REG
          || REGNO (x6) != 4
          || GET_MODE (x6) != E_SImode)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern8 (rtx x1, rtx_code i1, rtx_code i2)
{
  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) != E_SImode)
    return -1;
  return 0;
}

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

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

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

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

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

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

    default:
      return -1;
    }
}

static int
pattern11 (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;
  return 0;
}

static int
pattern12 (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);
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != 100
      || GET_MODE (x3) != E_CCmode
      || !s_register_operand (operands[0], i1))
    return -1;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 1);
  if (GET_MODE (x5) != i1)
    return -1;
  x6 = XEXP (x5, 0);
  x7 = XEXP (x6, 0);
  operands[1] = x7;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  return 0;
}

static int
pattern13 (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
pattern14 (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);
  if (GET_CODE (x2) != CLOBBER)
    return -1;
  x3 = XVECEXP (x1, 0, 0);
  x4 = XEXP (x3, 0);
  operands[0] = x4;
  x5 = XEXP (x3, 1);
  x6 = XEXP (x5, 0);
  switch (GET_CODE (x6))
    {
    case REG:
    case SUBREG:
      operands[1] = x6;
      return 0;

    case SIGN_EXTEND:
      if (GET_MODE (x6) != E_DImode
          || pattern12 (x1, E_DImode) != 0)
        return -1;
      return 1;

    case ZERO_EXTEND:
      if (GET_MODE (x6) != E_DImode
          || pattern12 (x1, E_DImode) != 0)
        return -1;
      return 2;

    case ABS:
      if (GET_MODE (x6) != E_SImode
          || !s_register_operand (operands[0], E_SImode)
          || GET_MODE (x5) != E_SImode)
        return -1;
      x7 = XEXP (x6, 0);
      operands[1] = x7;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      return 3;

    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)
          || pattern13 (x1) != 0)
        return -1;
      return 4;

    default:
      return -1;
    }
}

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, 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);
  if (GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x3, 1);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + i1])
    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)
    return -1;
  x7 = XEXP (x2, 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;
  return 0;
}

static int
pattern17 (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
pattern18 (rtx x1, rtx_code i1, rtx_code i2)
{
  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) != 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;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  if (XINT (x2, 1) != 16)
    return -1;
  x3 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x3) != CLOBBER)
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[0] = x4;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x5 = XEXP (x3, 0);
  operands[1] = x5;
  if (!scratch_operand (operands[1], E_SImode))
    return -1;
  return 0;
}

static int
pattern20 (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
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 = 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;
      x6 = XEXP (x3, 1);
      operands[2] = x6;
      return 0;

    case UNSPEC:
      if (XVECLEN (x4, 0) != 1
          || XINT (x4, 1) != 36)
        return -1;
      x7 = XVECEXP (x4, 0, 0);
      if (GET_CODE (x7) != MEM
          || GET_MODE (x7) != E_SImode)
        return -1;
      x8 = XEXP (x7, 0);
      if (GET_CODE (x8) != REG
          || REGNO (x8) != 4
          || GET_MODE (x8) != E_SImode)
        return -1;
      return 1;

    default:
      return -1;
    }
}

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

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

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

static int
pattern25 (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 pattern24 (x1); /* [-1, 3] */
}

static int
pattern26 (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
pattern27 (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
pattern28 (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 (!s_register_operand (operands[0], E_DImode))
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], E_DImode))
    return -1;
  x5 = XEXP (x3, 1);
  operands[2] = x5;
  if (!reg_or_int_operand (operands[2], E_SImode))
    return -1;
  x6 = XVECEXP (x1, 0, 1);
  x7 = XEXP (x6, 0);
  operands[3] = x7;
  if (!scratch_operand (operands[3], E_SImode))
    return -1;
  x8 = XVECEXP (x1, 0, 2);
  x9 = XEXP (x8, 0);
  operands[4] = x9;
  if (!scratch_operand (operands[4], E_SImode))
    return -1;
  x10 = XVECEXP (x1, 0, 3);
  x11 = XEXP (x10, 0);
  operands[5] = x11;
  if (!scratch_operand (operands[5], E_DImode))
    return -1;
  return 0;
}

static int
pattern29 (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_DImode)
    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 = 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)
    return -1;
  x9 = XEXP (x2, 0);
  operands[0] = x9;
  return pattern28 (x1); /* [-1, 0] */
}

static int
pattern30 (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
pattern31 (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
pattern32 (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_for_neon_rshift_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern33 (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_V4HImode:
      if (GET_MODE (x1) != E_V4HImode)
        return -1;
      return 0;

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

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

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

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

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

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

    default:
      return -1;
    }
}

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

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

static int
pattern37 (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 (pattern3 (x1, E_V16QImode) != 0)
            return -1;
          return 4;

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

        case E_V4SImode:
          if (pattern3 (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]
              || pattern34 (x1, E_V2SImode, E_V4SImode) != 0)
            return -1;
          return 7;

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

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

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern38 (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
pattern39 (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
pattern40 (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
pattern41 (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
pattern42 (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
pattern43 (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
pattern44 (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
pattern45 (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
pattern46 (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
pattern47 (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
pattern48 (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
pattern49 (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 pattern48 (x3); /* [-1, 2] */
}

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

static int
pattern52 (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 (!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], i1))
    return -1;
  return 0;
}

static int
pattern53 (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
pattern54 (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
pattern55 (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
pattern56 (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
pattern57 (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
pattern58 (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 pattern57 (x3, E_HFmode); /* [-1, 0] */

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

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

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

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

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

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

    default:
      return -1;
    }
}

static int
pattern59 (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 pattern57 (x3, E_V8QImode); /* [-1, 0] */

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

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

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

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

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

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

    case E_DImode:
      if (pattern57 (x3, E_DImode) != 0)
        return -1;
      return 7;

    default:
      return -1;
    }
}

static int
pattern60 (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 pattern57 (x3, E_V8QImode); /* [-1, 0] */

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

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

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

    default:
      return -1;
    }
}

static int
pattern61 (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 pattern57 (x3, E_V8QImode); /* [-1, 0] */

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

    case E_V2SImode:
      if (pattern57 (x3, E_V2SImode) != 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;
  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 pattern57 (x3, E_V2SFmode); /* [-1, 0] */

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

    default:
      return -1;
    }
}

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

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

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

    default:
      return -1;
    }
}

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

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

    case E_V2DImode:
      if (pattern65 (x3, E_V2SImode, E_V2DImode) != 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;
  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 pattern57 (x3, E_V8QImode); /* [-1, 0] */

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

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

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

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

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

    default:
      return -1;
    }
}

static int
pattern68 (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 pattern57 (x3, E_V8QImode); /* [-1, 0] */

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

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

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

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

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

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

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

    default:
      return -1;
    }
}

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

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

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

    default:
      return -1;
    }
}

static int
pattern70 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  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 pattern57 (x3, E_V4HImode); /* [-1, 0] */

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

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

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

    default:
      return -1;
    }
}

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

static int
pattern72 (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 pattern71 (x3, E_V2SFmode, E_V2SImode); /* [-1, 0] */

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

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

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

    default:
      return -1;
    }
}

static int
pattern73 (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 pattern63 (x3, E_V2SFmode, E_V2SImode); /* [-1, 0] */

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

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

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

    default:
      return -1;
    }
}

static int
pattern74 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  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 pattern63 (x3, E_V8HFmode, E_V8HImode); /* [-1, 0] */

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

    default:
      return -1;
    }
}

static int
pattern75 (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 pattern57 (x3, E_V8QImode); /* [-1, 0] */

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

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

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

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

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

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

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

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

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

    default:
      return -1;
    }
}

static int
pattern76 (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 pattern57 (x3, E_V4HFmode); /* [-1, 0] */

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

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

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

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

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

    default:
      return -1;
    }
}

static int
pattern77 (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 pattern65 (x3, E_V8QImode, E_V4HImode); /* [-1, 0] */

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

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

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

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

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

    default:
      return -1;
    }
}

static int
pattern78 (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
pattern79 (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 pattern78 (x3, E_V4HFmode); /* [-1, 0] */

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

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

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

    default:
      return -1;
    }
}

static int
pattern80 (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
pattern81 (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
pattern82 (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 pattern48 (x3); /* [-1, 2] */
}

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

static int
pattern84 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XVECEXP (x2, 0, 1);
  if (GET_CODE (x3) != UNSPEC
      || XVECLEN (x3, 0) != 1
      || XINT (x3, 1) != 254)
    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
pattern85 (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) != 254)
    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
pattern86 (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) != 254)
    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_V2SImode:
      return 3;

    case E_V2SFmode:
      return 4;

    case E_DImode:
      return 5;

    default:
      return -1;
    }
}

static int
pattern87 (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) != 254)
    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_V4SImode:
      return 3;

    case E_V4SFmode:
      return 4;

    default:
      return -1;
    }
}

static int
pattern88 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != i1)
    return -1;
  x3 = XVECEXP (x2, 0, 1);
  if (GET_CODE (x3) != UNSPEC
      || XVECLEN (x3, 0) != 1
      || XINT (x3, 1) != 254)
    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_V2SImode:
      return 3;

    case E_V2SFmode:
      return 4;

    case E_DImode:
      return 5;

    default:
      return -1;
    }
}

static int
pattern89 (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) != 254)
    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_V4SImode:
      return 3;

    case E_V4SFmode:
      return 4;

    default:
      return -1;
    }
}

static int
pattern90 (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
pattern91 (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
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_V8QImode:
      return pattern91 (x3, E_V8QImode); /* [-1, 0] */

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

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

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

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

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

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

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

    default:
      return -1;
    }
}

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

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

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

    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, 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 pattern91 (x3, E_V4HImode); /* [-1, 0] */

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

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

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

    default:
      return -1;
    }
}

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

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

    default:
      return -1;
    }
}

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, 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 pattern63 (x3, E_V4HImode, E_V4SImode); /* [-1, 0] */

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

    default:
      return -1;
    }
}

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

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

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

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

    default:
      return -1;
    }
}

static int
pattern99 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 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 pattern57 (x3, E_V8QImode); /* [-1, 0] */

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

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

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

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

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

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

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

    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);
  x3 = XVECEXP (x2, 0, 2);
  if (GET_CODE (x3) != UNSPEC
      || XVECLEN (x3, 0) != 1
      || XINT (x3, 1) != 254)
    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
pattern101 (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) != 254)
    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_V4SImode:
      return 3;

    case E_V4SFmode:
      return 4;

    default:
      return -1;
    }
}

static int
pattern102 (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
pattern103 (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
pattern104 (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
pattern105 (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 pattern104 (x1, E_QImode, E_V8QImode, E_V8HImode); /* [-1, 0] */

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

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

    default:
      return -1;
    }
}

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

static int
pattern107 (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
pattern108 (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 = XVECEXP (x1, 0, 0);
  operands[1] = x2;
  if (!immediate_operand (operands[1], E_SImode))
    return -1;
  x3 = XVECEXP (x1, 0, 1);
  operands[2] = x3;
  if (!immediate_operand (operands[2], E_SImode))
    return -1;
  x4 = XVECEXP (x1, 0, 2);
  operands[3] = x4;
  if (!immediate_operand (operands[3], E_SImode))
    return -1;
  return 0;
}

static int
pattern109 (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
pattern110 (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
pattern111 (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
pattern112 (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 30:
      return pattern110 (x1); /* [-1, 1] */

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

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

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

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

        default:
          return -1;
        }

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

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

        default:
          return -1;
        }

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

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

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern113 (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
pattern114 (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
pattern115 (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
pattern116 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  if (!arm_comparison_operator (operands[1], E_SImode))
    return -1;
  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;
  x6 = XEXP (x4, 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 (!arm_add_operand (operands[3], E_SImode))
    return -1;
  return 0;
}

static int
pattern117 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = 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
pattern118 (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
      || pattern117 (x1) != 0)
    return -1;
  return 0;
}

static int
pattern119 (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
pattern120 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[1], i1)
      || !mem_noofs_operand (operands[2], i1)
      || GET_MODE (x1) != i1
      || !arm_add_operand (operands[3], i1)
      || !s_register_operand (operands[4], i1))
    return -1;
  return 0;
}

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

        case E_SImode:
          res = pattern119 (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:
          if (!cc_register_operand (operands[0], E_CC_Zmode))
            return -1;
          x7 = XVECEXP (x1, 0, 0);
          x8 = XEXP (x7, 1);
          if (GET_MODE (x8) != E_CC_Zmode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case E_SImode:
              x9 = XEXP (x5, 1);
              if (pattern120 (x9, E_SImode) != 0)
                return -1;
              return 4;

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

            default:
              return -1;
            }

        case E_SImode:
          if (!cc_register_operand (operands[0], E_SImode))
            return -1;
          x7 = XVECEXP (x1, 0, 0);
          x8 = XEXP (x7, 1);
          if (GET_MODE (x8) != E_SImode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case E_SImode:
              x9 = XEXP (x5, 1);
              if (pattern120 (x9, E_SImode) != 0)
                return -1;
              return 6;

            case E_DImode:
              x9 = XEXP (x5, 1);
              if (pattern120 (x9, E_DImode) != 0)
                return -1;
              return 7;

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

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

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

    case E_SImode:
      if (pattern122 (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
pattern124 (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
pattern125 (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 pattern121 (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 = pattern123 (x6);
          if (res >= 0)
            return res + 8; /* [8, 11] */
          return -1;

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

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

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

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

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

            case E_SImode:
              if (pattern124 (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
pattern126 (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
pattern127 (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 pattern126 (x4, E_CCmode, 100); /* [-1, 0] */
}

static int
pattern128 (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
pattern129 (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);
  switch (GET_CODE (x3))
    {
    case MEM:
      if (GET_MODE (x3) != E_SImode)
        return -1;
      x4 = XVECEXP (x1, 0, 1);
      x5 = XEXP (x4, 1);
      if (GET_CODE (x5) != MEM)
        return -1;
      return 0;

    case REG:
      operands[1] = x3;
      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;
      return 1;

    default:
      return -1;
    }
}

static int
pattern130 (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
pattern131 (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
pattern132 (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
pattern133 (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
pattern134 (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 pattern34 (x1, E_V2SImode, E_V4SImode); /* [-1, 0] */

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

        default:
          return -1;
        }

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

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

    default:
      return -1;
    }
}

static int
pattern135 (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], 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 (!s_register_operand (operands[1], i2))
    return -1;
  x4 = XEXP (x1, 1);
  operands[2] = x4;
  if (!s_register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern136 (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
pattern137 (rtx x1, int *pnum_clobbers)
{
  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:
      switch (GET_MODE (operands[0]))
        {
        case E_DImode:
          if (pnum_clobbers == NULL
              || !s_register_operand (operands[0], E_DImode)
              || GET_MODE (x1) != E_DImode
              || GET_MODE (x2) != E_DImode)
            return -1;
          operands[2] = x3;
          if (!s_register_operand (operands[2], E_SImode))
            return -1;
          x4 = XEXP (x1, 1);
          operands[1] = x4;
          if (!s_register_operand (operands[1], E_DImode))
            return -1;
          return 0;

        case E_SImode:
          if (!s_register_operand (operands[0], E_SImode)
              || GET_MODE (x1) != E_SImode
              || GET_MODE (x2) != E_SImode)
            return -1;
          operands[1] = x3;
          x4 = XEXP (x1, 1);
          operands[2] = x4;
          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))
                return -1;
              return 1;

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

            default:
              return -1;
            }

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

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

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

        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 (pattern136 (x1, E_V8HImode, E_V16QImode, E_V8QImode) != 0)
            return -1;
          return 6;

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

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

        default:
          return -1;
        }

    default:
      return -1;
    }
}

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

static int
pattern139 (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 = XEXP (x2, 0);
  if (GET_MODE (x3) != E_DImode
      || !s_register_operand (operands[0], E_DImode)
      || GET_MODE (x1) != E_DImode
      || GET_MODE (x2) != E_DImode)
    return -1;
  x4 = XEXP (x3, 0);
  operands[2] = x4;
  if (!s_register_operand (operands[2], E_SImode))
    return -1;
  x5 = XEXP (x1, 1);
  operands[1] = x5;
  if (!s_register_operand (operands[1], E_DImode))
    return -1;
  return 0;
}

static int
pattern140 (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);
  switch (GET_CODE (x3))
    {
    case REG:
    case SUBREG:
      x4 = XEXP (x1, 1);
      switch (GET_CODE (x4))
        {
        case REG:
        case SUBREG:
          switch (GET_MODE (operands[0]))
            {
            case E_DImode:
              return 0;

            case E_SImode:
              return 1;

            case E_V8QImode:
              return 2;

            case E_V16QImode:
              return 3;

            case E_V4HImode:
              return 4;

            case E_V8HImode:
              return 5;

            case E_V2SImode:
              return 6;

            case E_V4SImode:
              return 7;

            case E_V4HFmode:
              return 8;

            case E_V8HFmode:
              return 9;

            case E_V2SFmode:
              return 10;

            case E_V4SFmode:
              return 11;

            case E_V2DImode:
              return 12;

            default:
              return -1;
            }

        case ZERO_EXTEND:
          if (GET_MODE (x4) != E_DImode
              || !s_register_operand (operands[0], E_DImode)
              || GET_MODE (x1) != E_DImode
              || GET_MODE (x2) != E_DImode)
            return -1;
          operands[2] = x3;
          if (!s_register_operand (operands[2], E_DImode))
            return -1;
          x5 = XEXP (x4, 0);
          operands[1] = x5;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          return 13;

        default:
          return -1;
        }

    case ZERO_EXTEND:
      if (pattern139 (x1) != 0)
        return -1;
      return 14;

    case SIGN_EXTEND:
      if (pattern139 (x1) != 0)
        return -1;
      return 15;

    case MULT:
    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      operands[4] = x3;
      if (!shift_operator (operands[4], E_SImode)
          || !s_register_operand (operands[0], E_SImode)
          || GET_MODE (x1) != E_SImode
          || GET_MODE (x2) != E_SImode)
        return -1;
      x6 = XEXP (x3, 0);
      operands[2] = x6;
      if (!s_register_operand (operands[2], E_SImode))
        return -1;
      x7 = XEXP (x3, 1);
      operands[3] = x7;
      return 16;

    default:
      return -1;
    }
}

static int
pattern141 (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);
  if (GET_MODE (x2) != E_SImode)
    return -1;
  x3 = XEXP (x1, 1);
  if (GET_CODE (x3) != NOT
      || GET_MODE (x3) != E_SImode
      || !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_rhs_operand (operands[2], E_SImode))
    return -1;
  x6 = XEXP (x3, 0);
  operands[3] = x6;
  if (!arm_rhs_operand (operands[3], E_SImode))
    return -1;
  return 0;
}

static int
pattern142 (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
pattern143 (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], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x3 = XEXP (x2, 0);
  operands[1] = x3;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  return 0;
}

static int
pattern144 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[3] = x2;
  if (!arm_comparison_operator (operands[3], E_VOIDmode)
      || !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], E_SImode))
    return -1;
  x4 = XEXP (x2, 1);
  operands[2] = x4;
  if (!arm_rhs_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

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

    case E_V16QImode:
      if (pattern145 (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
pattern147 (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
pattern148 (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 pattern146 (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 (pattern147 (x1, E_V2SFmode, E_V2SImode) != 0)
            return -1;
          return 10;

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

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

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

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
pattern149 (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 pattern146 (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_V8HImode:
          if (pattern147 (x1, E_V8HFmode, E_V8HImode) != 0)
            return -1;
          return 10;

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

        default:
          return -1;
        }

    default:
      return -1;
    }
}

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

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

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

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

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

    case E_V4SImode:
      if (pattern150 (x1, 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;
  int res ATTRIBUTE_UNUSED;
  if (!arm_comparison_operator_mode (operands[1], E_SImode))
    return -1;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 1);
  if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
      || GET_MODE (x1) != E_SImode)
    return -1;
  x4 = XEXP (x2, 0);
  operands[2] = x4;
  if (!cc_register (operands[2], E_VOIDmode))
    return -1;
  return 0;
}

static int
pattern153 (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
pattern154 (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_SImode:
      if (!s_register_operand (operands[0], E_SImode)
          || GET_MODE (x1) != 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 (x1) != E_DImode
          || !mem_noofs_operand (operands[1], E_DImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern155 (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
pattern156 (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 pattern24 (x1); /* [-1, 3] */
}

static int
pattern157 (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
pattern158 (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_DImode:
      if (!s_register_operand (operands[0], E_DImode)
          || GET_MODE (x1) != E_DImode)
        return -1;
      return 0;

    case E_SImode:
      if (pattern157 (x1) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern159 (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;
  if (!s_register_operand (operands[0], E_SImode)
      || GET_MODE (x1) != 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 (!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
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);
  if (GET_MODE (x2) != E_DImode
      || !s_register_operand (operands[0], E_DImode)
      || GET_MODE (x1) != E_DImode)
    return -1;
  x3 = XEXP (x2, 0);
  switch (GET_CODE (x3))
    {
    case REG:
    case SUBREG:
      if (!s_register_operand (x3, E_DImode))
        return -1;
      x4 = XEXP (x1, 1);
      switch (GET_CODE (x4))
        {
        case REG:
        case SUBREG:
          return 0;

        case ZERO_EXTEND:
          return 1;

        default:
          return -1;
        }

    case ZERO_EXTEND:
      if (GET_MODE (x3) != E_DImode)
        return -1;
      x5 = XEXP (x3, 0);
      operands[2] = x5;
      if (!s_register_operand (operands[2], E_SImode))
        return -1;
      x4 = XEXP (x1, 1);
      operands[1] = x4;
      if (!s_register_operand (operands[1], E_DImode))
        return -1;
      return 2;

    case SIGN_EXTEND:
      if (GET_MODE (x3) != E_DImode)
        return -1;
      x5 = XEXP (x3, 0);
      operands[2] = x5;
      if (!s_register_operand (operands[2], E_SImode))
        return -1;
      x4 = XEXP (x1, 1);
      operands[1] = x4;
      if (!s_register_operand (operands[1], E_DImode))
        return -1;
      return 3;

    default:
      return -1;
    }
}

static int
pattern161 (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_NOOVmode)
    return -1;
  x3 = XEXP (x1, 1);
  if (GET_MODE (x3) != E_CC_NOOVmode)
    return -1;
  return 0;
}

static int
pattern162 (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
pattern163 (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 pattern23 (x1); /* [-1, 3] */
}

static int
pattern164 (rtx x1, int *pnum_clobbers)
{
  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 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  operands[1] = x4;
  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) != 3
      || XINT (x6, 1) != 19)
    return -1;
  return pattern163 (x1); /* [-1, 3] */
}

static int
pattern165 (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
          || pattern162 (x3) != 0)
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern166 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (XINT (x1, 1) != 37
      || 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
pattern167 (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
pattern168 (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
pattern169 (rtx x1)
{
  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 (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x4 = XEXP (x1, 0);
  if (GET_CODE (x4) != REG
      || REGNO (x4) != 100
      || GET_MODE (x4) != E_CC_NOOVmode)
    return -1;
  return 0;
}

static int
pattern170 (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
pattern171 (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
pattern172 (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
pattern173 (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 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_DImode
      || !s_register_operand (operands[0], E_DImode)
      || GET_MODE (x1) != E_DImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[1] = x3;
  if (!s_register_operand (operands[1], E_DImode))
    return -1;
  x4 = XEXP (x2, 0);
  operands[2] = x4;
  if (!s_register_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern174 (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
pattern175 (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
pattern176 (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
pattern177 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  if (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
pattern178 (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 pattern78 (x1, E_V8QImode); /* [-1, 0] */

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

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

    default:
      return -1;
    }
}

static int
pattern179 (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
pattern180 (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
      || pattern179 (x1, i1, i2) != 0)
    return -1;
  return 0;
}

static int
pattern181 (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 pattern180 (x1, E_V4HImode, E_V4QImode, E_V8QImode); /* [-1, 0] */

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

    case E_V2SImode:
      if (pattern180 (x1, E_DImode, E_SImode, E_V2SImode) != 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, 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
pattern183 (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);
  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:
          return 0;

        case REG:
        case SUBREG:
          return 1;

        default:
          return -1;
        }

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

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

    default:
      return -1;
    }
}

static int
pattern184 (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
pattern185 (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
pattern186 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1
      || !s_register_operand (operands[1], i1)
      || !s_register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern187 (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 pattern185 (x6, E_V8QImode); /* [-1, 0] */

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

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

    case E_V4QQmode:
      if (pattern186 (x6, E_V4QQmode) != 0)
        return -1;
      return 3;

    case E_V2HQmode:
      if (pattern186 (x6, E_V2HQmode) != 0)
        return -1;
      return 4;

    case E_QQmode:
      if (pattern186 (x6, E_QQmode) != 0)
        return -1;
      return 5;

    case E_HQmode:
      if (pattern186 (x6, E_HQmode) != 0)
        return -1;
      return 6;

    case E_V2HAmode:
      if (pattern186 (x6, E_V2HAmode) != 0)
        return -1;
      return 7;

    case E_HAmode:
      if (pattern186 (x6, E_HAmode) != 0)
        return -1;
      return 8;

    case E_SQmode:
      if (pattern186 (x6, E_SQmode) != 0)
        return -1;
      return 9;

    case E_SAmode:
      if (pattern186 (x6, E_SAmode) != 0)
        return -1;
      return 10;

    default:
      return -1;
    }
}

static int
pattern188 (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 pattern185 (x6, E_V8QImode); /* [-1, 0] */

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

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

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

    case E_V2UHQmode:
      if (pattern186 (x6, E_V2UHQmode) != 0)
        return -1;
      return 4;

    case E_UQQmode:
      if (pattern186 (x6, E_UQQmode) != 0)
        return -1;
      return 5;

    case E_UHQmode:
      if (pattern186 (x6, E_UHQmode) != 0)
        return -1;
      return 6;

    case E_V2UHAmode:
      if (pattern186 (x6, E_V2UHAmode) != 0)
        return -1;
      return 7;

    case E_UHAmode:
      if (pattern186 (x6, E_UHAmode) != 0)
        return -1;
      return 8;

    default:
      return -1;
    }
}

static int
pattern189 (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 pattern185 (x6, E_V2SImode); /* [-1, 0] */

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

    case E_V8QImode:
      if (pattern185 (x6, E_V8QImode) != 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, 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
pattern191 (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
pattern192 (rtx x1, rtx_code 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 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != REG
      || REGNO (x3) != 100
      || GET_MODE (x3) != i3)
    return -1;
  x4 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x4) != SET)
    return -1;
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != i1
      || GET_MODE (x5) != i2)
    return -1;
  return 0;
}

static int
pattern193 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != UNSPEC
      || XVECLEN (x1, 0) != 1
      || XINT (x1, 1) != 38
      || 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
pattern194 (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_DImode)
      || GET_MODE (x1) != E_DImode)
    return -1;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  operands[2] = x3;
  if (!s_register_operand (operands[2], E_SImode))
    return -1;
  x4 = XEXP (x1, 1);
  operands[1] = x4;
  if (!s_register_operand (operands[1], E_DImode))
    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 = 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);
  return pattern194 (x5); /* [-1, 0] */
}

static int
pattern196 (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);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) != E_DImode)
    return -1;
  x5 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x5) != CLOBBER
      || pattern195 (x1) != 0)
    return -1;
  return 0;
}

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

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

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

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

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

    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
      || !s_register_operand (operands[1], i1)
      || !imm_lshift_or_reg_neon (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];
  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
pattern204 (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 (pattern203 (x1, E_V4HImode, E_V4SImode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern205 (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
pattern206 (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
pattern207 (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 (pattern206 (x1, E_SFmode) != 0)
        return -1;
      return 3;

    case E_DFmode:
      if (pattern206 (x1, E_DFmode) != 0)
        return -1;
      return 4;

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

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

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

    case E_V2SFmode:
      if (pattern3 (x1, E_V2SFmode) != 0)
        return -1;
      return 8;

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

    default:
      return -1;
    }
}

static int
pattern208 (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
pattern209 (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
pattern210 (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
pattern211 (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
pattern212 (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
pattern213 (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
pattern214 (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, 0);
  if (GET_MODE (x3) != E_CC_NCVmode)
    return -1;
  x4 = XEXP (x2, 1);
  if (GET_MODE (x4) != E_CC_NCVmode)
    return -1;
  x5 = XEXP (x4, 0);
  operands[0] = x5;
  if (!s_register_operand (operands[0], E_DImode))
    return -1;
  x6 = XEXP (x4, 1);
  operands[1] = x6;
  if (!arm_di_operand (operands[1], E_DImode))
    return -1;
  x7 = XVECEXP (x1, 0, 1);
  x8 = XEXP (x7, 0);
  operands[2] = x8;
  if (!scratch_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern215 (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
pattern216 (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) != 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)
      || !s_register_operand (operands[1], E_SImode))
    return -1;
  x7 = XVECEXP (x3, 0, 1);
  operands[2] = x7;
  if (!immediate_operand (operands[2], E_SImode))
    return -1;
  x8 = XEXP (x4, 0);
  operands[3] = x8;
  if (!s_register_operand (operands[3], E_HFmode))
    return -1;
  x9 = XEXP (x6, 0);
  if (!rtx_equal_p (x9, operands[0]))
    return -1;
  return 0;
}

static int
pattern217 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  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
pattern218 (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;
  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, 1);
  operands[3] = x6;
  x7 = XEXP (x2, 0);
  operands[2] = x7;
  x8 = XVECEXP (x3, 0, 0);
  if (!rtx_equal_p (x8, operands[1]))
    return -1;
  x9 = XVECEXP (x3, 0, 1);
  if (!rtx_equal_p (x9, operands[3]))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_V8QImode:
      return pattern217 (x1, E_V8QImode); /* [-1, 0] */

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

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

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

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

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

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

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

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

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

    default:
      return -1;
    }
}

static int
pattern219 (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
pattern220 (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
pattern221 (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 (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  return 0;
}

static int
pattern222 (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_DImode)
      || GET_MODE (x1) != E_DImode)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != E_DImode)
    return -1;
  x3 = XEXP (x2, 0);
  if (!s_register_operand (x3, E_DImode))
    return -1;
  x4 = XEXP (x1, 1);
  if (!s_register_operand (x4, E_DImode))
    return -1;
  return 0;
}

static int
pattern223 (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
pattern224 (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
pattern225 (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
pattern226 (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;
  if (!immediate_operand (operands[4], E_SImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HImode:
      return pattern225 (x1, E_V4HImode, E_V8HImode); /* [-1, 0] */

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

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

    case E_V2SImode:
      if (pattern91 (x1, E_V2SImode) != 0)
        return -1;
      return 3;

    default:
      return -1;
    }
}

static int
pattern227 (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;
  if (!immediate_operand (operands[4], E_SImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_V4HImode:
      return pattern91 (x1, E_V4HImode); /* [-1, 0] */

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

    case E_V2SFmode:
      if (pattern91 (x1, E_V2SFmode) != 0)
        return -1;
      return 2;

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

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

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

    default:
      return -1;
    }
}

static int
pattern228 (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;
  if (!immediate_operand (operands[4], E_SImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_V4SImode:
      return pattern93 (x1, E_V4HImode, E_V4SImode); /* [-1, 0] */

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

    default:
      return -1;
    }
}

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

static int
pattern230 (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
pattern231 (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);
  x5 = XEXP (x4, 0);
  if (GET_MODE (x5) != E_DImode)
    return -1;
  x6 = XEXP (x1, 0);
  operands[3] = x6;
  x7 = XEXP (x6, 0);
  operands[4] = x7;
  if (!s_register_operand (operands[0], E_DImode)
      || GET_MODE (x3) != E_DImode
      || GET_MODE (x4) != E_DImode)
    return -1;
  x8 = XEXP (x5, 0);
  operands[2] = x8;
  if (!s_register_operand (operands[2], E_SImode))
    return -1;
  x9 = XEXP (x3, 1);
  operands[1] = x9;
  if (!s_register_operand (operands[1], E_DImode))
    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, x8, x9;
  rtx x10, x11;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 0);
  switch (GET_CODE (x5))
    {
    case REG:
    case SUBREG:
      x6 = XEXP (x1, 0);
      operands[3] = x6;
      x7 = XEXP (x6, 0);
      operands[4] = x7;
      x8 = XEXP (x3, 1);
      switch (GET_CODE (x8))
        {
        case REG:
        case SUBREG:
          switch (GET_MODE (operands[0]))
            {
            case E_DImode:
              if (!s_register_operand (operands[0], E_DImode)
                  || GET_MODE (x3) != E_DImode
                  || GET_MODE (x4) != E_DImode)
                return -1;
              operands[1] = x5;
              if (!s_register_operand (operands[1], E_DImode))
                return -1;
              operands[2] = x8;
              if (!s_register_operand (operands[2], E_DImode))
                return -1;
              return 0;

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

            default:
              return -1;
            }

        case ZERO_EXTEND:
          if (GET_MODE (x8) != E_DImode
              || !s_register_operand (operands[0], E_DImode)
              || GET_MODE (x3) != E_DImode
              || GET_MODE (x4) != E_DImode)
            return -1;
          operands[2] = x5;
          if (!s_register_operand (operands[2], E_DImode))
            return -1;
          x9 = XEXP (x8, 0);
          operands[1] = x9;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          return 2;

        default:
          return -1;
        }

    case ZERO_EXTEND:
      if (pattern231 (x1) != 0)
        return -1;
      return 3;

    case SIGN_EXTEND:
      if (pattern231 (x1) != 0)
        return -1;
      return 4;

    case MULT:
    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      operands[4] = x5;
      if (!shift_operator (operands[4], E_SImode))
        return -1;
      x6 = XEXP (x1, 0);
      operands[5] = x6;
      x7 = XEXP (x6, 0);
      operands[6] = x7;
      if (!s_register_operand (operands[0], E_SImode)
          || GET_MODE (x3) != E_SImode
          || GET_MODE (x4) != E_SImode)
        return -1;
      x10 = XEXP (x5, 0);
      operands[2] = x10;
      if (!s_register_operand (operands[2], E_SImode))
        return -1;
      x11 = XEXP (x5, 1);
      operands[3] = x11;
      return 5;

    default:
      return -1;
    }
}

static int
pattern233 (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, 1);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) != E_SImode)
    return -1;
  x5 = XEXP (x3, 1);
  if (GET_CODE (x5) != NOT
      || GET_MODE (x5) != 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 (x3) != 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 (!arm_rhs_operand (operands[2], E_SImode))
    return -1;
  x10 = XEXP (x5, 0);
  operands[3] = x10;
  if (!arm_rhs_operand (operands[3], E_SImode))
    return -1;
  return 0;
}

static int
pattern234 (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
pattern235 (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_DImode)
    return -1;
  x5 = XEXP (x1, 0);
  operands[3] = x5;
  x6 = XEXP (x5, 0);
  operands[4] = x6;
  if (!s_register_operand (operands[0], E_DImode)
      || GET_MODE (x3) != E_DImode)
    return -1;
  x7 = XEXP (x4, 0);
  operands[2] = x7;
  if (!s_register_operand (operands[2], E_SImode))
    return -1;
  x8 = XEXP (x3, 1);
  operands[1] = x8;
  if (!s_register_operand (operands[1], E_DImode))
    return -1;
  return 0;
}

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

    case E_DImode:
      if (pattern185 (x1, E_DImode) != 0)
        return -1;
      return 1;

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

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

    case E_V8QImode:
      if (pattern185 (x1, E_V8QImode) != 0)
        return -1;
      return 4;

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

static int
pattern239 (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);
  x4 = XEXP (x3, 0);
  if (XVECLEN (x4, 0) != 1
      || XINT (x4, 1) != 25
      || GET_MODE (x4) != E_HImode)
    return -1;
  x5 = XEXP (x1, 0);
  operands[2] = x5;
  x6 = XEXP (x5, 0);
  operands[3] = x6;
  if (!s_register_operand (operands[0], E_SImode)
      || GET_MODE (x3) != E_SImode)
    return -1;
  x7 = XVECEXP (x4, 0, 0);
  operands[1] = x7;
  if (!memory_operand (operands[1], E_HImode))
    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, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) != PARALLEL
      || XVECLEN (x5, 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 (x3) != E_SImode)
    return -1;
  x8 = XEXP (x4, 0);
  operands[1] = x8;
  x9 = XVECEXP (x5, 0, 0);
  operands[2] = x9;
  if (!immediate_operand (operands[2], E_SImode))
    return -1;
  switch (GET_MODE (x4))
    {
    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
pattern241 (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
pattern242 (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
pattern243 (rtx x1, rtx_code i1, rtx_code i2)
{
  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) != E_SImode)
    return -1;
  return 0;
}

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

static int
pattern245 (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_DImode)
    return -1;
  x4 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x4) != CLOBBER)
    return -1;
  x5 = XVECEXP (x1, 0, 4);
  x6 = XEXP (x5, 0);
  if (GET_CODE (x6) != REG
      || REGNO (x6) != 100
      || GET_MODE (x6) != E_CCmode
      || pattern28 (x1) != 0)
    return -1;
  return 0;
}

static int
pattern246 (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, 1);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    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)
    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 (x3, 0);
  x9 = XEXP (x8, 0);
  operands[1] = x9;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x10 = XEXP (x8, 1);
  operands[2] = x10;
  if (!const_int_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern247 (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
pattern248 (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 pattern247 (x1, i1); /* [-1, 0] */
}

static int
pattern249 (rtx x1, machine_mode i1, rtx_code i2)
{
  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) != 100
      || GET_MODE (x3) != i1)
    return -1;
  x4 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x4) != i2)
    return -1;
  return 0;
}

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);
  x3 = XEXP (x2, 1);
  if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x4 = XEXP (x1, 0);
  operands[0] = x4;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x5 = XEXP (x2, 0);
  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 (!const_int_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern251 (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);
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != REG
      || REGNO (x4) != 100
      || GET_MODE (x4) != i1)
    return -1;
  x5 = XEXP (x3, 1);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x6 = XEXP (x2, 1);
  operands[1] = x6;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x7 = XEXP (x1, 1);
  operands[2] = x7;
  if (!arm_rhs_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern252 (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[2] = x2;
  if (!shift_operator (operands[2], E_SImode))
    return -1;
  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 (!reg_or_int_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
pattern253 (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
      || !s_register_operand (operands[2], i1))
    return -1;
  x3 = XEXP (x2, 1);
  operands[3] = x3;
  if (!s_register_operand (operands[3], i1))
    return -1;
  x4 = XEXP (x1, 1);
  operands[1] = x4;
  if (!s_register_operand (operands[1], i1))
    return -1;
  return 0;
}

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

static int
pattern255 (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
pattern256 (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
pattern257 (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
pattern258 (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
pattern259 (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 pattern258 (x1, E_QImode); /* [-1, 0] */

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

    case E_SImode:
      if (pattern258 (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
pattern260 (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
pattern261 (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
pattern262 (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
pattern263 (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
pattern264 (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
pattern265 (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
pattern266 (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
pattern267 (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
pattern268 (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
pattern269 (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
pattern270 (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
pattern271 (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
pattern272 ()
{
  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
pattern273 (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
pattern274 (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
      || pattern273 (x1) != 0)
    return -1;
  return 0;
}

static int
pattern275 (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
pattern276 (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)
      || GET_MODE (x1) != E_DImode)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != E_DImode
      || !s_register_operand (operands[1], E_SImode))
    return -1;
  x3 = XEXP (x1, 1);
  if (GET_MODE (x3) != E_DImode
      || !s_register_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern277 (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
      || pattern179 (x1, i1, i2) != 0)
    return -1;
  return 0;
}

static int
pattern278 (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);
  operands[1] = x2;
  if (!s_register_operand (operands[1], i1))
    return -1;
  x3 = XEXP (x1, 1);
  if (GET_MODE (x3) != i1
      || !s_register_operand (operands[2], i1))
    return -1;
  x4 = XEXP (x3, 1);
  operands[3] = x4;
  if (!s_register_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern279 (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
pattern280 (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
pattern281 (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
pattern282 (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
pattern283 (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
pattern284 (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) != E_HFmode
      || !s_register_operand (operands[1], E_V4HFmode))
    return -1;
  return 0;
}

static int
pattern285 (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
pattern286 (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_V4HImode:
      if (!register_operand (operands[0], E_V4HImode)
          || GET_MODE (x1) != E_V4HImode
          || !register_operand (operands[1], E_V4HImode))
        return -1;
      return 0;

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

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

    default:
      return -1;
    }
}

static int
pattern287 (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 pattern185 (x3, E_V2SImode); /* [-1, 0] */

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

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

    default:
      return -1;
    }
}

static int
pattern288 (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
pattern289 (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
pattern290 (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
pattern291 (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
pattern292 (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
pattern293 (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
pattern294 (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
pattern295 (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
pattern296 (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
pattern297 (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
pattern298 (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
pattern299 (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
pattern300 (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
pattern301 (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
pattern302 (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
pattern303 (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 (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  return 0;
}

static int
pattern304 (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
pattern305 (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
pattern306 (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
pattern307 (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
pattern308 (rtx x1)
{
  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_DImode)
      || GET_MODE (x1) != E_DImode)
    return -1;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  switch (GET_CODE (x3))
    {
    case REG:
    case SUBREG:
      if (!s_register_operand (x3, E_DImode))
        return -1;
      x4 = XEXP (x1, 1);
      switch (GET_CODE (x4))
        {
        case REG:
        case SUBREG:
          operands[2] = x4;
          if (!s_register_operand (operands[2], E_DImode))
            return -1;
          operands[1] = x3;
          return 0;

        case ZERO_EXTEND:
          if (GET_MODE (x4) != E_DImode)
            return -1;
          operands[2] = x3;
          x5 = XEXP (x4, 0);
          operands[1] = x5;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          return 1;

        default:
          return -1;
        }

    case ZERO_EXTEND:
      if (GET_MODE (x3) != E_DImode)
        return -1;
      x6 = XEXP (x3, 0);
      operands[2] = x6;
      if (!s_register_operand (operands[2], E_SImode))
        return -1;
      x4 = XEXP (x1, 1);
      operands[1] = x4;
      if (!s_register_operand (operands[1], E_DImode))
        return -1;
      return 2;

    case SIGN_EXTEND:
      if (GET_MODE (x3) != E_DImode)
        return -1;
      x6 = XEXP (x3, 0);
      operands[2] = x6;
      if (!s_register_operand (operands[2], E_SImode))
        return -1;
      x4 = XEXP (x1, 1);
      operands[1] = x4;
      if (!s_register_operand (operands[1], E_DImode))
        return -1;
      return 3;

    default:
      return -1;
    }
}

static int
pattern309 (rtx x1, machine_mode i1, rtx_code i2)
{
  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) != i2)
    return -1;
  x6 = XEXP (x3, 1);
  if (GET_CODE (x6) != i2)
    return -1;
  x7 = XEXP (x6, 0);
  if (GET_CODE (x7) != PLUS)
    return -1;
  x8 = XEXP (x2, 0);
  if (GET_MODE (x8) != i1
      || GET_MODE (x3) != i1)
    return -1;
  x9 = XEXP (x4, 0);
  x10 = XEXP (x9, 0);
  operands[1] = x10;
  x11 = XEXP (x5, 0);
  operands[2] = x11;
  x12 = XEXP (x7, 0);
  if (!rtx_equal_p (x12, operands[1]))
    return -1;
  x13 = XEXP (x7, 1);
  if (!rtx_equal_p (x13, operands[2]))
    return -1;
  x14 = XVECEXP (x1, 0, 1);
  x15 = XEXP (x14, 1);
  x16 = XEXP (x15, 0);
  if (!rtx_equal_p (x16, operands[1]))
    return -1;
  x17 = XEXP (x15, 1);
  if (!rtx_equal_p (x17, operands[2]))
    return -1;
  switch (GET_MODE (x4))
    {
    case E_TImode:
      if (GET_MODE (x9) != E_TImode
          || !register_operand (operands[1], E_DImode)
          || GET_MODE (x5) != E_TImode
          || !register_operand (operands[2], E_DImode)
          || GET_MODE (x6) != E_TImode
          || GET_MODE (x7) != E_DImode
          || !register_operand (operands[0], E_DImode)
          || GET_MODE (x15) != E_DImode)
        return -1;
      return 0;

    case E_DImode:
      if (GET_MODE (x9) != E_DImode
          || !register_operand (operands[1], E_SImode)
          || GET_MODE (x5) != E_DImode
          || !register_operand (operands[2], E_SImode)
          || GET_MODE (x6) != E_DImode
          || GET_MODE (x7) != E_SImode
          || !register_operand (operands[0], E_SImode)
          || GET_MODE (x15) != E_SImode)
        return -1;
      return 1;

    default:
      return -1;
    }
}

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

    case ZERO_EXTEND:
      if (GET_MODE (x4) != E_DImode)
        return -1;
      operands[1] = x3;
      x5 = XEXP (x4, 0);
      operands[2] = x5;
      if (!s_register_operand (operands[2], E_SImode))
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern311 (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
pattern312 (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
      || pattern311 (x1) != 0)
    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 (!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
pattern314 (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
pattern315 (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
pattern316 (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;
  return 0;
}

static int
pattern317 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (!register_operand (operands[3], E_V8QImode)
      || !immediate_operand (operands[4], E_SImode))
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_V2SImode:
      return pattern316 (x1, E_V8QImode, E_V2SImode); /* [-1, 0] */

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

    default:
      return -1;
    }
}

static int
pattern318 (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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 0);
  if (GET_MODE (x5) != E_SImode)
    return -1;
  x6 = XEXP (x5, 0);
  if (GET_CODE (x6) != REG
      || REGNO (x6) != 100
      || GET_MODE (x6) != i1)
    return -1;
  x7 = XEXP (x5, 1);
  if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x8 = XEXP (x1, 0);
  operands[3] = x8;
  x9 = XEXP (x8, 0);
  operands[4] = x9;
  x10 = XEXP (x4, 1);
  operands[1] = x10;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x11 = XEXP (x3, 1);
  operands[2] = x11;
  if (!arm_rhs_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern319 (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, 1);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 0);
  operands[2] = x5;
  if (!shift_operator (operands[2], E_SImode))
    return -1;
  x6 = XEXP (x1, 0);
  operands[5] = x6;
  x7 = XEXP (x6, 0);
  operands[6] = x7;
  x8 = XEXP (x5, 0);
  operands[3] = x8;
  if (!s_register_operand (operands[3], E_SImode))
    return -1;
  x9 = XEXP (x5, 1);
  operands[4] = x9;
  if (!reg_or_int_operand (operands[4], E_SImode))
    return -1;
  x10 = XEXP (x4, 1);
  operands[1] = x10;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  return 0;
}

static int
pattern320 (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
pattern321 (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
pattern322 (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
          || !mem_noofs_operand (operands[1], E_SImode))
        return -1;
      return 0;

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

    default:
      return -1;
    }
}

static int
pattern323 (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
pattern324 (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 pattern323 (x1, E_V4HImode, E_V4QImode, E_V8QImode); /* [-1, 0] */

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

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

    default:
      return -1;
    }
}

static int
pattern325 (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
pattern326 (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
pattern327 (rtx x1)
{
  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_DImode
      || !s_register_operand (operands[0], E_DImode)
      || GET_MODE (x1) != E_DImode
      || !s_register_operand (operands[1], E_DImode))
    return -1;
  x3 = XEXP (x2, 0);
  operands[2] = x3;
  if (!s_register_operand (operands[2], E_SImode))
    return -1;
  return 0;
}

static int
pattern328 (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
pattern329 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  operands[4] = x2;
  if (!minmax_operator (operands[4], E_SImode)
      || pattern328 (x1) != 0)
    return -1;
  return 0;
}

static int
pattern330 (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
pattern331 (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 (!s_register_operand (operands[0], E_DImode))
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], E_DImode))
    return -1;
  x5 = XEXP (x3, 1);
  operands[2] = x5;
  if (!general_operand (operands[2], E_SImode))
    return -1;
  x6 = XVECEXP (x1, 0, 1);
  x7 = XEXP (x6, 0);
  operands[3] = x7;
  if (!scratch_operand (operands[3], E_SImode))
    return -1;
  x8 = XVECEXP (x1, 0, 2);
  x9 = XEXP (x8, 0);
  operands[4] = x9;
  if (!scratch_operand (operands[4], E_SImode))
    return -1;
  x10 = XVECEXP (x1, 0, 3);
  x11 = XEXP (x10, 0);
  operands[5] = x11;
  if (!scratch_operand (operands[5], E_DImode))
    return -1;
  return 0;
}

static int
pattern332 (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
pattern333 (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
pattern334 (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
pattern335 (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
pattern336 (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
      || pattern335 (x1, E_V2SImode, E_V2DImode) != 0)
    return -1;
  return 0;
}

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

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

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

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

static int
pattern344 (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
pattern345 (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
pattern346 (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 pattern345 (x4, i1, i2, i3); /* [-1, 0] */
}

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

static int
pattern349 (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
pattern350 (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
pattern351 (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
pattern352 (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
      || pattern162 (x3) != 0)
    return -1;
  return 0;
}

static int
pattern353 (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
pattern354 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x2 = XEXP (x1, 0);
  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;
  x5 = XEXP (x1, 1);
  operands[1] = x5;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  return 0;
}

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

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

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

static int
pattern358 (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
pattern359 (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
pattern360 (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 pattern345 (x5, i1, i2, i3); /* [-1, 0] */
}

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

static int
pattern362 (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
      || !s_register_operand (operands[2], i1))
    return -1;
  x3 = XEXP (x2, 1);
  operands[3] = x3;
  if (!s_register_operand (operands[3], i1))
    return -1;
  x4 = XEXP (x1, 1);
  operands[1] = x4;
  if (!s_register_operand (operands[1], i1))
    return -1;
  return 0;
}

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

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

static int
pattern368 (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
pattern369 (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
pattern370 (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
pattern371 (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
pattern372 (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
pattern373 (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
pattern374 (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);
  operands[1] = x2;
  if (!s_register_operand (operands[1], i1))
    return -1;
  x3 = XEXP (x1, 1);
  if (GET_MODE (x3) != i1
      || !s_register_operand (operands[2], i1))
    return -1;
  x4 = XEXP (x3, 1);
  operands[3] = x4;
  if (!s_register_operand (operands[3], i1))
    return -1;
  return 0;
}

static int
pattern375 (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
pattern376 (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], i2)
      || GET_MODE (x1) != i2)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i2
      || !s_register_operand (operands[1], i1))
    return -1;
  x3 = XEXP (x1, 1);
  if (GET_MODE (x3) != i2
      || !s_register_operand (operands[2], i1))
    return -1;
  return 0;
}

static int
pattern377 (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
pattern378 (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
pattern379 (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
pattern380 (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
pattern381 (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
pattern382 (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
pattern383 (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 pattern382 (x1, E_QImode); /* [-1, 0] */

    case E_HImode:
      if (pattern382 (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
pattern384 (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
pattern385 (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
pattern386 (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
pattern387 (rtx x1, machine_mode i1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (!s_register_operand (operands[0], i1)
      || GET_MODE (x1) != i1)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != i1
      || !s_register_operand (operands[2], i1)
      || !s_register_operand (operands[3], i1)
      || !s_register_operand (operands[1], i1))
    return -1;
  return 0;
}

static int
pattern388 (rtx x1, 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
pattern389 (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
pattern390 (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
      || pattern389 (x1) != 0)
    return -1;
  return 0;
}

static int
pattern391 (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
pattern392 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (GET_CODE (x1) != LTU
      || GET_MODE (x1) != E_SImode)
    return -1;
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) != REG
      || REGNO (x2) != 100
      || GET_MODE (x2) != E_CC_Cmode)
    return -1;
  x3 = XEXP (x1, 1);
  if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
      || !reg_or_int_operand (operands[1], E_SImode))
    return -1;
  return 0;
}

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

static int
pattern394 (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
pattern395 (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
pattern396 (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
pattern397 (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
pattern398 (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
pattern399 (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
pattern400 (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
pattern401 (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
pattern402 (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
pattern403 (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
pattern404 (rtx x1)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  if (GET_MODE (x1) != E_SImode)
    return -1;
  switch (GET_CODE (x1))
    {
    case LTU:
      return pattern303 (x1, E_CC_Cmode); /* [-1, 0] */

    case GEU:
      if (pattern303 (x1, E_CCmode) != 0)
        return -1;
      return 1;

    default:
      return -1;
    }
}

static int
pattern405 (rtx x1, machine_mode i1, rtx_code i2)
{
  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) != i2)
    return -1;
  x6 = XEXP (x3, 1);
  if (GET_CODE (x6) != i2)
    return -1;
  x7 = XEXP (x6, 0);
  if (GET_CODE (x7) != PLUS
      || GET_MODE (x7) != E_DImode)
    return -1;
  x8 = XEXP (x2, 0);
  if (GET_MODE (x8) != i1
      || GET_MODE (x3) != i1)
    return -1;
  x9 = XEXP (x4, 0);
  x10 = XEXP (x9, 0);
  operands[1] = x10;
  if (!register_operand (operands[1], E_DImode))
    return -1;
  x11 = XEXP (x5, 0);
  operands[2] = x11;
  if (!register_operand (operands[2], E_DImode))
    return -1;
  x12 = XEXP (x7, 0);
  if (!rtx_equal_p (x12, operands[1]))
    return -1;
  x13 = XEXP (x7, 1);
  if (!rtx_equal_p (x13, operands[2]))
    return -1;
  x14 = XVECEXP (x1, 0, 1);
  x15 = XEXP (x14, 1);
  x16 = XEXP (x15, 0);
  if (!rtx_equal_p (x16, operands[1]))
    return -1;
  x17 = XEXP (x15, 1);
  if (!rtx_equal_p (x17, operands[2]))
    return -1;
  return 0;
}

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

static int
pattern407 (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
pattern408 (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
pattern409 (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
pattern410 (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
pattern411 (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
pattern412 (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
pattern413 (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
      || pattern412 (x1, E_V2SImode, E_V2DImode) != 0)
    return -1;
  return 0;
}

static int
pattern414 (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
pattern415 (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
pattern416 (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 (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  return 0;
}

static int
pattern417 (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
pattern418 (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
pattern419 (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
pattern420 (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
pattern421 (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
pattern422 (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
pattern423 (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
pattern424 (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
pattern425 (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
pattern426 (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
pattern427 (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 pattern425 (x1, E_QImode); /* [-1, 0] */

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

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

    default:
      return -1;
    }
}

static int
pattern428 (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
pattern429 (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
pattern430 (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 pattern425 (x1, E_QImode); /* [-1, 0] */

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

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

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

    default:
      return -1;
    }
}

static int
pattern431 (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
pattern432 (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
pattern433 (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
pattern434 (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
pattern435 (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
pattern436 (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
pattern437 (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
pattern438 (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
pattern439 (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
pattern440 (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
pattern441 (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
pattern442 (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
pattern443 (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
pattern444 (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
pattern445 (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
pattern446 (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
pattern447 (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
pattern448 (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
pattern449 (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
pattern450 (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
pattern451 (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
pattern452 (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
pattern453 (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
pattern454 (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
pattern455 (rtx x1, machine_mode i1, rtx_code i2)
{
  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);
  x5 = XEXP (x4, 0);
  x6 = XEXP (x5, 1);
  if (GET_CODE (x6) != i2)
    return -1;
  x7 = XEXP (x3, 1);
  x8 = XEXP (x7, 0);
  if (GET_CODE (x8) != i2)
    return -1;
  x9 = XEXP (x8, 0);
  if (GET_CODE (x9) != PLUS
      || GET_MODE (x9) != E_SImode)
    return -1;
  x10 = XEXP (x2, 0);
  if (GET_MODE (x10) != i1
      || GET_MODE (x3) != i1)
    return -1;
  x11 = XEXP (x5, 0);
  x12 = XEXP (x11, 0);
  operands[1] = x12;
  if (!register_operand (operands[1], E_SImode))
    return -1;
  x13 = XEXP (x6, 0);
  operands[2] = x13;
  if (!register_operand (operands[2], E_SImode))
    return -1;
  x14 = XEXP (x9, 0);
  if (!rtx_equal_p (x14, operands[1]))
    return -1;
  x15 = XEXP (x9, 1);
  if (!rtx_equal_p (x15, operands[2]))
    return -1;
  x16 = XVECEXP (x1, 0, 1);
  x17 = XEXP (x16, 1);
  x18 = XEXP (x17, 0);
  x19 = XEXP (x18, 0);
  if (!rtx_equal_p (x19, operands[1]))
    return -1;
  x20 = XEXP (x18, 1);
  if (!rtx_equal_p (x20, operands[2]))
    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, 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
pattern457 (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
pattern458 (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
pattern459 (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
pattern460 (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
pattern461 (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
pattern462 (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
pattern463 (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, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case PLUS:
      x5 = XEXP (x2, 0);
      if (GET_CODE (x5) != REG
          || REGNO (x5) != 100)
        return -1;
      x6 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x6) != SET)
        return -1;
      x7 = XEXP (x6, 1);
      if (GET_CODE (x7) != PLUS)
        return -1;
      x8 = XEXP (x6, 0);
      operands[0] = x8;
      x9 = XEXP (x4, 0);
      switch (GET_CODE (x9))
        {
        case SIGN_EXTEND:
          switch (pattern309 (x1, E_CC_Vmode, SIGN_EXTEND))
            {
            case 0:
              if (!
#line 662 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 5; /* adddi3_compareV */

            case 1:
              if (!
#line 705 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 6; /* addsi3_compareV */

            default:
              return -1;
            }

        case PLUS:
          if (GET_MODE (x9) != E_DImode)
            return -1;
          x10 = XEXP (x4, 1);
          if (GET_CODE (x10) != LTU
              || GET_MODE (x10) != E_DImode)
            return -1;
          x11 = XEXP (x10, 0);
          if (GET_CODE (x11) != REG
              || REGNO (x11) != 100
              || GET_MODE (x11) != E_CC_Cmode)
            return -1;
          x12 = XEXP (x10, 1);
          if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x13 = XEXP (x3, 1);
          if (GET_CODE (x13) != PLUS
              || GET_MODE (x13) != E_DImode)
            return -1;
          x14 = XEXP (x13, 1);
          if (GET_CODE (x14) != LTU
              || GET_MODE (x14) != E_DImode)
            return -1;
          x15 = XEXP (x14, 0);
          if (GET_CODE (x15) != REG
              || REGNO (x15) != 100
              || GET_MODE (x15) != E_CC_Cmode)
            return -1;
          x16 = XEXP (x14, 1);
          if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x17 = XEXP (x7, 0);
          if (GET_CODE (x17) != PLUS
              || GET_MODE (x17) != E_SImode)
            return -1;
          x18 = XEXP (x7, 1);
          if (pattern393 (x18) != 0
              || GET_MODE (x4) != E_DImode)
            return -1;
          x19 = XEXP (x9, 0);
          if (GET_MODE (x19) != E_DImode)
            return -1;
          x20 = XEXP (x9, 1);
          if (GET_MODE (x20) != E_DImode)
            return -1;
          x21 = XEXP (x13, 0);
          if (GET_MODE (x21) != E_DImode
              || !register_operand (operands[0], E_SImode)
              || GET_MODE (x7) != E_SImode)
            return -1;
          switch (GET_CODE (x19))
            {
            case SIGN_EXTEND:
              if (pattern455 (x1, E_CC_Vmode, SIGN_EXTEND) != 0
                  || !
#line 726 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 7; /* *addsi3_compareV_upper */

            case ZERO_EXTEND:
              if (pattern455 (x1, E_CC_Cmode, ZERO_EXTEND) != 0
                  || !
#line 790 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 9; /* *addsi3_compareC_upper */

            default:
              return -1;
            }

        case ZERO_EXTEND:
          switch (pattern309 (x1, E_CC_Cmode, ZERO_EXTEND))
            {
            case 0:
              if (!
#line 741 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 8; /* adddi3_compareC */

            case 1:
              if (!
#line 806 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 10; /* addsi3_compareC */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case ZERO_EXTRACT:
      if (GET_MODE (x4) != E_SImode)
        return -1;
      x22 = XEXP (x4, 2);
      if (GET_CODE (x22) != CONST_INT)
        return -1;
      operands[3] = x22;
      if (const_int_operand (operands[3], E_SImode)
          && pattern246 (x1) == 0
          && 
#line 2552 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 88; /* *ne_zeroextractsi */
      if (XWINT (x22, 0) != 0L
          || pattern246 (x1) != 0
          || !
#line 2590 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      return 89; /* *ne_zeroextractsi_shifted */

    case REG:
    case SUBREG:
      operands[1] = x4;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      x13 = XEXP (x3, 1);
      if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x6 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x6) != CLOBBER)
        return -1;
      x5 = XEXP (x2, 0);
      operands[0] = x5;
      if (!s_register_operand (operands[0], E_SImode)
          || GET_MODE (x3) != E_SImode)
        return -1;
      x8 = XEXP (x6, 0);
      operands[2] = x8;
      if (!s_register_operand (operands[2], E_SImode)
          || !
#line 1655 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 855; /* *cstoresi_ne0_thumb1_insn */

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != E_SImode)
    return -1;
  x4 = XEXP (x3, 1);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x5 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x5) != CLOBBER)
    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 (x5, 0);
  operands[2] = x8;
  if (!s_register_operand (operands[2], E_SImode)
      || !
#line 1642 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
    return -1;
  return 854; /* *cstoresi_eq0_thumb1_insn */
}

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, x11, x12;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x2) != SET)
    return -1;
  x3 = XVECEXP (x1, 0, 0);
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) != E_CCmode)
    return -1;
  x5 = XEXP (x3, 1);
  if (GET_MODE (x5) != E_CCmode)
    return -1;
  x6 = XEXP (x5, 0);
  operands[1] = x6;
  x7 = XEXP (x2, 0);
  operands[0] = x7;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x8 = XEXP (x2, 1);
  if (GET_MODE (x8) != E_SImode)
    return -1;
  switch (GET_CODE (x8))
    {
    case PLUS:
      if (!s_register_operand (operands[1], E_SImode)
          || !arm_addimm_operand (operands[2], E_SImode))
        return -1;
      x9 = XEXP (x8, 1);
      operands[3] = x9;
      if (!arm_addimm_operand (operands[3], E_SImode))
        return -1;
      x10 = XEXP (x8, 0);
      if (!rtx_equal_p (x10, operands[1])
          || !
#line 870 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (INTVAL (operands[2])
       == trunc_int_for_mode (-INTVAL (operands[3]), SImode))))
        return -1;
      return 14; /* cmpsi2_addneg */

    case MINUS:
      x10 = XEXP (x8, 0);
      if (GET_CODE (x10) != PLUS
          || GET_MODE (x10) != E_SImode)
        return -1;
      x9 = XEXP (x8, 1);
      if (pattern392 (x9) != 0
          || !const_int_I_operand (operands[2], E_SImode))
        return -1;
      x11 = XEXP (x10, 1);
      operands[3] = x11;
      if (!arm_neg_immediate_operand (operands[3], E_SImode))
        return -1;
      x12 = XEXP (x10, 0);
      if (!rtx_equal_p (x12, operands[1])
          || !
#line 1199 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (INTVAL (operands[2])
       == trunc_int_for_mode (-INTVAL (operands[3]), SImode))))
        return -1;
      return 33; /* *subsi3_carryin_compare_const */

    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, x11;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 1);
  operands[2] = x4;
  res = recog_3 (x1, insn, pnum_clobbers);
  if (res >= 0)
    return res;
  if (XWINT (x4, 0) != 0L)
    return -1;
  x5 = XVECEXP (x1, 0, 1);
  switch (GET_CODE (x5))
    {
    case SET:
      x6 = XEXP (x2, 0);
      if (GET_MODE (x6) != E_CCmode
          || GET_MODE (x3) != E_CCmode)
        return -1;
      x7 = XEXP (x3, 0);
      operands[1] = x7;
      x8 = XEXP (x5, 0);
      operands[0] = x8;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x9 = XEXP (x5, 1);
      switch (GET_CODE (x9))
        {
        case MINUS:
          if (GET_MODE (x9) != E_SImode)
            return -1;
          x10 = XEXP (x9, 1);
          if (pattern392 (x10) != 0)
            return -1;
          x11 = XEXP (x9, 0);
          if (!rtx_equal_p (x11, operands[1])
              || !
#line 1214 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 34; /* *subsi3_carryin_compare_const0 */

        case REG:
        case SUBREG:
          if (!rtx_equal_p (x9, operands[1])
              || !s_register_operand (operands[1], E_SImode)
              || !
#line 6359 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 188; /* *movsi_compare0 */

        default:
          return -1;
        }

    case CLOBBER:
      x6 = XEXP (x2, 0);
      if (GET_MODE (x6) != E_CC_Zmode
          || GET_MODE (x3) != E_CC_Zmode)
        return -1;
      x7 = XEXP (x3, 0);
      operands[0] = x7;
      if (!s_register_operand (operands[0], E_DImode))
        return -1;
      x8 = XEXP (x5, 0);
      operands[1] = x8;
      if (!scratch_operand (operands[1], E_SImode))
        return -1;
      if (
#line 7514 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return 201; /* *arm_cmpdi_zero */
      if (!
#line 1610 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 853; /* *thumb_cmpdi_zero */

    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;
  rtx x10, x11, x12, x13;
  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);
  if (GET_CODE (x5) != SET)
    return -1;
  x6 = XEXP (x5, 1);
  if (GET_CODE (x6) != MINUS)
    return -1;
  x7 = XEXP (x2, 0);
  if (GET_MODE (x7) != E_CCmode
      || GET_MODE (x3) != E_CCmode)
    return -1;
  x8 = XEXP (x3, 0);
  operands[1] = x8;
  x9 = XEXP (x5, 0);
  operands[0] = x9;
  x10 = XEXP (x6, 0);
  switch (GET_CODE (x10))
    {
    case REG:
    case SUBREG:
      if (!rtx_equal_p (x10, operands[1]))
        return -1;
      x11 = XEXP (x6, 1);
      if (!rtx_equal_p (x11, operands[2]))
        return -1;
      switch (GET_MODE (operands[1]))
        {
        case E_DImode:
          if (pattern406 (x6, E_DImode) != 0
              || !
#line 1104 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 27; /* subdi3_compare1 */

        case E_SImode:
          if (pattern406 (x6, E_SImode) != 0
              || !
#line 1134 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 28; /* subsi3_compare1 */

        default:
          return -1;
        }

    case MINUS:
      if (GET_MODE (x10) != E_SImode)
        return -1;
      x11 = XEXP (x6, 1);
      if (pattern393 (x11) != 0
          || !s_register_operand (operands[1], E_SImode)
          || !s_register_operand (operands[2], E_SImode)
          || !s_register_operand (operands[0], E_SImode)
          || GET_MODE (x6) != E_SImode)
        return -1;
      x12 = XEXP (x10, 0);
      if (!rtx_equal_p (x12, operands[1]))
        return -1;
      x13 = XEXP (x10, 1);
      if (!rtx_equal_p (x13, operands[2])
          || !
#line 1185 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 32; /* *subsi3_carryin_compare */

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 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) != E_CCmode)
    return -1;
  x6 = XEXP (x4, 1);
  if (GET_MODE (x6) != E_CCmode)
    return -1;
  x7 = XEXP (x6, 0);
  operands[1] = x7;
  if (!arm_rhs_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 (x2, 0);
  operands[0] = x9;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  x10 = XEXP (x3, 0);
  if (!rtx_equal_p (x10, operands[1]))
    return -1;
  x11 = XEXP (x3, 1);
  if (!rtx_equal_p (x11, operands[2])
      || !
#line 1555 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
    return -1;
  return 45; /* subsi3_compare */
}

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;
  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 (pattern353 (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 1637 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && !arm_arch6))
        return 48; /* *mulsi3_compare0 */
      if (!
#line 1651 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch6 && optimize_size))
        return -1;
      return 49; /* *mulsi3_compare0_v6 */

    case 1:
      if (
#line 1664 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && !arm_arch6))
        return 50; /* *mulsi_compare0_scratch */
      if (!
#line 1677 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch6 && optimize_size))
        return -1;
      return 51; /* *mulsi_compare0_scratch_v6 */

    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;
  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_7 (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 4255 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 132; /* *shiftsi3_compare0 */

        default:
          return -1;
        }

    case CLOBBER:
      x9 = XEXP (x7, 0);
      operands[0] = x9;
      if (!scratch_operand (operands[0], E_SImode)
          || !
#line 4269 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 133; /* *shiftsi3_compare0_scratch */

    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, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case PLUS:
      x5 = XEXP (x2, 0);
      if (GET_CODE (x5) != REG
          || REGNO (x5) != 100)
        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))
            return -1;
          x7 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x7) != SET)
            return -1;
          x8 = XEXP (x7, 1);
          if (GET_CODE (x8) != PLUS
              || GET_MODE (x8) != E_SImode)
            return -1;
          x9 = XEXP (x4, 1);
          operands[2] = x9;
          if (!arm_add_operand (operands[2], E_SImode))
            return -1;
          x10 = XEXP (x7, 0);
          operands[0] = x10;
          if (!s_register_operand (operands[0], E_SImode))
            return -1;
          x11 = XEXP (x8, 0);
          if (!rtx_equal_p (x11, operands[1]))
            return -1;
          x12 = XEXP (x8, 1);
          if (!rtx_equal_p (x12, operands[2]))
            return -1;
          x13 = XEXP (x3, 1);
          switch (GET_CODE (x13))
            {
            case CONST_INT:
              if (XWINT (x13, 0) == 0L
                  && GET_MODE (x5) == E_CC_NOOVmode
                  && GET_MODE (x3) == E_CC_NOOVmode)
                {
                  if (
#line 820 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
                    return 11; /* addsi3_compare0 */
                  if (
#line 1322 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
                    return 925; /* thumb2_addsi3_compare0 */
                }
              break;

            case REG:
            case SUBREG:
              if (rtx_equal_p (x13, operands[1])
                  && GET_MODE (x5) == E_CC_Cmode
                  && GET_MODE (x3) == E_CC_Cmode
                  && 
#line 938 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return 15; /* *addsi3_compare_op1 */
              break;

            default:
              break;
            }
          if (GET_MODE (x5) != E_CC_Cmode
              || GET_MODE (x3) != E_CC_Cmode
              || !rtx_equal_p (x13, operands[2])
              || !
#line 955 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 16; /* *addsi3_compare_op2 */

        case MULT:
          if (GET_MODE (x6) != E_SImode)
            return -1;
          x13 = XEXP (x3, 1);
          if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
              || GET_MODE (x5) != E_CC_NOOVmode
              || GET_MODE (x3) != E_CC_NOOVmode)
            return -1;
          x14 = XEXP (x6, 0);
          operands[2] = x14;
          if (!s_register_operand (operands[2], E_SImode))
            return -1;
          x15 = XEXP (x6, 1);
          operands[1] = x15;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x9 = XEXP (x4, 1);
          operands[3] = x9;
          if (!s_register_operand (operands[3], E_SImode))
            return -1;
          x7 = XVECEXP (x1, 0, 1);
          switch (pattern407 (x7, MULT, PLUS))
            {
            case 0:
              x8 = XEXP (x7, 1);
              x11 = XEXP (x8, 0);
              x16 = XEXP (x11, 1);
              if (!rtx_equal_p (x16, operands[1]))
                return -1;
              x12 = XEXP (x8, 1);
              if (!rtx_equal_p (x12, operands[3]))
                return -1;
              if (
#line 1720 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch6))
                return 54; /* *mulsi3addsi_compare0 */
              if (!
#line 1737 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch6 && optimize_size))
                return -1;
              return 55; /* *mulsi3addsi_compare0_v6 */

            case 1:
              if (
#line 1752 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && !arm_arch6))
                return 56; /* *mulsi3addsi_compare0_scratch */
              if (!
#line 1767 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch6 && optimize_size))
                return -1;
              return 57; /* *mulsi3addsi_compare0_scratch_v6 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case MINUS:
      x13 = XEXP (x3, 1);
      if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
          || pattern161 (x2) != 0)
        return -1;
      x6 = XEXP (x4, 0);
      operands[1] = x6;
      x9 = XEXP (x4, 1);
      operands[2] = x9;
      switch (GET_CODE (operands[2]))
        {
        case CONST_INT:
        case REG:
        case SUBREG:
          if (!arm_rhs_operand (operands[2], E_SImode))
            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
              || !arm_rhs_operand (operands[1], E_SImode))
            return -1;
          x10 = XEXP (x7, 0);
          operands[0] = x10;
          if (!s_register_operand (operands[0], E_SImode))
            return -1;
          x11 = XEXP (x8, 0);
          if (!rtx_equal_p (x11, operands[1]))
            return -1;
          x12 = XEXP (x8, 1);
          if (!rtx_equal_p (x12, operands[2])
              || !
#line 1540 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 44; /* subsi3_compare0 */

        case MULT:
        case ASHIFT:
        case ROTATE:
        case ASHIFTRT:
        case LSHIFTRT:
        case ROTATERT:
          if (!shift_operator (operands[2], E_SImode)
              || !s_register_operand (operands[1], E_SImode))
            return -1;
          x17 = XEXP (x9, 0);
          operands[3] = x17;
          if (!s_register_operand (operands[3], E_SImode))
            return -1;
          x18 = XEXP (x9, 1);
          operands[4] = x18;
          if (!shift_amount_operand (operands[4], E_SImode))
            return -1;
          x7 = XVECEXP (x1, 0, 1);
          switch (pattern353 (x7, MINUS))
            {
            case 0:
              x8 = XEXP (x7, 1);
              x12 = XEXP (x8, 1);
              switch (GET_CODE (x12))
                {
                case MULT:
                case ASHIFT:
                case ROTATE:
                case ASHIFTRT:
                case LSHIFTRT:
                case ROTATERT:
                  if (!rtx_equal_p (x12, operands[2]))
                    return -1;
                  x10 = XEXP (x7, 0);
                  operands[0] = x10;
                  if (!s_register_operand (operands[0], E_SImode))
                    return -1;
                  x11 = XEXP (x8, 0);
                  if (!rtx_equal_p (x11, operands[1])
                      || !
#line 9165 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                    return -1;
                  return 254; /* *sub_shiftsi_compare0 */

                default:
                  return -1;
                }

            case 1:
              if (!
#line 9181 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 255; /* *sub_shiftsi_compare0_scratch */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case AND:
      x13 = XEXP (x3, 1);
      if (x13 != 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)
              || pattern161 (x2) != 0)
            return -1;
          x9 = XEXP (x4, 1);
          if (!arm_not_operand (x9, E_SImode))
            return -1;
          x7 = XVECEXP (x1, 0, 1);
          switch (GET_CODE (x7))
            {
            case SET:
              x8 = XEXP (x7, 1);
              if (GET_CODE (x8) != AND
                  || GET_MODE (x8) != E_SImode)
                return -1;
              operands[1] = x6;
              operands[2] = x9;
              x10 = XEXP (x7, 0);
              operands[0] = x10;
              if (!s_register_operand (operands[0], E_SImode))
                return -1;
              x11 = XEXP (x8, 0);
              if (!rtx_equal_p (x11, operands[1]))
                return -1;
              x12 = XEXP (x8, 1);
              if (!rtx_equal_p (x12, operands[2])
                  || !
#line 2496 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 85; /* *andsi3_compare0 */

            case CLOBBER:
              operands[0] = x6;
              operands[1] = x9;
              x10 = XEXP (x7, 0);
              operands[2] = x10;
              if (!scratch_operand (operands[2], E_SImode)
                  || !
#line 2512 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 86; /* *andsi3_compare0_scratch */

            default:
              return -1;
            }

        case NOT:
          if (GET_MODE (x6) != E_SImode
              || pattern161 (x2) != 0)
            return -1;
          x9 = XEXP (x4, 1);
          if (!s_register_operand (x9, E_SImode))
            return -1;
          x14 = XEXP (x6, 0);
          switch (GET_CODE (x14))
            {
            case MULT:
            case ASHIFT:
            case ROTATE:
            case ASHIFTRT:
            case LSHIFTRT:
            case ROTATERT:
              operands[0] = x14;
              if (!shift_operator (operands[0], E_SImode))
                return -1;
              x19 = XEXP (x14, 0);
              operands[1] = x19;
              if (!s_register_operand (operands[1], E_SImode))
                return -1;
              x20 = XEXP (x14, 1);
              operands[2] = x20;
              if (!arm_rhs_operand (operands[2], E_SImode))
                return -1;
              operands[3] = x9;
              x7 = XVECEXP (x1, 0, 1);
              switch (GET_CODE (x7))
                {
                case CLOBBER:
                  x10 = XEXP (x7, 0);
                  operands[4] = x10;
                  if (!scratch_operand (operands[4], E_SImode)
                      || !
#line 3091 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM || (TARGET_THUMB2 && CONST_INT_P (operands[2]))))
                    return -1;
                  return 100; /* andsi_not_shiftsi_si_scc_no_reuse */

                case SET:
                  x8 = XEXP (x7, 1);
                  if (pattern18 (x8, NOT, AND) != 0)
                    return -1;
                  x11 = XEXP (x8, 0);
                  x21 = XEXP (x11, 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;
                      x10 = XEXP (x7, 0);
                      operands[4] = x10;
                      if (!s_register_operand (operands[4], E_SImode))
                        return -1;
                      x12 = XEXP (x8, 1);
                      if (!rtx_equal_p (x12, operands[3])
                          || !
#line 3116 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM || (TARGET_THUMB2 && CONST_INT_P (operands[2]))))
                        return -1;
                      return 101; /* andsi_not_shiftsi_si_scc */

                    default:
                      return -1;
                    }

                default:
                  return -1;
                }

            case REG:
            case SUBREG:
              operands[2] = x14;
              if (!s_register_operand (operands[2], E_SImode))
                return -1;
              operands[1] = x9;
              x7 = XVECEXP (x1, 0, 1);
              switch (pattern407 (x7, NOT, AND))
                {
                case 0:
                  x8 = XEXP (x7, 1);
                  x12 = XEXP (x8, 1);
                  if (!rtx_equal_p (x12, operands[1])
                      || !
#line 3134 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                    return -1;
                  return 102; /* *andsi_notsi_si_compare0 */

                case 1:
                  if (!
#line 3147 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                    return -1;
                  return 103; /* *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 (pattern248 (x1, AND) != 0
              || !
#line 9969 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 269; /* *and_scc_scc_cmp */

        default:
          return -1;
        }

    case IOR:
      x13 = XEXP (x3, 1);
      if (x13 != 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)
              || pattern161 (x2) != 0)
            return -1;
          x9 = XEXP (x4, 1);
          operands[2] = x9;
          if (!arm_rhs_operand (operands[2], E_SImode))
            return -1;
          x7 = XVECEXP (x1, 0, 1);
          switch (pattern353 (x7, IOR))
            {
            case 0:
              x10 = XEXP (x7, 0);
              operands[0] = x10;
              if (!s_register_operand (operands[0], E_SImode))
                return -1;
              x8 = XEXP (x7, 1);
              x11 = XEXP (x8, 0);
              if (!rtx_equal_p (x11, operands[1]))
                return -1;
              x12 = XEXP (x8, 1);
              if (!rtx_equal_p (x12, operands[2])
                  || !
#line 3332 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 108; /* *iorsi3_compare0 */

            case 1:
              if (!
#line 3344 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 109; /* *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 (pattern248 (x1, IOR) != 0
              || !
#line 9905 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 267; /* *ior_scc_scc_cmp */

        default:
          return -1;
        }

    case XOR:
      x13 = XEXP (x3, 1);
      if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
          || pattern192 (x1, XOR, E_SImode, E_CC_NOOVmode) != 0
          || GET_MODE (x3) != E_CC_NOOVmode)
        return -1;
      x6 = XEXP (x4, 0);
      operands[1] = x6;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      x9 = XEXP (x4, 1);
      operands[2] = x9;
      if (!arm_rhs_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;
      x8 = XEXP (x7, 1);
      x11 = XEXP (x8, 0);
      if (!rtx_equal_p (x11, operands[1]))
        return -1;
      x12 = XEXP (x8, 1);
      if (!rtx_equal_p (x12, operands[2])
          || !
#line 3513 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 114; /* *xorsi3_compare0 */

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 2);
  if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x5 = XEXP (x2, 0);
  operands[0] = x5;
  if (!s_register_operand (operands[0], E_SImode)
      || GET_MODE (x3) != E_SImode)
    return -1;
  x6 = XEXP (x3, 0);
  x7 = XEXP (x6, 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;
  x10 = XEXP (x3, 1);
  operands[4] = x10;
  if (!arm_not_operand (operands[4], E_SImode)
      || !
#line 2618 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 -1;
  return 90; /* *ite_ne_zeroextractsi */
}

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;
  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);
  switch (GET_CODE (x6))
    {
    case NE:
      x7 = XEXP (x6, 0);
      switch (GET_CODE (x7))
        {
        case ZERO_EXTRACT:
          if (GET_MODE (x7) != E_SImode)
            return -1;
          x8 = XEXP (x7, 2);
          if (GET_CODE (x8) != CONST_INT)
            return -1;
          operands[3] = x8;
          if (const_int_operand (operands[3], E_SImode))
            {
              res = recog_10 (x1, insn, pnum_clobbers);
              if (res >= 0)
                return res;
            }
          if (XWINT (x8, 0) != 0L)
            return -1;
          x9 = XEXP (x5, 2);
          if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x10 = XEXP (x4, 0);
          operands[0] = x10;
          if (!s_register_operand (operands[0], E_SImode)
              || GET_MODE (x5) != E_SImode)
            return -1;
          x11 = XEXP (x7, 0);
          operands[1] = x11;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x12 = XEXP (x7, 1);
          operands[2] = x12;
          if (!const_int_operand (operands[2], E_SImode))
            return -1;
          x13 = XEXP (x5, 1);
          operands[3] = x13;
          if (!arm_not_operand (operands[3], E_SImode)
              || !
#line 2657 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && !reg_overlap_mentioned_p (operands[0], operands[3])))
            return -1;
          return 91; /* *ite_ne_zeroextractsi_shifted */

        case REG:
        case SUBREG:
          operands[0] = x7;
          if (!s_register_operand (operands[0], E_SImode))
            return -1;
          x13 = XEXP (x5, 1);
          if (GET_CODE (x13) != LABEL_REF)
            return -1;
          x9 = XEXP (x5, 2);
          if (GET_CODE (x9) != PC)
            return -1;
          x10 = XEXP (x4, 0);
          if (GET_CODE (x10) != PC)
            return -1;
          x14 = XEXP (x13, 0);
          operands[1] = x14;
          if (!
#line 1442 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
            return -1;
          return 931; /* *thumb2_cbnz */

        default:
          return -1;
        }

    case EQ:
      x13 = XEXP (x5, 1);
      if (GET_CODE (x13) != LABEL_REF)
        return -1;
      x9 = XEXP (x5, 2);
      if (GET_CODE (x9) != PC)
        return -1;
      x10 = XEXP (x4, 0);
      if (GET_CODE (x10) != PC)
        return -1;
      x7 = XEXP (x6, 0);
      operands[0] = x7;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x14 = XEXP (x13, 0);
      operands[1] = x14;
      if (!
#line 1418 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return -1;
      return 930; /* *thumb2_cbz */

    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, 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 (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  x6 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x6) == CLOBBER)
    {
      res = recog_11 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  x7 = XEXP (x3, 1);
  if (GET_CODE (x7) != LABEL_REF)
    return -1;
  x8 = XEXP (x3, 2);
  if (GET_CODE (x8) != PC)
    return -1;
  x9 = XEXP (x2, 0);
  if (GET_CODE (x9) != PC
      || !equality_operator (x4, E_VOIDmode))
    return -1;
  x10 = XEXP (x4, 0);
  switch (GET_CODE (x10))
    {
    case ZERO_EXTRACT:
      if (GET_MODE (x10) != E_SImode)
        return -1;
      x11 = XEXP (x10, 1);
      if (GET_CODE (x11) != CONST_INT
          || GET_CODE (x6) != CLOBBER)
        return -1;
      operands[0] = x4;
      x12 = XEXP (x10, 0);
      operands[1] = x12;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      x13 = XEXP (x7, 0);
      operands[3] = x13;
      x14 = XEXP (x6, 0);
      operands[4] = x14;
      if (!scratch_operand (operands[4], E_SImode))
        return -1;
      if (XWINT (x11, 0) == 1L)
        {
          x15 = XEXP (x10, 2);
          operands[2] = x15;
          if (const_int_operand (operands[2], E_SImode)
              && 
#line 1233 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return 847; /* *tbit_cbranch */
        }
      x15 = XEXP (x10, 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 1278 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 848; /* *tlobits_cbranch */

    case REG:
    case SUBREG:
      if (pnum_clobbers == NULL)
        return -1;
      operands[2] = x10;
      if (!s_register_operand (operands[2], E_SImode)
          || pattern330 (x6) != 0)
        return -1;
      operands[3] = x4;
      x13 = XEXP (x7, 0);
      operands[4] = x13;
      x14 = XEXP (x6, 0);
      operands[0] = x14;
      if (!thumb_cbrch_target_operand (operands[0], E_SImode))
        return -1;
      x16 = XEXP (x6, 1);
      x17 = XEXP (x16, 0);
      if (!rtx_equal_p (x17, operands[2])
          || !
#line 1360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      *pnum_clobbers = 1;
      return 850; /* *cbranchne_decr1 */

    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, 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 10249 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
    return -1;
  return 274; /* *ifcompare_plus_move */
}

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, 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_12 (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 (pattern291 (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 10182 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
                return 273; /* movcond */
              if (!
#line 965 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
                return -1;
              return 909; /* *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 10292 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
                return 276; /* *ifcompare_move_plus */
              if (!arm_rhs_operand (operands[3], E_SImode))
                return -1;
              operands[7] = x8;
              if (!shiftable_operator (operands[7], E_SImode)
                  || !
#line 10434 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
                return -1;
              return 282; /* *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 10499 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
                return -1;
              return 284; /* *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 10612 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
                return -1;
              return 290; /* *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 10800 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
                return -1;
              return 300; /* *ifcompare_move_neg */

            default:
              return -1;
            }

        case PLUS:
        case MINUS:
        case AND:
        case IOR:
        case XOR:
          if (pattern291 (x1) != 0)
            return -1;
          x9 = XEXP (x4, 1);
          operands[5] = x9;
          res = recog_13 (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 10337 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
                return -1;
              return 278; /* *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 10371 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
                return -1;
              return 280; /* *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 10732 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
                return -1;
              return 296; /* *ifcompare_arith_not */

            default:
              return -1;
            }

        case NOT:
          if (GET_MODE (x7) != E_SImode
              || pattern291 (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 10534 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
                return -1;
              return 286; /* *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 10698 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
                return -1;
              return 294; /* *ifcompare_not_arith */

            default:
              return -1;
            }

        case MULT:
        case ASHIFT:
        case ROTATE:
        case ASHIFTRT:
        case LSHIFTRT:
        case ROTATERT:
          if (!shift_operator (x7, E_SImode)
              || pattern291 (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 10569 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
                return -1;
              return 288; /* *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 10657 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
                return -1;
              return 292; /* *ifcompare_shift_shift */

            default:
              return -1;
            }

        case NEG:
          if (GET_MODE (x7) != E_SImode
              || pattern292 (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 10764 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 298; /* *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 1157 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return -1;
          return 845; /* 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 1468 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 851; /* *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 1547 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 852; /* *addsi3_cbranch_scratch */

        default:
          return -1;
        }

    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;
  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);
  operands[1] = x4;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  x5 = XEXP (x3, 1);
  operands[2] = x5;
  if (!arm_rhs_operand (operands[2], E_SImode))
    return -1;
  switch (GET_CODE (x3))
    {
    case SMAX:
      if (!
#line 3730 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      return 119; /* *arm_smax_insn */

    case SMIN:
      if (!
#line 3780 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      return 121; /* *arm_smin_insn */

    case UMAX:
      if (!
#line 3812 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      return 122; /* *arm_umaxsi3 */

    case UMIN:
      if (!
#line 3845 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      return 123; /* *arm_uminsi3 */

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case REG:
    case SUBREG:
      operands[1] = x4;
      x5 = XVECEXP (x1, 0, 1);
      if (pattern215 (x5) != 0
          || GET_MODE (x3) != E_DImode)
        return -1;
      x6 = XEXP (x3, 1);
      operands[2] = x6;
      if (arm_general_adddi_operand (operands[2], E_DImode)
          && arm_general_register_operand (operands[0], E_DImode)
          && arm_general_register_operand (operands[1], E_DImode)
          && 
#line 468 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && !TARGET_NEON))
        return 1; /* *arm_adddi3 */
      if (register_operand (operands[2], E_DImode)
          && register_operand (operands[0], E_DImode)
          && register_operand (operands[1], E_DImode)
          && 
#line 52 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return 810; /* *thumb1_adddi3 */
      if (!arm_adddi_operand (operands[2], E_DImode)
          || !s_register_operand (operands[0], E_DImode)
          || !s_register_operand (operands[1], E_DImode)
          || !
#line 535 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1018; /* adddi3_neon */

    case SIGN_EXTEND:
      if (pattern196 (x1) != 0
          || !
#line 497 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 2; /* *adddi_sesidi_di */

    case ZERO_EXTEND:
      if (pattern196 (x1) != 0
          || !
#line 527 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 3; /* *adddi_zesidi_di */

    case PLUS:
      if (GET_MODE (x4) != E_SImode)
        return -1;
      x5 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x5) != CLOBBER
          || pattern13 (x1) != 0)
        return -1;
      x6 = XEXP (x3, 1);
      if (GET_MODE (x6) != E_SImode)
        return -1;
      switch (GET_CODE (x6))
        {
        case LTU:
          if (pattern416 (x6, E_CC_Cmode) != 0
              || !
#line 1065 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 25; /* *addsi3_carryin_clobercc_ltu */

        case GEU:
          if (pattern416 (x6, E_CCmode) != 0
              || !
#line 1065 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 26; /* *addsi3_carryin_clobercc_geu */

        default:
          return -1;
        }

    case MEM:
      switch (pattern164 (x1, pnum_clobbers))
        {
        case 0:
          if (!
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          *pnum_clobbers = 2;
          return 2724; /* atomic_add_fetchqi */

        case 1:
          if (!
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          *pnum_clobbers = 2;
          return 2729; /* atomic_add_fetchhi */

        case 2:
          if (!
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          *pnum_clobbers = 2;
          return 2734; /* atomic_add_fetchsi */

        case 3:
          if (!
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          *pnum_clobbers = 2;
          return 2739; /* atomic_add_fetchdi */

        default:
          return -1;
        }

    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;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case REG:
    case SUBREG:
      operands[1] = x4;
      x5 = XVECEXP (x1, 0, 1);
      if (pattern215 (x5) != 0)
        return -1;
      x6 = XEXP (x3, 1);
      switch (GET_CODE (x6))
        {
        case REG:
        case SUBREG:
          operands[2] = x6;
          if (arm_general_register_operand (operands[2], E_DImode)
              && arm_general_register_operand (operands[0], E_DImode)
              && GET_MODE (x3) == E_DImode
              && arm_general_register_operand (operands[1], E_DImode)
              && 
#line 1307 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && !TARGET_NEON))
            return 37; /* *arm_subdi3 */
          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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return 812; /* *thumb_subdi3 */
          if (!s_register_operand (operands[2], E_DImode)
              || !s_register_operand (operands[0], E_DImode)
              || GET_MODE (x3) != E_DImode
              || !s_register_operand (operands[1], E_DImode)
              || !
#line 595 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1034; /* subdi3_neon */

        case ZERO_EXTEND:
          if (pattern327 (x3) != 0
              || !
#line 1334 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 38; /* *subdi_di_zesidi */

        case SIGN_EXTEND:
          if (pattern327 (x3) != 0
              || !
#line 1359 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 39; /* *subdi_di_sesidi */

        case SMIN:
        case SMAX:
        case UMIN:
        case UMAX:
          if (pattern329 (x3) != 0
              || !
#line 3943 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && !arm_eliminable_register (operands[1])
   && !(arm_restrict_it && CONST_INT_P (operands[3]))))
            return -1;
          return 126; /* *minmax_arithsi_non_canon */

        case NE:
        case EQ:
        case GE:
        case GT:
        case LE:
        case LT:
        case GEU:
        case GTU:
        case LEU:
        case LTU:
        case UNORDERED:
        case ORDERED:
        case UNGE:
        case UNGT:
        case UNLE:
        case UNLT:
          operands[4] = x6;
          if (!arm_comparison_operator (operands[4], E_SImode)
              || pattern328 (x3) != 0)
            return -1;
          if (
#line 9515 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return 261; /* *cond_sub */
          if (!
#line 864 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
            return -1;
          return 907; /* *thumb2_cond_sub */

        default:
          return -1;
        }

    case ZERO_EXTEND:
      if (GET_MODE (x4) != E_DImode)
        return -1;
      x5 = XVECEXP (x1, 0, 1);
      if (pattern215 (x5) != 0)
        return -1;
      switch (pattern310 (x3))
        {
        case 0:
          if (!
#line 1386 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 40; /* *subdi_zesidi_di */

        case 1:
          if (!
#line 1444 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 42; /* *subdi_zesidi_zesidi */

        default:
          return -1;
        }

    case SIGN_EXTEND:
      if (pattern196 (x1) != 0
          || !
#line 1413 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      return 41; /* *subdi_sesidi_di */

    case MEM:
      switch (pattern164 (x1, pnum_clobbers))
        {
        case 0:
          if (!
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          *pnum_clobbers = 2;
          return 2725; /* atomic_sub_fetchqi */

        case 1:
          if (!
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          *pnum_clobbers = 2;
          return 2730; /* atomic_sub_fetchhi */

        case 2:
          if (!
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          *pnum_clobbers = 2;
          return 2735; /* atomic_sub_fetchsi */

        case 3:
          if (!
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          *pnum_clobbers = 2;
          return 2740; /* atomic_sub_fetchdi */

        default:
          return -1;
        }

    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;
  int res ATTRIBUTE_UNUSED;
  if (pnum_clobbers == NULL)
    return -1;
  x2 = XVECEXP (x1, 0, 1);
  if (pattern197 (x2, 3, 19) != 0)
    return -1;
  x3 = XVECEXP (x1, 0, 0);
  x4 = XEXP (x3, 1);
  x5 = XEXP (x4, 0);
  operands[1] = x5;
  switch (pattern163 (x1))
    {
    case 0:
      if (!
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
        return -1;
      *pnum_clobbers = 2;
      return 2727; /* atomic_xor_fetchqi */

    case 1:
      if (!
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
        return -1;
      *pnum_clobbers = 2;
      return 2732; /* atomic_xor_fetchhi */

    case 2:
      if (!
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
        return -1;
      *pnum_clobbers = 2;
      return 2737; /* atomic_xor_fetchsi */

    case 3:
      if (!
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
        return -1;
      *pnum_clobbers = 2;
      return 2742; /* atomic_xor_fetchdi */

    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, 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 3898 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && !arm_eliminable_register (operands[1]) && !arm_restrict_it))
        return -1;
      return 125; /* *minmax_arithsi */

    case NE:
    case EQ:
    case GE:
    case GT:
    case LE:
    case LT:
    case GEU:
    case GTU:
    case LEU:
    case LTU:
    case UNORDERED:
    case ORDERED:
    case UNGE:
    case UNGT:
    case UNLE:
    case UNLT:
      operands[4] = x5;
      if (!arm_comparison_operator (operands[4], E_SImode))
        return -1;
      x6 = XEXP (x2, 0);
      if (GET_CODE (x6) != REG
          || REGNO (x6) != 100
          || GET_MODE (x6) != E_CCmode)
        return -1;
      operands[5] = x4;
      if (!shiftable_operator (operands[5], E_SImode))
        return -1;
      x7 = XEXP (x5, 0);
      operands[2] = x7;
      if (!s_register_operand (operands[2], E_SImode))
        return -1;
      x8 = XEXP (x5, 1);
      operands[3] = x8;
      if (!arm_rhs_operand (operands[3], E_SImode))
        return -1;
      x9 = XEXP (x4, 1);
      operands[1] = x9;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      if (
#line 9489 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
        return 260; /* *cond_arith */
      if (!
#line 756 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !arm_restrict_it))
        return -1;
      return 905; /* *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 10843 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && adjacent_mem_locations (operands[2], operands[3])))
                    return 302; /* *arith_adjacentmem */
                }
            }
        }
      operands[1] = x5;
      x6 = XEXP (x2, 0);
      if (pattern244 (x6, E_SImode) != 0)
        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 1209 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed
   && GET_CODE(operands[3]) != PLUS
   && GET_CODE(operands[3]) != MINUS))
        return -1;
      return 918; /* *thumb2_alusi3_short */

    default:
      return -1;
    }
}

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;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 1);
  if (GET_CODE (x2) != SET)
    return -1;
  x3 = XEXP (x2, 1);
  if (pattern18 (x3, PLUS, MEM) != 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 11983 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 336; /* *thumb2_ldrd */
}

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, 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_20 (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 12011 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 338; /* *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 (pattern293 (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 11998 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 337; /* *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 290 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return -1;
      return 885; /* tls_load_dot_plus_four */

    default:
      return -1;
    }
}

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;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) == E_SImode)
    {
      res = recog_21 (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 (pattern395 (x5, E_QImode) != 0
              || !
#line 255 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          *pnum_clobbers = 2;
          return 2672; /* atomic_exchangeqi */

        case E_HImode:
          if (pattern395 (x5, E_HImode) != 0
              || !
#line 255 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          *pnum_clobbers = 2;
          return 2673; /* atomic_exchangehi */

        case E_DImode:
          if (pattern395 (x5, E_DImode) != 0
              || !
#line 255 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          *pnum_clobbers = 2;
          return 2675; /* atomic_exchangedi */

        default:
          return -1;
        }

    case 19:
      x9 = XVECEXP (x5, 0, 0);
      switch (GET_CODE (x9))
        {
        case PLUS:
          switch (pattern383 (x5))
            {
            case 0:
              if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2700; /* atomic_fetch_addqi */

            case 1:
              if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2705; /* atomic_fetch_addhi */

            case 2:
              if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2715; /* atomic_fetch_adddi */

            default:
              return -1;
            }

        case MINUS:
          switch (pattern383 (x5))
            {
            case 0:
              if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2701; /* atomic_fetch_subqi */

            case 1:
              if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2706; /* atomic_fetch_subhi */

            case 2:
              if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2716; /* atomic_fetch_subdi */

            default:
              return -1;
            }

        case IOR:
          switch (pattern383 (x5))
            {
            case 0:
              if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2702; /* atomic_fetch_orqi */

            case 1:
              if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2707; /* atomic_fetch_orhi */

            case 2:
              if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2717; /* atomic_fetch_ordi */

            default:
              return -1;
            }

        case XOR:
          switch (pattern383 (x5))
            {
            case 0:
              if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2703; /* atomic_fetch_xorqi */

            case 1:
              if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2708; /* atomic_fetch_xorhi */

            case 2:
              if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2718; /* atomic_fetch_xordi */

            default:
              return -1;
            }

        case AND:
          switch (pattern383 (x5))
            {
            case 0:
              if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2704; /* atomic_fetch_andqi */

            case 1:
              if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2709; /* atomic_fetch_andhi */

            case 2:
              if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2719; /* 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 (pattern417 (x5, E_QImode) != 0
                  || !
#line 386 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2720; /* atomic_fetch_nandqi */

            case E_HImode:
              if (pattern417 (x5, E_HImode) != 0
                  || !
#line 386 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2721; /* 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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 3;
              return 2723; /* atomic_fetch_nanddi */

            default:
              return -1;
            }

        default:
          return -1;
        }

    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, 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 12025 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 339; /* *thumb2_strd */
}

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, 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_23 (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 12053 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 341; /* *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 12040 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 340; /* *thumb2_strd_base */

    default:
      return -1;
    }
}

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;
  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 4116 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 1932; /* *neon_vswpv8qi */

    case E_V16QImode:
      if (!s_register_operand (operands[0], E_V16QImode)
          || !s_register_operand (operands[1], E_V16QImode)
          || !
#line 4116 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 1933; /* *neon_vswpv16qi */

    case E_V4HImode:
      if (!s_register_operand (operands[0], E_V4HImode)
          || !s_register_operand (operands[1], E_V4HImode)
          || !
#line 4116 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 1934; /* *neon_vswpv4hi */

    case E_V8HImode:
      if (!s_register_operand (operands[0], E_V8HImode)
          || !s_register_operand (operands[1], E_V8HImode)
          || !
#line 4116 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 1935; /* *neon_vswpv8hi */

    case E_V2SImode:
      if (!s_register_operand (operands[0], E_V2SImode)
          || !s_register_operand (operands[1], E_V2SImode)
          || !
#line 4116 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 1936; /* *neon_vswpv2si */

    case E_V4SImode:
      if (!s_register_operand (operands[0], E_V4SImode)
          || !s_register_operand (operands[1], E_V4SImode)
          || !
#line 4116 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 1937; /* *neon_vswpv4si */

    case E_V4HFmode:
      if (!s_register_operand (operands[0], E_V4HFmode)
          || !s_register_operand (operands[1], E_V4HFmode)
          || !
#line 4116 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 1938; /* *neon_vswpv4hf */

    case E_V8HFmode:
      if (!s_register_operand (operands[0], E_V8HFmode)
          || !s_register_operand (operands[1], E_V8HFmode)
          || !
#line 4116 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 1939; /* *neon_vswpv8hf */

    case E_V2SFmode:
      if (!s_register_operand (operands[0], E_V2SFmode)
          || !s_register_operand (operands[1], E_V2SFmode)
          || !
#line 4116 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 1940; /* *neon_vswpv2sf */

    case E_V4SFmode:
      if (!s_register_operand (operands[0], E_V4SFmode)
          || !s_register_operand (operands[1], E_V4SFmode)
          || !
#line 4116 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 1941; /* *neon_vswpv4sf */

    case E_DImode:
      if (!s_register_operand (operands[0], E_DImode)
          || !s_register_operand (operands[1], E_DImode)
          || !
#line 4116 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 1942; /* *neon_vswpdi */

    case E_V2DImode:
      if (!s_register_operand (operands[0], E_V2DImode)
          || !s_register_operand (operands[1], E_V2DImode)
          || !
#line 4116 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 1943; /* *neon_vswpv2di */

    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, 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_24 (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 1944 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                    return 873; /* *thumb1_tablejump */
                }
            }
        }
      break;

    case REG:
    case SUBREG:
      res = recog_25 (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
      || pattern249 (x1, E_CCmode, UNSPEC) != 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 47:
          if (XINT (x4, 1) != 47)
            return -1;
          switch (GET_MODE (x8))
            {
            case E_V2SImode:
              if (!
#line 868 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 638; /* iwmmxt_tandcv2si3 */

            case E_V4HImode:
              if (!
#line 868 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 639; /* iwmmxt_tandcv4hi3 */

            case E_V8QImode:
              if (!
#line 868 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 640; /* iwmmxt_tandcv8qi3 */

            default:
              return -1;
            }

        case 48:
          if (XINT (x4, 1) != 48)
            return -1;
          switch (GET_MODE (x8))
            {
            case E_V2SImode:
              if (!
#line 878 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 641; /* iwmmxt_torcv2si3 */

            case E_V4HImode:
              if (!
#line 878 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 642; /* iwmmxt_torcv4hi3 */

            case E_V8QImode:
              if (!
#line 878 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 643; /* iwmmxt_torcv8qi3 */

            default:
              return -1;
            }

        case 49:
          if (XINT (x4, 1) != 49)
            return -1;
          switch (GET_MODE (x8))
            {
            case E_V2SImode:
              if (!
#line 888 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 644; /* iwmmxt_torvscv2si3 */

            case E_V4HImode:
              if (!
#line 888 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 645; /* iwmmxt_torvscv4hi3 */

            case E_V8QImode:
              if (!
#line 888 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 646; /* iwmmxt_torvscv8qi3 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 2:
      if (XINT (x8, 1) != 50)
        return -1;
      x10 = XVECEXP (x8, 0, 0);
      if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
          || XINT (x4, 1) != 50)
        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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 647; /* iwmmxt_textrcv2si3 */

        case E_V4HImode:
          if (!
#line 899 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 648; /* iwmmxt_textrcv4hi3 */

        case E_V8QImode:
          if (!
#line 899 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 649; /* iwmmxt_textrcv8qi3 */

        default:
          return -1;
        }

    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, x12, x13, x14, x15, x16, x17;
  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_4 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        case REG:
        case SUBREG:
          res = recog_5 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        default:
          break;
        }
      x7 = XVECEXP (x1, 0, 1);
      switch (GET_CODE (x7))
        {
        case SET:
          res = recog_6 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        case CLOBBER:
          if (pattern214 (x1) == 0
              && 
#line 7444 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return 199; /* *arm_cmpdi_insn */
          break;

        default:
          break;
        }
      if (GET_MODE (x5) != E_CCmode
          || x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
          || GET_CODE (x7) != SET)
        return -1;
      x8 = XEXP (x7, 1);
      if (GET_CODE (x8) != MINUS
          || GET_MODE (x3) != E_CCmode)
        return -1;
      operands[1] = x6;
      x9 = XEXP (x7, 0);
      operands[0] = x9;
      x10 = XEXP (x8, 0);
      switch (GET_CODE (x10))
        {
        case CONST_INT:
          if (XWINT (x10, 0) != 0L
              || !register_operand (operands[1], E_DImode)
              || !register_operand (operands[0], E_DImode)
              || GET_MODE (x8) != E_DImode)
            return -1;
          x11 = XEXP (x8, 1);
          if (!rtx_equal_p (x11, operands[1])
              || !
#line 4652 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 146; /* negdi2_compare */

        case MINUS:
          if (GET_MODE (x10) != E_SImode)
            return -1;
          x12 = XEXP (x10, 0);
          if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x11 = XEXP (x8, 1);
          if (pattern393 (x11) != 0
              || !s_register_operand (operands[1], E_SImode)
              || !s_register_operand (operands[0], E_SImode)
              || GET_MODE (x8) != E_SImode)
            return -1;
          x13 = XEXP (x10, 1);
          if (!rtx_equal_p (x13, operands[1])
              || !
#line 4726 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 148; /* *negsi2_carryin_compare */

        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]
          || pattern161 (x2) != 0)
        return -1;
      x14 = XEXP (x4, 0);
      if (s_register_operand (x14, E_SImode))
        {
          res = recog_8 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      if (GET_CODE (x4) != MULT
          || GET_MODE (x4) != E_SImode)
        return -1;
      operands[1] = x14;
      if (!register_operand (operands[1], E_SImode))
        return -1;
      x15 = XEXP (x4, 1);
      operands[2] = x15;
      if (!register_operand (operands[2], E_SImode))
        return -1;
      x7 = XVECEXP (x1, 0, 1);
      switch (pattern353 (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 1394 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && optimize_size))
            return -1;
          return 928; /* *thumb2_mulsi_short_compare0 */

        case 1:
          if (!
#line 1406 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && optimize_size))
            return -1;
          return 929; /* *thumb2_mulsi_short_compare0_scratch */

        default:
          return -1;
        }

    case NOT:
      if (GET_MODE (x4) != E_SImode)
        return -1;
      x6 = XEXP (x3, 1);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
          || pattern161 (x2) != 0)
        return -1;
      x14 = XEXP (x4, 0);
      switch (GET_CODE (x14))
        {
        case MULT:
        case ASHIFT:
        case ROTATE:
        case ASHIFTRT:
        case LSHIFTRT:
        case ROTATERT:
          operands[3] = x14;
          if (!shift_operator (operands[3], E_SImode))
            return -1;
          x16 = XEXP (x14, 0);
          operands[1] = x16;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x17 = XEXP (x14, 1);
          operands[2] = x17;
          if (!shift_amount_operand (operands[2], E_SImode))
            return -1;
          x7 = XVECEXP (x1, 0, 1);
          switch (pattern353 (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 4297 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                    return -1;
                  return 135; /* *not_shiftsi_compare0 */

                default:
                  return -1;
                }

            case 1:
              if (!
#line 4312 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 136; /* *not_shiftsi_compare0_scratch */

            default:
              return -1;
            }

        case REG:
        case SUBREG:
          operands[1] = x14;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x7 = XVECEXP (x1, 0, 1);
          switch (pattern353 (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 5111 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 157; /* *notsi_compare0 */

            case 1:
              if (!
#line 5122 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 158; /* *notsi_compare0_scratch */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case PLUS:
    case MINUS:
    case AND:
    case IOR:
    case XOR:
      if (GET_MODE (x4) == E_SImode)
        {
          res = recog_9 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      operands[1] = x4;
      if (!shiftable_operator (operands[1], E_SImode))
        return -1;
      x14 = XEXP (x4, 0);
      if (!shift_operator (x14, E_SImode))
        return -1;
      operands[3] = x14;
      x6 = XEXP (x3, 1);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
          || pattern161 (x2) != 0)
        return -1;
      x16 = XEXP (x14, 0);
      operands[4] = x16;
      if (!s_register_operand (operands[4], E_SImode))
        return -1;
      x17 = XEXP (x14, 1);
      operands[5] = x17;
      if (!shift_amount_operand (operands[5], E_SImode))
        return -1;
      x15 = XEXP (x4, 1);
      operands[2] = x15;
      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 9116 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 251; /* *arith_shiftsi_compare0 */

            default:
              return -1;
            }

        case CLOBBER:
          x9 = XEXP (x7, 0);
          operands[0] = x9;
          if (!scratch_operand (operands[0], E_SImode)
              || !
#line 9133 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 252; /* *arith_shiftsi_compare0_scratch */

        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;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 0);
  operands[0] = x3;
  x4 = XEXP (x2, 1);
  switch (XVECLEN (x4, 0))
    {
    case 1:
      if (pattern166 (x4) != 0)
        return -1;
      x5 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x5) != CLOBBER
          || !memory_operand (operands[0], E_SImode))
        return -1;
      x6 = XVECEXP (x4, 0, 0);
      x7 = XEXP (x6, 0);
      operands[1] = x7;
      if (!register_operand (operands[1], E_SImode))
        return -1;
      x8 = XEXP (x5, 0);
      if (!rtx_equal_p (x8, operands[1]))
        return -1;
      return 233; /* *stack_protect_set_insn */

    case 2:
      x6 = XVECEXP (x4, 0, 0);
      operands[1] = x6;
      switch (XINT (x4, 1))
        {
        case 104:
          if (pattern216 (x1) != 0
              || !
#line 1800 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 759; /* neon_vcvths_nhf_unspec */

        case 105:
          if (pattern216 (x1) != 0
              || !
#line 1800 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 760; /* neon_vcvthu_nhf_unspec */

        case 38:
          if (GET_MODE (x4) != E_SImode)
            return -1;
          x9 = XVECEXP (x4, 0, 1);
          if (GET_CODE (x9) != MEM
              || GET_MODE (x9) != E_SImode)
            return -1;
          x5 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x5) != CLOBBER
              || !register_operand (operands[0], E_SImode)
              || !memory_operand (operands[1], E_SImode))
            return -1;
          x10 = XEXP (x9, 0);
          operands[2] = x10;
          if (!register_operand (operands[2], E_SImode))
            return -1;
          x8 = XEXP (x5, 0);
          if (!rtx_equal_p (x8, operands[2])
              || !
#line 1972 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return -1;
          return 875; /* thumb1_stack_protect_test_insn */

        case 264:
          switch (pattern218 (x1, 265))
            {
            case 0:
              if (!
#line 5410 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2338; /* *neon_vtrnv8qi_insn */

            case 1:
              if (!
#line 5410 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2339; /* *neon_vtrnv16qi_insn */

            case 2:
              if (!
#line 5410 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2340; /* *neon_vtrnv4hi_insn */

            case 3:
              if (!
#line 5410 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2341; /* *neon_vtrnv8hi_insn */

            case 4:
              if (!
#line 5410 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2342; /* *neon_vtrnv2si_insn */

            case 5:
              if (!
#line 5410 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2343; /* *neon_vtrnv4si_insn */

            case 6:
              if (!
#line 5410 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2344; /* *neon_vtrnv2sf_insn */

            case 7:
              if (!
#line 5410 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2345; /* *neon_vtrnv4sf_insn */

            case 8:
              if (!
#line 5410 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2346; /* *neon_vtrnv8hf_insn */

            case 9:
              if (!
#line 5410 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2347; /* *neon_vtrnv4hf_insn */

            default:
              return -1;
            }

        case 269:
          switch (pattern218 (x1, 270))
            {
            case 0:
              if (!
#line 5436 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2348; /* *neon_vzipv8qi_insn */

            case 1:
              if (!
#line 5436 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2349; /* *neon_vzipv16qi_insn */

            case 2:
              if (!
#line 5436 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2350; /* *neon_vzipv4hi_insn */

            case 3:
              if (!
#line 5436 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2351; /* *neon_vzipv8hi_insn */

            case 4:
              if (!
#line 5436 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2352; /* *neon_vzipv2si_insn */

            case 5:
              if (!
#line 5436 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2353; /* *neon_vzipv4si_insn */

            case 6:
              if (!
#line 5436 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2354; /* *neon_vzipv2sf_insn */

            case 7:
              if (!
#line 5436 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2355; /* *neon_vzipv4sf_insn */

            case 8:
              if (!
#line 5436 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2356; /* *neon_vzipv8hf_insn */

            case 9:
              if (!
#line 5436 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2357; /* *neon_vzipv4hf_insn */

            default:
              return -1;
            }

        case 267:
          switch (pattern218 (x1, 268))
            {
            case 0:
              if (!
#line 5462 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2358; /* *neon_vuzpv8qi_insn */

            case 1:
              if (!
#line 5462 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2359; /* *neon_vuzpv16qi_insn */

            case 2:
              if (!
#line 5462 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2360; /* *neon_vuzpv4hi_insn */

            case 3:
              if (!
#line 5462 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2361; /* *neon_vuzpv8hi_insn */

            case 4:
              if (!
#line 5462 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2362; /* *neon_vuzpv2si_insn */

            case 5:
              if (!
#line 5462 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2363; /* *neon_vuzpv4si_insn */

            case 6:
              if (!
#line 5462 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2364; /* *neon_vuzpv2sf_insn */

            case 7:
              if (!
#line 5462 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2365; /* *neon_vuzpv4sf_insn */

            case 8:
              if (!
#line 5462 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2366; /* *neon_vuzpv8hf_insn */

            case 9:
              if (!
#line 5462 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2367; /* *neon_vuzpv4hf_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;
  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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2756; /* 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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2757; /* 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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2758; /* 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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2759; /* 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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQEXD && ARM_DOUBLEWORD_ALIGN))
            return -1;
          return 2760; /* 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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ))
            return -1;
          return 2761; /* 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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ))
            return -1;
          return 2762; /* 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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ))
            return -1;
          return 2763; /* arm_store_release_exclusivesi */

        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;
  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_16 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    case MINUS:
      res = recog_17 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    case IOR:
      switch (pattern165 (x1, pnum_clobbers))
        {
        case 0:
          if (
#line 9869 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (arm_select_dominance_cc_mode (operands[3], operands[6], DOM_CC_X_OR_Y)
       != CCmode)))
            return 266; /* *ior_scc_scc */
          break;

        case 1:
          if (
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            {
              *pnum_clobbers = 2;
              return 2726; /* atomic_or_fetchqi */
            }
          break;

        case 2:
          if (
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            {
              *pnum_clobbers = 2;
              return 2731; /* atomic_or_fetchhi */
            }
          break;

        case 3:
          if (
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            {
              *pnum_clobbers = 2;
              return 2736; /* atomic_or_fetchsi */
            }
          break;

        case 4:
          if (
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            {
              *pnum_clobbers = 2;
              return 2741; /* atomic_or_fetchdi */
            }
          break;

        default:
          break;
        }
      break;

    case AND:
      switch (pattern165 (x1, pnum_clobbers))
        {
        case 0:
          if (
#line 9931 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (arm_select_dominance_cc_mode (operands[3], operands[6], DOM_CC_X_AND_Y)
       != CCmode)))
            return 268; /* *and_scc_scc */
          if (
#line 9999 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (arm_select_dominance_cc_mode (operands[3], operands[6], DOM_CC_X_AND_Y)
       == CCmode)))
            return 270; /* *and_scc_scc_nodom */
          break;

        case 1:
          if (
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            {
              *pnum_clobbers = 2;
              return 2728; /* atomic_and_fetchqi */
            }
          break;

        case 2:
          if (
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            {
              *pnum_clobbers = 2;
              return 2733; /* atomic_and_fetchhi */
            }
          break;

        case 3:
          if (
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            {
              *pnum_clobbers = 2;
              return 2738; /* atomic_and_fetchsi */
            }
          break;

        case 4:
          if (
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            {
              *pnum_clobbers = 2;
              return 2743; /* atomic_and_fetchdi */
            }
          break;

        default:
          break;
        }
      break;

    case XOR:
      res = recog_18 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    default:
      break;
    }
  if (s_register_operand (operands[0], E_SImode))
    {
      res = recog_19 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  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)
    return -1;
  switch (GET_CODE (x4))
    {
    case PLUS:
    case AND:
      operands[5] = x4;
      if (shiftable_operator_strict_it (operands[5], E_SImode))
        {
          x7 = XEXP (x4, 0);
          if (arm_comparison_operator (x7, E_SImode))
            {
              operands[4] = x7;
              if (pattern354 (x4) == 0
                  && 
#line 794 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_restrict_it))
                return 906; /* *thumb2_cond_arith_strict_it */
            }
        }
      if (GET_CODE (x4) != PLUS
          || GET_MODE (x4) != E_SImode
          || !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_reg_or_int_operand (operands[2], E_SImode)
          || !
#line 1252 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
        return -1;
      return 923; /* *thumb2_addsi_short */

    case MINUS:
      if (GET_MODE (x4) != E_SImode
          || !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 1281 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
        return -1;
      return 924; /* *thumb2_subsi_short */

    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, x11, x12, x13, x14, x15, x16, x17;
  rtx x18;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  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:
      switch (GET_CODE (x3))
        {
        case NE:
          res = recog_1 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        case EQ:
          res = recog_2 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        default:
          break;
        }
      operands[1] = x3;
      if (pattern116 (x1) != 0
          || !
#line 9331 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 258; /* *compare_scc */

    case COMPARE:
      return recog_27 (x1, insn, pnum_clobbers);

    case TRUNCATE:
      if (GET_MODE (x3) != E_SImode)
        return -1;
      x4 = XEXP (x3, 0);
      if (GET_CODE (x4) != LSHIFTRT
          || GET_MODE (x4) != E_DImode)
        return -1;
      x5 = XEXP (x4, 0);
      if (GET_CODE (x5) != MULT
          || GET_MODE (x5) != E_DImode)
        return -1;
      x6 = XEXP (x4, 1);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 32])
        return -1;
      x7 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x7) != CLOBBER)
        return -1;
      x8 = XEXP (x2, 0);
      operands[0] = x8;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x9 = XEXP (x5, 0);
      if (GET_MODE (x9) != E_DImode)
        return -1;
      x10 = XEXP (x5, 1);
      if (GET_MODE (x10) != E_DImode)
        return -1;
      x11 = XEXP (x7, 0);
      operands[3] = x11;
      if (!scratch_operand (operands[3], E_SImode))
        return -1;
      switch (GET_CODE (x9))
        {
        case SIGN_EXTEND:
          if (GET_CODE (x10) != SIGN_EXTEND)
            return -1;
          x12 = XEXP (x9, 0);
          operands[1] = x12;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x13 = XEXP (x10, 0);
          operands[2] = x13;
          if (!s_register_operand (operands[2], E_SImode))
            return -1;
          if (
#line 1948 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && !arm_arch6))
            return 67; /* *smulsi3_highpart_nov6 */
          if (!
#line 1963 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6))
            return -1;
          return 68; /* *smulsi3_highpart_v6 */

        case ZERO_EXTEND:
          if (GET_CODE (x10) != ZERO_EXTEND)
            return -1;
          x12 = XEXP (x9, 0);
          operands[1] = x12;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x13 = XEXP (x10, 0);
          operands[2] = x13;
          if (!s_register_operand (operands[2], E_SImode))
            return -1;
          if (
#line 1992 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && !arm_arch6))
            return 69; /* *umulsi3_highpart_nov6 */
          if (!
#line 2007 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6))
            return -1;
          return 70; /* *umulsi3_highpart_v6 */

        default:
          return -1;
        }

    case IF_THEN_ELSE:
      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 UNEQ:
        case UNGE:
        case UNGT:
        case UNLE:
        case UNLT:
        case LTGT:
          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:
              res = recog_14 (x1, insn, pnum_clobbers);
              if (res >= 0)
                return res;
              break;

            default:
              break;
            }
          operands[5] = x4;
          if (!comparison_operator (operands[5], E_VOIDmode))
            return -1;
          x5 = XEXP (x4, 0);
          if (GET_CODE (x5) != PLUS
              || GET_MODE (x5) != E_SImode)
            return -1;
          x6 = XEXP (x4, 1);
          if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x7 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x7) != CLOBBER
              || pattern292 (x1) != 0
              || pattern394 (x3) != 0
              || !
#line 10142 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 272; /* movcond_addsi */

        default:
          return -1;
        }

    case SMIN:
    case SMAX:
    case UMIN:
    case UMAX:
      if (pattern11 (x1) != 0)
        return -1;
      if (s_register_operand (operands[0], E_SImode))
        {
          res = recog_15 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      x4 = XEXP (x3, 0);
      operands[1] = x4;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      x14 = XEXP (x3, 1);
      operands[2] = x14;
      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 3869 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && optimize_function_for_size_p (cfun) && !arm_restrict_it))
            return 124; /* *store_minmaxsi */
        }
      if (!arm_rhs_operand (operands[2], E_SImode)
          || !s_register_operand (operands[0], E_SImode)
          || GET_MODE (x3) != E_SImode)
        return -1;
      switch (GET_CODE (x3))
        {
        case SMAX:
          if (!
#line 48 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
            return -1;
          return 877; /* *thumb2_smaxsi3 */

        case SMIN:
          if (!
#line 69 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
            return -1;
          return 878; /* *thumb2_sminsi3 */

        case UMAX:
          if (!
#line 90 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
            return -1;
          return 879; /* *thumb32_umaxsi3 */

        case UMIN:
          if (!
#line 111 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
            return -1;
          return 880; /* *thumb2_uminsi3 */

        default:
          return -1;
        }

    case PLUS:
    case MINUS:
    case AND:
    case IOR:
    case XOR:
      return recog_30 (x1, insn, pnum_clobbers);

    case NEG:
      switch (pattern14 (x1))
        {
        case 0:
          x7 = XVECEXP (x1, 0, 1);
          x11 = XEXP (x7, 0);
          if (GET_CODE (x11) != REG
              || REGNO (x11) != 100
              || GET_MODE (x11) != E_CCmode)
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case E_DImode:
              if (GET_MODE (x3) != E_DImode)
                return -1;
              if (s_register_operand (operands[0], E_DImode)
                  && s_register_operand (operands[1], E_DImode)
                  && 
#line 4698 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return 147; /* *negdi2_insn */
              if (!register_operand (operands[0], E_DImode)
                  || !register_operand (operands[1], E_DImode)
                  || !
#line 315 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                return -1;
              return 824; /* *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 1474 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
                return -1;
              return 933; /* *thumb2_negsi2_short */

            default:
              return -1;
            }

        case 1:
          if (!
#line 4788 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 151; /* *negdi_extendsidi */

        case 2:
          if (!
#line 4858 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 152; /* *negdi_zero_extendsidi */

        case 3:
          x7 = XVECEXP (x1, 0, 1);
          x11 = XEXP (x7, 0);
          if (GET_CODE (x11) == REG
              && REGNO (x11) == 100
              && GET_MODE (x11) == E_CCmode)
            {
              if (
#line 4963 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
                return 154; /* *arm_neg_abssi2 */
              if (
#line 184 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
                return 882; /* *thumb2_neg_abssi2 */
            }
          operands[2] = x11;
          if (!scratch_operand (operands[2], E_SImode)
              || !
#line 349 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return -1;
          return 827; /* *thumb1_neg_abssi2 */

        case 4:
          if (
#line 10067 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return 271; /* *negscc */
          if (!
#line 895 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
            return -1;
          return 908; /* *thumb2_negscc */

        default:
          return -1;
        }

    case ABS:
      if (pattern15 (x1) != 0)
        return -1;
      x7 = XVECEXP (x1, 0, 1);
      x11 = XEXP (x7, 0);
      if (GET_CODE (x11) == REG
          && REGNO (x11) == 100
          && GET_MODE (x11) == E_CCmode)
        {
          if (
#line 4899 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return 153; /* *arm_abssi2 */
          if (
#line 131 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
            return 881; /* *thumb2_abssi2 */
        }
      operands[2] = x11;
      if (!scratch_operand (operands[2], E_SImode)
          || !
#line 334 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 826; /* *thumb1_abssi2 */

    case CALL:
      if (pnum_clobbers == NULL)
        return -1;
      x7 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x7) != USE)
        return -1;
      switch (pattern21 (x2))
        {
        case 0:
          x11 = XEXP (x7, 0);
          operands[3] = x11;
          if (s_register_operand (operands[1], E_SImode))
            {
              if (
#line 8294 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch5t && !SIBLING_CALL_P (insn)))
                {
                  *pnum_clobbers = 1;
                  return 216; /* *call_value_reg_armv5 */
                }
              if (
#line 8305 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && !arm_arch5t && !SIBLING_CALL_P (insn)))
                {
                  *pnum_clobbers = 1;
                  return 217; /* *call_value_reg_arm */
                }
            }
          if (
#line 8345 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 219; /* *call_value_symbol */
            }
          if (register_operand (operands[1], E_SImode))
            {
              if (
#line 1772 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && arm_arch5t))
                {
                  *pnum_clobbers = 1;
                  return 863; /* *call_value_reg_thumb1_v5 */
                }
              if (
#line 1798 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && !arm_arch5t))
                {
                  *pnum_clobbers = 1;
                  return 865; /* *call_value_reg_thumb1 */
                }
            }
          if (
#line 1832 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 867; /* *call_value_insn */
            }
          if (!register_operand (operands[1], E_SImode)
              || !
#line 582 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
            return -1;
          *pnum_clobbers = 1;
          return 898; /* *call_value_reg_thumb2 */

        case 1:
          x14 = XEXP (x3, 1);
          operands[1] = x14;
          x11 = XEXP (x7, 0);
          operands[2] = x11;
          if (
#line 1786 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && use_cmse))
            {
              *pnum_clobbers = 1;
              return 864; /* *nonsecure_call_value_reg_thumb1_v5 */
            }
          if (!
#line 595 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && use_cmse))
            return -1;
          *pnum_clobbers = 1;
          return 899; /* *nonsecure_call_value_reg_thumb2 */

        default:
          return -1;
        }

    case UNSPEC:
      return recog_28 (x1, insn, pnum_clobbers);

    case SIGN_EXTRACT:
      if (pattern16 (x1, 1) != 0)
        return -1;
      x15 = XEXP (x3, 2);
      operands[2] = x15;
      if (!const_int_operand (operands[2], E_SImode)
          || !
#line 11210 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      return 304; /* *sign_extract_onebit */

    case NOT:
      x8 = XEXP (x2, 0);
      operands[0] = x8;
      x4 = XEXP (x3, 0);
      switch (GET_CODE (x4))
        {
        case SIGN_EXTRACT:
          if (GET_MODE (x4) != E_SImode)
            return -1;
          x6 = XEXP (x4, 1);
          if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
            return -1;
          x7 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x7) != CLOBBER
              || pattern12 (x1, E_SImode) != 0)
            return -1;
          x16 = XEXP (x4, 2);
          operands[2] = x16;
          if (!const_int_operand (operands[2], E_SImode)
              || !
#line 11228 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 305; /* *not_signextract_onebit */

        case REG:
          operands[1] = x4;
          if (!low_register_operand (operands[1], E_SImode))
            return -1;
          x7 = XVECEXP (x1, 0, 1);
          if (pattern215 (x7) != 0
              || !low_register_operand (operands[0], E_SImode)
              || GET_MODE (x3) != E_SImode
              || !
#line 1463 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
            return -1;
          return 932; /* *thumb2_one_cmplsi2_short */

        case AND:
          if (pnum_clobbers == NULL)
            return -1;
          x7 = XVECEXP (x1, 0, 1);
          if (pattern197 (x7, 3, 19) != 0)
            return -1;
          x5 = XEXP (x4, 0);
          operands[1] = x5;
          x6 = XEXP (x4, 1);
          operands[2] = x6;
          x17 = XEXP (x7, 1);
          x18 = XVECEXP (x17, 0, 2);
          operands[3] = x18;
          if (!const_int_operand (operands[3], E_SImode))
            return -1;
          switch (pattern356 (x1))
            {
            case 0:
              if (!
#line 437 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 2;
              return 2744; /* atomic_nand_fetchqi */

            case 1:
              if (!
#line 437 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 2;
              return 2745; /* atomic_nand_fetchhi */

            case 2:
              if (!
#line 437 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 2;
              return 2746; /* atomic_nand_fetchsi */

            case 3:
              if (!
#line 437 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 2;
              return 2747; /* atomic_nand_fetchdi */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case REG:
    case SUBREG:
    case MEM:
      switch (GET_CODE (x3))
        {
        case MEM:
          res = recog_22 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        case REG:
        case SUBREG:
          res = recog_26 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        default:
          break;
        }
      operands[2] = x3;
      if (memory_operand (operands[2], E_SImode))
        {
          x7 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x7) == SET)
            {
              x8 = XEXP (x2, 0);
              operands[0] = x8;
              if (s_register_operand (operands[0], E_SImode))
                {
                  x11 = XEXP (x7, 0);
                  operands[1] = x11;
                  if (s_register_operand (operands[1], E_SImode))
                    {
                      x17 = XEXP (x7, 1);
                      operands[3] = x17;
                      if (memory_operand (operands[3], E_SImode)
                          && 
#line 164 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldrdstrd.md"
(TARGET_LDRD && TARGET_ARM && reload_completed
  && valid_operands_ldrd_strd (operands, true)))
                        return 348; /* *arm_ldrd */
                    }
                }
            }
        }
      operands[0] = x3;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x7 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x7) != SET)
        return -1;
      x8 = XEXP (x2, 0);
      operands[2] = x8;
      if (!memory_operand (operands[2], E_SImode))
        return -1;
      x11 = XEXP (x7, 0);
      operands[3] = x11;
      if (!memory_operand (operands[3], E_SImode))
        return -1;
      x17 = XEXP (x7, 1);
      operands[1] = x17;
      if (!s_register_operand (operands[1], E_SImode)
          || !
#line 184 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldrdstrd.md"
(TARGET_LDRD && TARGET_ARM && reload_completed
  && valid_operands_ldrd_strd (operands, false)))
        return -1;
      return 349; /* *arm_strd */

    case CONST_DOUBLE:
      switch (pattern17 (x1))
        {
        case 0:
          if (!
#line 2000 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(arm_disable_literal_pool
   && TARGET_HARD_FLOAT
   && !arm_const_double_rtx (operands[1])
   && !(TARGET_VFP_DOUBLE && vfp3_const_double_rtx (operands[1]))))
            return -1;
          return 808; /* no_literal_pool_df_immediate */

        case 1:
          if (!
#line 2026 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(arm_disable_literal_pool
   && TARGET_HARD_FLOAT
   && !vfp3_const_double_rtx (operands[1])))
            return -1;
          return 809; /* no_literal_pool_sf_immediate */

        default:
          return -1;
        }

    case SIGN_EXTEND:
      if (GET_MODE (x3) != E_SImode)
        return -1;
      x7 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x7) != CLOBBER)
        return -1;
      x8 = XEXP (x2, 0);
      operands[0] = x8;
      if (!register_operand (operands[0], E_SImode))
        return -1;
      x4 = XEXP (x3, 0);
      operands[1] = x4;
      if (!nonimmediate_operand (operands[1], E_HImode))
        return -1;
      x11 = XEXP (x7, 0);
      operands[2] = x11;
      if (!scratch_operand (operands[2], E_SImode)
          || !
#line 446 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 832; /* thumb1_extendhisi2 */

    case MULT:
    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      operands[3] = x3;
      if (shift_operator (operands[3], E_SImode)
          && pattern11 (x1) == 0
          && low_register_operand (operands[0], E_SImode))
        {
          x4 = XEXP (x3, 0);
          operands[1] = x4;
          if (low_register_operand (operands[1], E_SImode))
            {
              x14 = XEXP (x3, 1);
              operands[2] = x14;
              if (low_reg_or_int_operand (operands[2], E_SImode)
                  && 
#line 1224 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed
   && ((GET_CODE(operands[3]) != ROTATE && GET_CODE(operands[3]) != ROTATERT)
       || REG_P (operands[2]))))
                return 919; /* *thumb2_shiftsi3_short */
            }
        }
      if (GET_CODE (x3) != MULT
          || GET_MODE (x3) != E_SImode
          || pattern11 (x1) != 0
          || !low_register_operand (operands[0], E_SImode))
        return -1;
      x4 = XEXP (x3, 0);
      operands[1] = x4;
      if (!low_register_operand (operands[1], E_SImode))
        return -1;
      x14 = XEXP (x3, 1);
      operands[2] = x14;
      if (!low_register_operand (operands[2], E_SImode)
          || !
#line 1380 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && optimize_size && reload_completed))
        return -1;
      return 927; /* *thumb2_mulsi_short */

    case CONST_INT:
      operands[1] = x3;
      if (pattern11 (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 1240 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
            return -1;
          return 920; /* *thumb2_movqi_shortim */

        case E_HImode:
          if (!low_register_operand (operands[0], E_HImode)
              || !const_int_operand (operands[1], E_HImode)
              || !
#line 1240 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
            return -1;
          return 921; /* *thumb2_movhi_shortim */

        case E_SImode:
          if (!low_register_operand (operands[0], E_SImode)
              || !const_int_operand (operands[1], E_SImode)
              || !
#line 1240 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
            return -1;
          return 922; /* *thumb2_movsi_shortim */

        default:
          return -1;
        }

    case UNSPEC_VOLATILE:
      return recog_29 (x1, insn, pnum_clobbers);

    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, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  switch (GET_CODE (x2))
    {
    case SET:
      return recog_31 (x1, insn, pnum_clobbers);

    case CALL:
      if (pnum_clobbers == NULL)
        return -1;
      x3 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x3) != USE)
        return -1;
      switch (pattern7 (x2))
        {
        case 0:
          x4 = XEXP (x3, 0);
          operands[2] = x4;
          if (s_register_operand (operands[0], E_SImode))
            {
              if (
#line 8202 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch5t && !SIBLING_CALL_P (insn)))
                {
                  *pnum_clobbers = 1;
                  return 214; /* *call_reg_armv5 */
                }
              if (
#line 8212 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && !arm_arch5t && !SIBLING_CALL_P (insn)))
                {
                  *pnum_clobbers = 1;
                  return 215; /* *call_reg_arm */
                }
            }
          if (
#line 8321 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 218; /* *call_symbol */
            }
          if (register_operand (operands[0], E_SImode))
            {
              if (
#line 1728 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && arm_arch5t && !SIBLING_CALL_P (insn)))
                {
                  *pnum_clobbers = 1;
                  return 860; /* *call_reg_thumb1_v5 */
                }
              if (
#line 1751 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && !arm_arch5t && !SIBLING_CALL_P (insn)))
                {
                  *pnum_clobbers = 1;
                  return 862; /* *call_reg_thumb1 */
                }
            }
          if (
#line 1818 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 866; /* *call_insn */
            }
          if (!s_register_operand (operands[0], E_SImode)
              || !
#line 559 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
            return -1;
          *pnum_clobbers = 1;
          return 896; /* *call_reg_thumb2 */

        case 1:
          x5 = XEXP (x2, 1);
          operands[0] = x5;
          x4 = XEXP (x3, 0);
          operands[1] = x4;
          if (
#line 1740 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && use_cmse && !SIBLING_CALL_P (insn)))
            {
              *pnum_clobbers = 1;
              return 861; /* *nonsecure_call_reg_thumb1_v5 */
            }
          if (!
#line 570 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && use_cmse))
            return -1;
          *pnum_clobbers = 1;
          return 897; /* *nonsecure_call_reg_thumb2 */

        default:
          return -1;
        }

    case RETURN:
      x3 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x3) != SET)
        return -1;
      x6 = XEXP (x3, 1);
      if (pattern18 (x6, POST_INC, MEM) != 0)
        return -1;
      x4 = XEXP (x3, 0);
      if (GET_CODE (x4) != REG
          || REGNO (x4) != 15
          || GET_MODE (x4) != E_SImode)
        return -1;
      x7 = XEXP (x6, 0);
      x8 = XEXP (x7, 0);
      operands[0] = x8;
      if (!s_register_operand (operands[0], E_SImode)
          || !
#line 11389 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && (reload_in_progress || reload_completed)))
        return -1;
      return 311; /* *ldr_with_return */

    case UNSPEC_VOLATILE:
      switch (XVECLEN (x2, 0))
        {
        case 1:
          if (pattern19 (x1) != 0)
            return -1;
          if (
#line 11648 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return 326; /* arm_eh_return */
          if (
#line 1954 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return 874; /* thumb_eh_return */
          if (!
#line 1192 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
            return -1;
          return 917; /* thumb2_eh_return */

        case 6:
          if (pattern20 (x1, E_SImode) != 0)
            return -1;
          x9 = XVECEXP (x2, 0, 4);
          operands[4] = x9;
          if (!immediate_operand (operands[4], E_SImode))
            return -1;
          x10 = XVECEXP (x2, 0, 5);
          operands[5] = x10;
          if (!immediate_operand (operands[5], E_SImode))
            return -1;
          x3 = XVECEXP (x1, 0, 1);
          x4 = XEXP (x3, 0);
          if (!rtx_equal_p (x4, operands[2]))
            return -1;
          switch (XINT (x2, 1))
            {
            case 40:
              if (!
#line 12243 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_MCR)))
                return -1;
              return 418; /* mcr */

            case 41:
              if (!
#line 12243 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_MCR2)))
                return -1;
              return 419; /* mcr2 */

            default:
              return -1;
            }

        case 4:
          if (pattern20 (x1, E_DImode) != 0)
            return -1;
          x3 = XVECEXP (x1, 0, 1);
          x4 = XEXP (x3, 0);
          if (!rtx_equal_p (x4, operands[2]))
            return -1;
          switch (XINT (x2, 1))
            {
            case 44:
              if (!
#line 12280 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_MCRR)))
                return -1;
              return 422; /* mcrr */

            case 45:
              if (!
#line 12280 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_MCRR2)))
                return -1;
              return 423; /* mcrr2 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    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, x21;
  int res ATTRIBUTE_UNUSED;
  x2 = XVECEXP (x1, 0, 0);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case LEU:
      if (pattern128 (x3) != 0)
        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)
        return -1;
      x7 = XVECEXP (x1, 0, 2);
      if (GET_CODE (x7) != USE)
        return -1;
      x8 = XEXP (x7, 0);
      if (GET_CODE (x8) != LABEL_REF
          || GET_MODE (x8) != E_SImode)
        return -1;
      x9 = XEXP (x4, 0);
      operands[0] = x9;
      x10 = XEXP (x4, 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 (x8, 0);
      if (!rtx_equal_p (x19, operands[2])
          || !
#line 8976 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      return 236; /* *arm_casesi_internal */

    case NE:
    case EQ:
      operands[3] = x4;
      if (!equality_operator (operands[3], E_VOIDmode))
        return -1;
      x10 = XEXP (x4, 1);
      if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x11 = XEXP (x3, 1);
      if (GET_CODE (x11) != LABEL_REF)
        return -1;
      x15 = XEXP (x3, 2);
      if (GET_CODE (x15) != PC)
        return -1;
      x5 = XVECEXP (x1, 0, 1);
      if (pattern330 (x5) != 0)
        return -1;
      x7 = XVECEXP (x1, 0, 2);
      if (GET_CODE (x7) != CLOBBER)
        return -1;
      x9 = XEXP (x4, 0);
      operands[2] = x9;
      x12 = XEXP (x11, 0);
      operands[4] = x12;
      x6 = XEXP (x5, 0);
      operands[0] = x6;
      if (!thumb_cbrch_target_operand (operands[0], E_SImode))
        return -1;
      x8 = XEXP (x7, 0);
      operands[1] = x8;
      if (!scratch_operand (operands[1], E_SImode))
        return -1;
      x20 = XEXP (x5, 1);
      x21 = XEXP (x20, 0);
      if (!rtx_equal_p (x21, operands[2])
          || !
#line 1360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 850; /* *cbranchne_decr1 */

    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, 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:
      switch (pattern7 (x2))
        {
        case 0:
          x3 = XVECEXP (x1, 0, 1);
          switch (GET_CODE (x3))
            {
            case USE:
              x4 = XVECEXP (x1, 0, 2);
              if (pattern126 (x4, E_SImode, 14) != 0)
                return -1;
              x5 = XEXP (x3, 0);
              operands[2] = x5;
              if (s_register_operand (operands[0], E_SImode))
                {
                  if (
#line 8202 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch5t && !SIBLING_CALL_P (insn)))
                    return 214; /* *call_reg_armv5 */
                  if (
#line 8212 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && !arm_arch5t && !SIBLING_CALL_P (insn)))
                    return 215; /* *call_reg_arm */
                }
              if (
#line 8321 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 218; /* *call_symbol */
              if (register_operand (operands[0], E_SImode))
                {
                  if (
#line 1728 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && arm_arch5t && !SIBLING_CALL_P (insn)))
                    return 860; /* *call_reg_thumb1_v5 */
                  if (
#line 1751 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && !arm_arch5t && !SIBLING_CALL_P (insn)))
                    return 862; /* *call_reg_thumb1 */
                }
              if (
#line 1818 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1
   && GET_CODE (operands[0]) == SYMBOL_REF
   && !arm_is_long_call_p (SYMBOL_REF_DECL (operands[0]))))
                return 866; /* *call_insn */
              if (!s_register_operand (operands[0], E_SImode)
                  || !
#line 559 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
                return -1;
              return 896; /* *call_reg_thumb2 */

            case RETURN:
              x4 = XVECEXP (x1, 0, 2);
              if (GET_CODE (x4) != USE
                  || !call_insn_operand (operands[0], E_SImode))
                return -1;
              x6 = XEXP (x4, 0);
              operands[2] = x6;
              if (!
#line 8434 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && SIBLING_CALL_P (insn)))
                return -1;
              return 220; /* *sibcall_insn */

            default:
              return -1;
            }

        case 1:
          x3 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x3) != USE)
            return -1;
          x4 = XVECEXP (x1, 0, 2);
          if (pattern126 (x4, E_SImode, 14) != 0)
            return -1;
          x7 = XEXP (x2, 1);
          operands[0] = x7;
          x5 = XEXP (x3, 0);
          operands[1] = x5;
          if (
#line 1740 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && use_cmse && !SIBLING_CALL_P (insn)))
            return 861; /* *nonsecure_call_reg_thumb1_v5 */
          if (!
#line 570 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && use_cmse))
            return -1;
          return 897; /* *nonsecure_call_reg_thumb2 */

        default:
          return -1;
        }

    case SET:
      x7 = XEXP (x2, 1);
      switch (GET_CODE (x7))
        {
        case CALL:
          switch (pattern21 (x2))
            {
            case 0:
              x3 = XVECEXP (x1, 0, 1);
              switch (GET_CODE (x3))
                {
                case USE:
                  x4 = XVECEXP (x1, 0, 2);
                  if (pattern126 (x4, E_SImode, 14) != 0)
                    return -1;
                  x5 = XEXP (x3, 0);
                  operands[3] = x5;
                  if (s_register_operand (operands[1], E_SImode))
                    {
                      if (
#line 8294 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch5t && !SIBLING_CALL_P (insn)))
                        return 216; /* *call_value_reg_armv5 */
                      if (
#line 8305 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && !arm_arch5t && !SIBLING_CALL_P (insn)))
                        return 217; /* *call_value_reg_arm */
                    }
                  if (
#line 8345 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 219; /* *call_value_symbol */
                  if (register_operand (operands[1], E_SImode))
                    {
                      if (
#line 1772 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && arm_arch5t))
                        return 863; /* *call_value_reg_thumb1_v5 */
                      if (
#line 1798 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && !arm_arch5t))
                        return 865; /* *call_value_reg_thumb1 */
                    }
                  if (
#line 1832 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1
   && GET_CODE (operands[1]) == SYMBOL_REF
   && !arm_is_long_call_p (SYMBOL_REF_DECL (operands[1]))))
                    return 867; /* *call_value_insn */
                  if (!register_operand (operands[1], E_SImode)
                      || !
#line 582 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
                    return -1;
                  return 898; /* *call_value_reg_thumb2 */

                case RETURN:
                  x4 = XVECEXP (x1, 0, 2);
                  if (GET_CODE (x4) != USE
                      || !call_insn_operand (operands[1], E_SImode))
                    return -1;
                  x6 = XEXP (x4, 0);
                  operands[3] = x6;
                  if (!
#line 8455 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && SIBLING_CALL_P (insn)))
                    return -1;
                  return 221; /* *sibcall_value_insn */

                default:
                  return -1;
                }

            case 1:
              x3 = XVECEXP (x1, 0, 1);
              if (GET_CODE (x3) != USE)
                return -1;
              x4 = XVECEXP (x1, 0, 2);
              if (pattern126 (x4, E_SImode, 14) != 0)
                return -1;
              x8 = XEXP (x7, 1);
              operands[1] = x8;
              x5 = XEXP (x3, 0);
              operands[2] = x5;
              if (
#line 1786 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && use_cmse))
                return 864; /* *nonsecure_call_value_reg_thumb1_v5 */
              if (!
#line 595 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && use_cmse))
                return -1;
              return 899; /* *nonsecure_call_value_reg_thumb2 */

            default:
              return -1;
            }

        case UNSPEC:
          x3 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x3) != CLOBBER)
            return -1;
          x4 = XVECEXP (x1, 0, 2);
          if (GET_CODE (x4) != CLOBBER)
            return -1;
          switch (XVECLEN (x7, 0))
            {
            case 1:
              if (pattern166 (x7) != 0)
                return -1;
              x9 = XEXP (x2, 0);
              operands[0] = x9;
              if (!memory_operand (operands[0], E_SImode))
                return -1;
              x10 = XVECEXP (x7, 0, 0);
              x11 = XEXP (x10, 0);
              operands[1] = x11;
              if (!guard_addr_operand (operands[1], E_SImode))
                return -1;
              x5 = XEXP (x3, 0);
              operands[2] = x5;
              if (!scratch_operand (operands[2], E_SImode))
                return -1;
              x6 = XEXP (x4, 0);
              operands[3] = x6;
              if (!scratch_operand (operands[3], E_SImode))
                return -1;
              return 232; /* *stack_protect_combined_set_insn */

            case 2:
              if (XINT (x7, 1) != 21)
                return -1;
              x10 = XVECEXP (x7, 0, 0);
              if (GET_CODE (x10) != REG
                  || REGNO (x10) != 0
                  || GET_MODE (x10) != E_SImode)
                return -1;
              x12 = XVECEXP (x7, 0, 1);
              if (GET_CODE (x12) != LABEL_REF)
                return -1;
              x9 = XEXP (x2, 0);
              if (GET_CODE (x9) != PC)
                return -1;
              x5 = XEXP (x3, 0);
              if (GET_CODE (x5) != REG
                  || REGNO (x5) != 12
                  || GET_MODE (x5) != E_SImode)
                return -1;
              x6 = XEXP (x4, 0);
              if (GET_CODE (x6) != REG
                  || REGNO (x6) != 14
                  || GET_MODE (x6) != E_SImode)
                return -1;
              x13 = XEXP (x12, 0);
              operands[0] = x13;
              if (!
#line 1866 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                return -1;
              return 868; /* thumb1_casesi_dispatch */

            default:
              return -1;
            }

        case COMPARE:
          if (GET_MODE (x7) != E_CC_Zmode)
            return -1;
          x14 = XEXP (x7, 0);
          if (GET_CODE (x14) != UNSPEC
              || XVECLEN (x14, 0) != 2
              || XINT (x14, 1) != 38
              || GET_MODE (x14) != E_SImode)
            return -1;
          x15 = XVECEXP (x14, 0, 1);
          if (GET_CODE (x15) != MEM
              || GET_MODE (x15) != E_SImode)
            return -1;
          x8 = XEXP (x7, 1);
          if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x9 = XEXP (x2, 0);
          if (GET_CODE (x9) != REG
              || REGNO (x9) != 100
              || GET_MODE (x9) != E_CC_Zmode)
            return -1;
          x3 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x3) != CLOBBER)
            return -1;
          x4 = XVECEXP (x1, 0, 2);
          if (GET_CODE (x4) != CLOBBER)
            return -1;
          x16 = XVECEXP (x14, 0, 0);
          operands[1] = x16;
          if (!memory_operand (operands[1], E_SImode))
            return -1;
          x17 = XEXP (x15, 0);
          operands[2] = x17;
          if (!register_operand (operands[2], E_SImode))
            return -1;
          x5 = XEXP (x3, 0);
          operands[0] = x5;
          if (!register_operand (operands[0], E_SImode))
            return -1;
          x6 = XEXP (x4, 0);
          if (!rtx_equal_p (x6, operands[2])
              || !
#line 8899 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 235; /* arm_stack_protect_test_insn */

        case IF_THEN_ELSE:
          x14 = XEXP (x7, 0);
          switch (GET_CODE (x14))
            {
            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:
              x9 = XEXP (x2, 0);
              if (GET_CODE (x9) != PC)
                return -1;
              x18 = XEXP (x14, 0);
              if (s_register_operand (x18, E_SImode))
                {
                  res = recog_33 (x1, insn, pnum_clobbers);
                  if (res >= 0)
                    return res;
                }
              if (GET_CODE (x18) != PLUS
                  || GET_MODE (x18) != E_SImode)
                return -1;
              x19 = XEXP (x14, 1);
              if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              x8 = XEXP (x7, 1);
              if (GET_CODE (x8) != LABEL_REF)
                return -1;
              x20 = XEXP (x7, 2);
              if (GET_CODE (x20) != PC)
                return -1;
              x3 = XVECEXP (x1, 0, 1);
              if (GET_CODE (x3) != SET)
                return -1;
              x21 = XEXP (x3, 1);
              if (GET_CODE (x21) != PLUS
                  || GET_MODE (x21) != E_SImode)
                return -1;
              x4 = XVECEXP (x1, 0, 2);
              if (GET_CODE (x4) != CLOBBER)
                return -1;
              operands[4] = x14;
              if (!arm_comparison_operator (operands[4], E_VOIDmode))
                return -1;
              x22 = XEXP (x18, 0);
              operands[2] = x22;
              if (!s_register_operand (operands[2], E_SImode))
                return -1;
              x23 = XEXP (x18, 1);
              operands[3] = x23;
              if (!reg_or_int_operand (operands[3], E_SImode))
                return -1;
              x24 = XEXP (x8, 0);
              operands[5] = x24;
              x5 = XEXP (x3, 0);
              operands[0] = x5;
              if (!thumb_cbrch_target_operand (operands[0], E_SImode))
                return -1;
              x6 = XEXP (x4, 0);
              operands[1] = x6;
              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 1468 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 851; /* *addsi3_cbranch */

            default:
              return -1;
            }

        case NEG:
          if (GET_MODE (x7) != E_DImode)
            return -1;
          x3 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x3) != CLOBBER)
            return -1;
          x4 = XVECEXP (x1, 0, 2);
          if (pattern126 (x4, E_CCmode, 100) != 0)
            return -1;
          x9 = XEXP (x2, 0);
          operands[0] = x9;
          if (!s_register_operand (operands[0], E_DImode))
            return -1;
          x14 = XEXP (x7, 0);
          operands[1] = x14;
          if (!s_register_operand (operands[1], E_DImode))
            return -1;
          x5 = XEXP (x3, 0);
          operands[2] = x5;
          if (!scratch_operand (operands[2], E_DImode)
              || !
#line 948 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1183; /* negdi2_neon */

        case UNSPEC_VOLATILE:
          if (pnum_clobbers == NULL
              || XVECLEN (x7, 0) != 1
              || XINT (x7, 1) != 17)
            return -1;
          x10 = XVECEXP (x7, 0, 0);
          if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            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;
          x27 = XEXP (x4, 1);
          if (GET_CODE (x27) != UNSPEC_VOLATILE
              || XVECLEN (x27, 0) != 5
              || XINT (x27, 1) != 17)
            return -1;
          x9 = XEXP (x2, 0);
          operands[0] = x9;
          x5 = XEXP (x3, 0);
          operands[1] = x5;
          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 (pattern121 (x1))
            {
            case 0:
              if (!(
#line 204 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 49 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_32BIT)))
                return -1;
              *pnum_clobbers = 1;
              return 2664; /* atomic_compare_and_swap32qi_1 */

            case 1:
              if (!(
#line 204 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 49 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_32BIT)))
                return -1;
              *pnum_clobbers = 1;
              return 2665; /* atomic_compare_and_swap32hi_1 */

            case 2:
              if (!(
#line 204 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 49 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_THUMB1)))
                return -1;
              *pnum_clobbers = 1;
              return 2666; /* atomic_compare_and_swapt1qi_1 */

            case 3:
              if (!(
#line 204 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 49 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_THUMB1)))
                return -1;
              *pnum_clobbers = 1;
              return 2667; /* atomic_compare_and_swapt1hi_1 */

            case 4:
              if (!(
#line 235 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 49 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_32BIT)))
                return -1;
              *pnum_clobbers = 1;
              return 2668; /* atomic_compare_and_swap32si_1 */

            case 5:
              if (!(
#line 235 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 49 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_32BIT)))
                return -1;
              *pnum_clobbers = 1;
              return 2669; /* atomic_compare_and_swap32di_1 */

            case 6:
              if (!(
#line 235 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 49 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_THUMB1)))
                return -1;
              *pnum_clobbers = 1;
              return 2670; /* atomic_compare_and_swapt1si_1 */

            case 7:
              if (!(
#line 235 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 49 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_THUMB1)))
                return -1;
              *pnum_clobbers = 1;
              return 2671; /* atomic_compare_and_swapt1di_1 */

            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, 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 (pattern193 (x9) != 0)
            return -1;
          x10 = XEXP (x3, 1);
          if (GET_CODE (x10) != LABEL_REF)
            return -1;
          x11 = XEXP (x3, 2);
          if (GET_CODE (x11) != PC)
            return -1;
          x12 = XVECEXP (x1, 0, 3);
          if (GET_CODE (x12) != CLOBBER)
            return -1;
          x13 = XEXP (x12, 0);
          if (GET_CODE (x13) != REG
              || REGNO (x13) != 100
              || GET_MODE (x13) != E_CCmode)
            return -1;
          x14 = XEXP (x8, 0);
          operands[0] = x14;
          if (!memory_operand (operands[0], E_SImode))
            return -1;
          x15 = XVECEXP (x9, 0, 0);
          x16 = XEXP (x15, 0);
          operands[1] = x16;
          if (!guard_addr_operand (operands[1], E_SImode))
            return -1;
          x17 = XEXP (x10, 0);
          operands[2] = x17;
          x18 = XEXP (x5, 0);
          operands[3] = x18;
          if (!scratch_operand (operands[3], E_SImode))
            return -1;
          return 234; /* *stack_protect_combined_test_insn */

        case LEU:
          if (pattern128 (x3) != 0)
            return -1;
          x18 = XEXP (x5, 0);
          if (GET_CODE (x18) != REG
              || REGNO (x18) != 100
              || GET_MODE (x18) != E_CCmode)
            return -1;
          x12 = XVECEXP (x1, 0, 3);
          if (GET_CODE (x12) != USE)
            return -1;
          x13 = XEXP (x12, 0);
          if (GET_CODE (x13) != LABEL_REF
              || GET_MODE (x13) != E_SImode)
            return -1;
          x14 = XEXP (x8, 0);
          operands[0] = x14;
          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;
          x10 = XEXP (x3, 1);
          x17 = XEXP (x10, 0);
          x19 = XEXP (x17, 1);
          x20 = XEXP (x19, 0);
          operands[2] = x20;
          x11 = XEXP (x3, 2);
          x21 = XEXP (x11, 0);
          operands[3] = x21;
          x22 = XEXP (x17, 0);
          x23 = XEXP (x22, 0);
          if (!rtx_equal_p (x23, operands[0]))
            return -1;
          x24 = XEXP (x13, 0);
          if (!rtx_equal_p (x24, operands[2])
              || !
#line 1114 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !flag_pic))
            return -1;
          return 913; /* *thumb2_casesi_internal */

        default:
          return -1;
        }

    case UNSPEC:
      if (XINT (x3, 1) != 17)
        return -1;
      x4 = XEXP (x2, 0);
      if (GET_CODE (x4) != REG
          || REGNO (x4) != 0
          || GET_MODE (x4) != E_SImode)
        return -1;
      x5 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x5) != CLOBBER)
        return -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;
      x12 = XVECEXP (x1, 0, 3);
      if (GET_CODE (x12) != CLOBBER)
        return -1;
      x13 = XEXP (x12, 0);
      if (GET_CODE (x13) != REG
          || REGNO (x13) != 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 (x13) != E_CCmode
              || !
#line 11677 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_SOFT_TP))
            return -1;
          return 328; /* 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 (x13) != E_SImode
              || !
#line 11692 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_GNU2_TLS))
            return -1;
          return 329; /* tlscall */

        default:
          return -1;
        }

    case MEM:
      if (pnum_clobbers != NULL
          && pattern30 (x1) == 0
          && pattern434 (x1) == 0
          && pattern445 (x1) == 0
          && 
#line 964 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        {
          *pnum_clobbers = 2;
          return 842; /* movmem8b */
        }
      operands[1] = x3;
      if (pattern118 (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;
      x12 = XVECEXP (x1, 0, 3);
      x13 = XEXP (x12, 0);
      operands[4] = x13;
      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 (pattern395 (x28, E_QImode) != 0
              || !
#line 255 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2672; /* atomic_exchangeqi */

        case E_HImode:
          if (pattern395 (x28, E_HImode) != 0
              || !
#line 255 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2673; /* atomic_exchangehi */

        case E_DImode:
          if (pattern395 (x28, E_DImode) != 0
              || !
#line 255 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2675; /* atomic_exchangedi */

        default:
          return -1;
        }

    case UNSPEC_VOLATILE:
      x12 = XVECEXP (x1, 0, 3);
      if (GET_CODE (x12) != CLOBBER)
        return -1;
      switch (pattern125 (x1))
        {
        case 0:
          if (!(
#line 204 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 49 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_32BIT)))
            return -1;
          return 2664; /* atomic_compare_and_swap32qi_1 */

        case 1:
          if (!(
#line 204 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 49 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_32BIT)))
            return -1;
          return 2665; /* atomic_compare_and_swap32hi_1 */

        case 2:
          if (!(
#line 204 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 49 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_THUMB1)))
            return -1;
          return 2666; /* atomic_compare_and_swapt1qi_1 */

        case 3:
          if (!(
#line 204 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 49 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_THUMB1)))
            return -1;
          return 2667; /* atomic_compare_and_swapt1hi_1 */

        case 4:
          if (!(
#line 235 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 49 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_32BIT)))
            return -1;
          return 2668; /* atomic_compare_and_swap32si_1 */

        case 5:
          if (!(
#line 235 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 49 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_32BIT)))
            return -1;
          return 2669; /* atomic_compare_and_swap32di_1 */

        case 6:
          if (!(
#line 235 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 49 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_THUMB1)))
            return -1;
          return 2670; /* atomic_compare_and_swapt1si_1 */

        case 7:
          if (!(
#line 235 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 49 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_THUMB1)))
            return -1;
          return 2671; /* atomic_compare_and_swapt1di_1 */

        case 8:
          if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2676; /* atomic_addqi */

        case 9:
          if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2681; /* atomic_addhi */

        case 10:
          if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2686; /* atomic_addsi */

        case 11:
          if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2691; /* atomic_adddi */

        case 12:
          if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2677; /* atomic_subqi */

        case 13:
          if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2682; /* atomic_subhi */

        case 14:
          if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2687; /* atomic_subsi */

        case 15:
          if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2692; /* atomic_subdi */

        case 16:
          if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2678; /* atomic_orqi */

        case 17:
          if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2683; /* atomic_orhi */

        case 18:
          if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2688; /* atomic_orsi */

        case 19:
          if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2693; /* atomic_ordi */

        case 20:
          if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2679; /* atomic_xorqi */

        case 21:
          if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2684; /* atomic_xorhi */

        case 22:
          if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2689; /* atomic_xorsi */

        case 23:
          if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2694; /* atomic_xordi */

        case 24:
          if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2680; /* atomic_andqi */

        case 25:
          if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2685; /* atomic_andhi */

        case 26:
          if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2690; /* atomic_andsi */

        case 27:
          if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2695; /* atomic_anddi */

        case 28:
          if (!
#line 320 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2696; /* atomic_nandqi */

        case 29:
          if (!
#line 320 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2697; /* atomic_nandhi */

        case 30:
          if (!
#line 320 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2698; /* atomic_nandsi */

        case 31:
          if (!
#line 320 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2699; /* atomic_nanddi */

        default:
          return -1;
        }

    case PLUS:
      switch (pattern25 (x1))
        {
        case 0:
          if (!
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2724; /* atomic_add_fetchqi */

        case 1:
          if (!
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2729; /* atomic_add_fetchhi */

        case 2:
          if (!
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2734; /* atomic_add_fetchsi */

        case 3:
          if (!
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2739; /* atomic_add_fetchdi */

        default:
          return -1;
        }

    case MINUS:
      switch (pattern25 (x1))
        {
        case 0:
          if (!
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2725; /* atomic_sub_fetchqi */

        case 1:
          if (!
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2730; /* atomic_sub_fetchhi */

        case 2:
          if (!
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2735; /* atomic_sub_fetchsi */

        case 3:
          if (!
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2740; /* atomic_sub_fetchdi */

        default:
          return -1;
        }

    case IOR:
      switch (pattern25 (x1))
        {
        case 0:
          if (!
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2726; /* atomic_or_fetchqi */

        case 1:
          if (!
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2731; /* atomic_or_fetchhi */

        case 2:
          if (!
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2736; /* atomic_or_fetchsi */

        case 3:
          if (!
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2741; /* atomic_or_fetchdi */

        default:
          return -1;
        }

    case XOR:
      switch (pattern25 (x1))
        {
        case 0:
          if (!
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2727; /* atomic_xor_fetchqi */

        case 1:
          if (!
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2732; /* atomic_xor_fetchhi */

        case 2:
          if (!
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2737; /* atomic_xor_fetchsi */

        case 3:
          if (!
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2742; /* atomic_xor_fetchdi */

        default:
          return -1;
        }

    case AND:
      switch (pattern25 (x1))
        {
        case 0:
          if (!
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2728; /* atomic_and_fetchqi */

        case 1:
          if (!
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2733; /* atomic_and_fetchhi */

        case 2:
          if (!
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2738; /* atomic_and_fetchsi */

        case 3:
          if (!
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2743; /* atomic_and_fetchdi */

        default:
          return -1;
        }

    case NOT:
      x8 = XEXP (x3, 0);
      if (GET_CODE (x8) != AND
          || pattern118 (x1, 19, 3) != 0)
        return -1;
      switch (pattern357 (x1))
        {
        case 0:
          if (!
#line 437 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2744; /* atomic_nand_fetchqi */

        case 1:
          if (!
#line 437 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2745; /* atomic_nand_fetchhi */

        case 2:
          if (!
#line 437 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2746; /* atomic_nand_fetchsi */

        case 3:
          if (!
#line 437 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2747; /* atomic_nand_fetchdi */

        default:
          return -1;
        }

    case SS_MULT:
      if (pattern26 (x1, E_SAmode) != 0
          || !
#line 208 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT && arm_arch6))
        return -1;
      return 2818; /* ssmulsa3 */

    case US_MULT:
      if (pattern26 (x1, E_USAmode) != 0
          || !
#line 268 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT && arm_arch6))
        return -1;
      return 2819; /* usmulusa3 */

    default:
      return -1;
    }
}

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;
  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
      || pattern27 (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
      || pattern447 (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)
      || pattern460 (x1) != 0
      || !
#line 945 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
    return -1;
  return 841; /* movmem12b */
}

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, 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 = XEXP (x2, 1);
  switch (GET_CODE (x3))
    {
    case MEM:
      if (pnum_clobbers != NULL
          && pattern27 (x1) == 0
          && pattern447 (x1) == 0
          && pattern460 (x1) == 0
          && 
#line 945 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        {
          *pnum_clobbers = 3;
          return 841; /* movmem12b */
        }
      operands[1] = x3;
      if (pattern127 (x1, 19, 2) != 0)
        return -1;
      x4 = XVECEXP (x1, 0, 3);
      if (GET_CODE (x4) != CLOBBER)
        return -1;
      x5 = XVECEXP (x1, 0, 4);
      if (GET_CODE (x5) != CLOBBER)
        return -1;
      x6 = XEXP (x2, 0);
      operands[0] = x6;
      switch (pattern384 (x1))
        {
        case 0:
          x7 = XVECEXP (x1, 0, 1);
          x8 = XEXP (x7, 1);
          switch (pattern427 (x8))
            {
            case 0:
              if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2700; /* atomic_fetch_addqi */

            case 1:
              if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2705; /* atomic_fetch_addhi */

            case 2:
              if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2715; /* atomic_fetch_adddi */

            default:
              return -1;
            }

        case 1:
          x7 = XVECEXP (x1, 0, 1);
          x8 = XEXP (x7, 1);
          switch (pattern427 (x8))
            {
            case 0:
              if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2701; /* atomic_fetch_subqi */

            case 1:
              if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2706; /* atomic_fetch_subhi */

            case 2:
              if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2716; /* atomic_fetch_subdi */

            default:
              return -1;
            }

        case 2:
          x7 = XVECEXP (x1, 0, 1);
          x8 = XEXP (x7, 1);
          switch (pattern427 (x8))
            {
            case 0:
              if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2702; /* atomic_fetch_orqi */

            case 1:
              if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2707; /* atomic_fetch_orhi */

            case 2:
              if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2717; /* atomic_fetch_ordi */

            default:
              return -1;
            }

        case 3:
          x7 = XVECEXP (x1, 0, 1);
          x8 = XEXP (x7, 1);
          switch (pattern427 (x8))
            {
            case 0:
              if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2703; /* atomic_fetch_xorqi */

            case 1:
              if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2708; /* atomic_fetch_xorhi */

            case 2:
              if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2718; /* atomic_fetch_xordi */

            default:
              return -1;
            }

        case 4:
          x7 = XVECEXP (x1, 0, 1);
          x8 = XEXP (x7, 1);
          switch (pattern427 (x8))
            {
            case 0:
              if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2704; /* atomic_fetch_andqi */

            case 1:
              if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2709; /* atomic_fetch_andhi */

            case 2:
              if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2719; /* atomic_fetch_anddi */

            default:
              return -1;
            }

        case 5:
          x7 = XVECEXP (x1, 0, 1);
          x8 = XEXP (x7, 1);
          x9 = XVECEXP (x8, 0, 0);
          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 (pattern435 (x8, E_QImode) != 0
                  || !
#line 386 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2720; /* atomic_fetch_nandqi */

            case E_HImode:
              if (pattern435 (x8, E_HImode) != 0
                  || !
#line 386 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2721; /* atomic_fetch_nandhi */

            case E_DImode:
              if (pattern436 (x8) != 0
                  || !
#line 386 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2723; /* atomic_fetch_nanddi */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case IF_THEN_ELSE:
      x13 = XEXP (x3, 0);
      if (GET_CODE (x13) != LEU
          || pattern128 (x3) != 0)
        return -1;
      x6 = XEXP (x2, 0);
      if (GET_CODE (x6) != PC)
        return -1;
      x7 = XVECEXP (x1, 0, 1);
      if (pattern215 (x7) != 0)
        return -1;
      x14 = XVECEXP (x1, 0, 2);
      if (GET_CODE (x14) != CLOBBER)
        return -1;
      x4 = XVECEXP (x1, 0, 3);
      if (GET_CODE (x4) != CLOBBER)
        return -1;
      x5 = XVECEXP (x1, 0, 4);
      if (GET_CODE (x5) != USE)
        return -1;
      x15 = XEXP (x5, 0);
      if (GET_CODE (x15) != LABEL_REF
          || GET_MODE (x15) != E_SImode)
        return -1;
      x16 = XEXP (x13, 0);
      operands[0] = x16;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x17 = XEXP (x13, 1);
      operands[1] = x17;
      if (!arm_rhs_operand (operands[1], E_SImode))
        return -1;
      x18 = XEXP (x3, 1);
      x19 = XEXP (x18, 0);
      x20 = XEXP (x19, 1);
      x21 = XEXP (x20, 0);
      operands[2] = x21;
      x22 = XEXP (x3, 2);
      x23 = XEXP (x22, 0);
      operands[3] = x23;
      x24 = XEXP (x14, 0);
      operands[4] = x24;
      if (!scratch_operand (operands[4], E_SImode))
        return -1;
      x25 = XEXP (x4, 0);
      operands[5] = x25;
      if (!scratch_operand (operands[5], E_SImode))
        return -1;
      x26 = XEXP (x19, 0);
      x27 = XEXP (x26, 0);
      if (!rtx_equal_p (x27, operands[0]))
        return -1;
      x28 = XEXP (x15, 0);
      if (!rtx_equal_p (x28, operands[2])
          || !
#line 1154 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && flag_pic))
        return -1;
      return 914; /* *thumb2_casesi_internal_pic */

    case ASHIFT:
      if (GET_MODE (x3) != E_DImode)
        return -1;
      x7 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x7) != CLOBBER)
        return -1;
      x14 = XVECEXP (x1, 0, 2);
      if (GET_CODE (x14) != CLOBBER)
        return -1;
      x4 = XVECEXP (x1, 0, 3);
      if (GET_CODE (x4) != CLOBBER)
        return -1;
      x5 = XVECEXP (x1, 0, 4);
      if (GET_CODE (x5) != CLOBBER)
        return -1;
      x15 = XEXP (x5, 0);
      if (GET_CODE (x15) != REG
          || REGNO (x15) != 100
          || GET_MODE (x15) != E_CC_Cmode)
        return -1;
      x6 = XEXP (x2, 0);
      operands[0] = x6;
      if (pattern331 (x1) != 0
          || !
#line 1213 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1264; /* ashldi3_neon */

    case ASHIFTRT:
      if (pattern29 (x1) != 0
          || !
#line 1309 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1269; /* ashrdi3_neon */

    case LSHIFTRT:
      if (pattern29 (x1) != 0
          || !
#line 1309 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1270; /* lshrdi3_neon */

    default:
      return -1;
    }
}

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;
  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
      || pattern30 (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
      || pattern434 (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)
      || pattern445 (x1) != 0
      || !
#line 964 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
    return -1;
  return 842; /* movmem8b */
}

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;
  int res ATTRIBUTE_UNUSED;
  if (!multi_register_push (operands[2], E_VOIDmode))
    return -1;
  x2 = XVECEXP (x1, 0, 0);
  if (GET_CODE (x2) != SET)
    return -1;
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != UNSPEC
      || XVECLEN (x3, 0) != 1
      || XINT (x3, 1) != 0
      || GET_MODE (x3) != E_BLKmode)
    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 306; /* *push_multi */
  if (!vfp_register_operand (operands[1], E_DFmode)
      || !memory_operand (operands[0], E_BLKmode)
      || !
#line 1885 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
    return -1;
  return 771; /* *push_multi_vfp */
}

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;
  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 11311 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && (reload_in_progress || reload_completed)))
                                return 308; /* *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 11402 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
            return -1;
          return 312; /* *vfp_pop_multiple_with_writeback */

        case MEM:
          if (pattern167 (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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 2))
            return -1;
          return 399; /* *ldm2_da */

        case REG:
          if (pattern168 (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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 2))
            return -1;
          return 401; /* *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 11367 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && (reload_in_progress || reload_completed)))
        return -1;
      return 310; /* *pop_multiple_with_return */

    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;
  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 11344 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && (reload_in_progress || reload_completed)))
        return -1;
      return 309; /* *pop_multiple_with_writeback_and_return */

    case SET:
      x12 = XEXP (x4, 1);
      switch (GET_CODE (x12))
        {
        case MEM:
          if (pattern167 (x12, -8) != 0)
            return -1;
          x5 = XEXP (x2, 1);
          if (pattern293 (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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3))
            return -1;
          return 380; /* *ldm3_da */

        case REG:
          if (pattern168 (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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3))
            return -1;
          return 382; /* *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 (pattern332 (x2))
                {
                case 0:
                  x6 = XEXP (x3, 1);
                  if (pattern333 (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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3))
                        return 390; /* *ldm2_ia_update */
                      if (!low_register_operand (operands[1], E_SImode)
                          || !low_register_operand (operands[2], E_SImode)
                          || !
#line 894 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_THUMB1 && XVECLEN (operands[0], 0) == 3))
                        return -1;
                      return 391; /* *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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3))
                        return -1;
                      return 396; /* *ldm2_ib_update */

                    default:
                      return -1;
                    }

                case 1:
                  x9 = XEXP (x3, 0);
                  if (pattern385 (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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3))
                        return 393; /* *stm2_ia_update */
                      if (!low_register_operand (operands[1], E_SImode)
                          || !low_register_operand (operands[2], E_SImode)
                          || !
#line 930 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_THUMB1 && XVECLEN (operands[0], 0) == 3))
                        return -1;
                      return 394; /* *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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3))
                        return -1;
                      return 398; /* *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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3))
                        return -1;
                      return 400; /* *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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3))
                        return -1;
                      return 404; /* *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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3))
                        return -1;
                      return 402; /* *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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3))
                        return -1;
                      return 406; /* *stm2_db_update */

                    default:
                      return -1;
                    }

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

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, 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
          || pattern274 (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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4))
            return 350; /* *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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_THUMB1 && XVECLEN (operands[0], 0) == 4))
            return -1;
          return 351; /* *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 (pattern451 (x19, 16) != 0
                  || !
#line 160 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4))
                return -1;
              return 357; /* *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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4))
                return -1;
              return 361; /* *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 (pattern451 (x19, -4) != 0
                  || !
#line 302 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4))
                return -1;
              return 365; /* *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
          || pattern312 (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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4))
            return -1;
          return 354; /* *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 (pattern452 (x31, 16) != 0
                  || !
#line 196 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4))
                return -1;
              return 359; /* *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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4))
                return -1;
              return 363; /* *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 (pattern452 (x31, -4) != 0
                  || !
#line 338 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4))
                return -1;
              return 367; /* *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 (pattern332 (x3))
            {
            case 0:
              if (pattern273 (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 (pattern441 (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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4))
                    return 371; /* *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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_THUMB1 && XVECLEN (operands[0], 0) == 4))
                    return -1;
                  return 372; /* *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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4))
                    return -1;
                  return 377; /* *ldm3_ib_update */

                default:
                  return -1;
                }

            case 1:
              if (pattern311 (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 (pattern443 (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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4))
                    return 374; /* *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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_THUMB1 && XVECLEN (operands[0], 0) == 4))
                    return -1;
                  return 375; /* *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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4))
                    return -1;
                  return 379; /* *stm3_ib_update */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case -12L:
          x7 = XEXP (x3, 1);
          switch (GET_CODE (x7))
            {
            case MEM:
              if (pattern274 (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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4))
                    return -1;
                  return 381; /* *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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4))
                    return -1;
                  return 385; /* *ldm3_db_update */

                default:
                  return -1;
                }

            case REG:
              operands[1] = x7;
              if (!arm_hard_general_register_operand (operands[1], E_SImode)
                  || pattern312 (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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4))
                    return -1;
                  return 383; /* *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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4))
                    return -1;
                  return 387; /* *stm3_db_update */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

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, 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 (pattern332 (x5))
        {
        case 0:
          if (pattern396 (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 (pattern441 (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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 5))
                return 352; /* *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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_THUMB1 && XVECLEN (operands[0], 0) == 5))
                return -1;
              return 353; /* *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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 5))
                return -1;
              return 358; /* *ldm4_ib_update */

            default:
              return -1;
            }

        case 1:
          if (pattern408 (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 (pattern443 (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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 5))
                return 355; /* *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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_THUMB1 && XVECLEN (operands[0], 0) == 5))
                return -1;
              return 356; /* *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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 5))
                return -1;
              return 360; /* *stm4_ib_update */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case -16L:
      x25 = XEXP (x5, 1);
      switch (GET_CODE (x25))
        {
        case MEM:
          if (pattern219 (x25) != 0
              || pattern396 (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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 5))
                return -1;
              return 362; /* *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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 5))
                return -1;
              return 366; /* *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 (pattern275 (x14) != 0
              || pattern408 (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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 5))
                return -1;
              return 364; /* *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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 5))
                return -1;
              return 368; /* *stm4_db_update */

            default:
              return -1;
            }

        default:
          return -1;
        }

    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, 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;
  switch (pattern129 (x1))
    {
    case 0:
      x5 = XEXP (x3, 1);
      if (GET_MODE (x5) != E_SImode)
        return -1;
      x6 = XEXP (x5, 0);
      if (GET_CODE (x6) != PLUS
          || GET_MODE (x6) != E_SImode)
        return -1;
      x7 = XEXP (x6, 1);
      if (GET_CODE (x7) != CONST_INT)
        return -1;
      x8 = XEXP (x4, 1);
      if (pattern333 (x8) != 0
          || !load_multiple_operation (operands[0], E_VOIDmode))
        return -1;
      x9 = XEXP (x2, 0);
      operands[1] = x9;
      x10 = XEXP (x3, 0);
      operands[2] = x10;
      x11 = XEXP (x4, 0);
      operands[3] = x11;
      x12 = XEXP (x2, 1);
      x13 = XEXP (x12, 0);
      switch (GET_CODE (x13))
        {
        case REG:
        case SUBREG:
          operands[4] = x13;
          if (!s_register_operand (operands[4], E_SImode)
              || XWINT (x7, 0) != 4L)
            return -1;
          x14 = XEXP (x8, 0);
          x15 = XEXP (x14, 1);
          if (XWINT (x15, 0) != 8L)
            return -1;
          x16 = XEXP (x6, 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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3))
            return 369; /* *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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_THUMB1 && XVECLEN (operands[0], 0) == 3))
            return -1;
          return 370; /* *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 (x6, 0);
          if (!rtx_equal_p (x16, operands[4]))
            return -1;
          x14 = XEXP (x8, 0);
          x17 = XEXP (x14, 0);
          if (!rtx_equal_p (x17, operands[4]))
            return -1;
          switch (XWINT (x18, 0))
            {
            case 4L:
              if (XWINT (x7, 0) != 8L)
                return -1;
              x15 = XEXP (x14, 1);
              if (XWINT (x15, 0) != 12L
                  || !
#line 582 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3))
                return -1;
              return 376; /* *ldm3_ib */

            case -12L:
              if (XWINT (x7, 0) != -8L)
                return -1;
              x15 = XEXP (x14, 1);
              if (XWINT (x15, 0) != -4L
                  || !
#line 704 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3))
                return -1;
              return 384; /* *ldm3_db */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 1:
      x10 = XEXP (x3, 0);
      if (GET_CODE (x10) != MEM
          || GET_MODE (x10) != E_SImode)
        return -1;
      x20 = XEXP (x10, 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;
      x11 = XEXP (x4, 0);
      if (pattern385 (x11) != 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;
      x8 = XEXP (x4, 1);
      operands[3] = x8;
      if (!arm_hard_general_register_operand (operands[3], E_SImode))
        return -1;
      x9 = XEXP (x2, 0);
      x22 = XEXP (x9, 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 (x11, 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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3))
            return -1;
          return 373; /* *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 (x11, 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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3))
                return -1;
              return 378; /* *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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3))
                return -1;
              return 386; /* *stm3_db */

            default:
              return -1;
            }

        default:
          return -1;
        }

    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;
  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;
  switch (pattern129 (x1))
    {
    case 0:
      x4 = XEXP (x3, 1);
      if (pattern219 (x4) != 0
          || !load_multiple_operation (operands[0], E_VOIDmode))
        return -1;
      x5 = XEXP (x2, 0);
      operands[1] = x5;
      x6 = XEXP (x3, 0);
      operands[2] = x6;
      x7 = XEXP (x2, 1);
      x8 = XEXP (x7, 0);
      switch (GET_CODE (x8))
        {
        case REG:
        case SUBREG:
          operands[3] = x8;
          if (!s_register_operand (operands[3], E_SImode))
            return -1;
          x9 = XEXP (x4, 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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 2))
            return 388; /* *ldm2_ */
          if (!low_register_operand (operands[1], E_SImode)
              || !low_register_operand (operands[2], E_SImode)
              || !
#line 867 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_THUMB1 && XVECLEN (operands[0], 0) == 2))
            return -1;
          return 389; /* *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 (x4, 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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 2))
                return -1;
              return 395; /* *ldm2_ib */

            case -8L:
              x10 = XEXP (x9, 1);
              if (XWINT (x10, 0) != -4L
                  || !
#line 1044 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 2))
                return -1;
              return 403; /* *ldm2_db */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 1:
      x6 = XEXP (x3, 0);
      if (pattern275 (x6) != 0
          || !store_multiple_operation (operands[0], E_VOIDmode))
        return -1;
      x4 = XEXP (x3, 1);
      operands[2] = x4;
      if (!arm_hard_general_register_operand (operands[2], E_SImode))
        return -1;
      x5 = XEXP (x2, 0);
      x14 = XEXP (x5, 0);
      switch (GET_CODE (x14))
        {
        case REG:
        case SUBREG:
          operands[3] = x14;
          if (!s_register_operand (operands[3], E_SImode))
            return -1;
          x15 = XEXP (x6, 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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 2))
            return -1;
          return 392; /* *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 (x6, 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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 2))
                return -1;
              return 397; /* *stm2_ib */

            case -8L:
              x16 = XEXP (x15, 1);
              if (XWINT (x16, 0) != -4L
                  || !
#line 1070 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 2))
                return -1;
              return 405; /* *stm2_db */

            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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != MULT
      || GET_MODE (x3) != E_SImode
      || pattern169 (x1) != 0
      || GET_MODE (x2) != E_CC_NOOVmode)
    return -1;
  x4 = XEXP (x3, 0);
  operands[2] = x4;
  if (!s_register_operand (operands[2], E_SImode))
    return -1;
  x5 = XEXP (x3, 1);
  operands[1] = x5;
  if (!s_register_operand (operands[1], E_SImode))
    return -1;
  if (
#line 1664 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && !arm_arch6))
    {
      *pnum_clobbers = 1;
      return 50; /* *mulsi_compare0_scratch */
    }
  if (!
#line 1677 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch6 && optimize_size))
    return -1;
  *pnum_clobbers = 1;
  return 51; /* *mulsi_compare0_scratch_v6 */
}

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;
  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_NOOVmode
          || GET_MODE (x3) != E_CC_NOOVmode
          || !arm_rhs_operand (operands[2], E_SImode)
          || !
#line 4269 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      *pnum_clobbers = 1;
      return 133; /* *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 7412 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 197; /* *cmpsi_shiftsi_swp */

    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;
  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 5509 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 171; /* *compareqi_eq0 */

    case E_DImode:
      if (pnum_clobbers == NULL
          || !s_register_operand (operands[0], E_DImode))
        return -1;
      if (
#line 7514 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
        {
          *pnum_clobbers = 1;
          return 201; /* *arm_cmpdi_zero */
        }
      if (!
#line 1610 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      *pnum_clobbers = 1;
      return 853; /* *thumb_cmpdi_zero */

    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;
  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 (pattern211 (x2, E_CCFPmode))
            {
            case 0:
              if (!
#line 1608 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
                return -1;
              return 742; /* *cmpsf_split_vfp */

            case 1:
              if (!
#line 1638 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
                return -1;
              return 744; /* *cmpdf_split_vfp */

            default:
              return -1;
            }

        case E_CCFPEmode:
          switch (pattern211 (x2, E_CCFPEmode))
            {
            case 0:
              if (!
#line 1623 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
                return -1;
              return 743; /* *cmpsf_trap_split_vfp */

            case 1:
              if (!
#line 1653 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
                return -1;
              return 745; /* *cmpdf_trap_split_vfp */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 101:
      switch (GET_MODE (x4))
        {
        case E_CCFPmode:
          switch (pattern211 (x2, E_CCFPmode))
            {
            case 0:
              if (!
#line 1674 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
                return -1;
              return 746; /* *cmpsf_vfp */

            case 1:
              if (!
#line 1698 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
                return -1;
              return 748; /* *cmpdf_vfp */

            default:
              return -1;
            }

        case E_CCFPEmode:
          switch (pattern211 (x2, E_CCFPEmode))
            {
            case 0:
              if (!
#line 1686 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
                return -1;
              return 747; /* *cmpsf_trap_vfp */

            case 1:
              if (!
#line 1710 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
                return -1;
              return 749; /* *cmpdf_trap_vfp */

            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, x8, x9;
  rtx x10, x11, x12, x13;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  switch (GET_CODE (x3))
    {
    case PLUS:
      x4 = XEXP (x1, 0);
      if (GET_CODE (x4) != REG
          || REGNO (x4) != 100)
        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;
          x6 = XEXP (x3, 1);
          operands[1] = x6;
          if (!arm_add_operand (operands[1], E_SImode))
            return -1;
          x7 = XEXP (x2, 1);
          switch (GET_CODE (x7))
            {
            case CONST_INT:
              if (XWINT (x7, 0) == 0L
                  && GET_MODE (x4) == E_CC_NOOVmode
                  && GET_MODE (x2) == E_CC_NOOVmode)
                {
                  if (
#line 835 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
                    return 12; /* *addsi3_compare0_scratch */
                  if (
#line 1354 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
                    return 926; /* *thumb2_addsi3_compare0_scratch */
                }
              break;

            case REG:
            case SUBREG:
              if (rtx_equal_p (x7, operands[0])
                  && GET_MODE (x4) == E_CC_Cmode
                  && GET_MODE (x2) == E_CC_Cmode
                  && 
#line 970 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return 17; /* *compare_addsi2_op0 */
              break;

            default:
              break;
            }
          if (GET_MODE (x4) != E_CC_Cmode
              || GET_MODE (x2) != E_CC_Cmode
              || !rtx_equal_p (x7, operands[1])
              || !
#line 991 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 18; /* *compare_addsi2_op1 */

        case MULT:
          if (pnum_clobbers == NULL
              || GET_MODE (x5) != E_SImode)
            return -1;
          x7 = XEXP (x2, 1);
          if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
              || GET_MODE (x4) != E_CC_NOOVmode
              || GET_MODE (x2) != E_CC_NOOVmode)
            return -1;
          x8 = XEXP (x5, 0);
          operands[2] = x8;
          if (!s_register_operand (operands[2], E_SImode))
            return -1;
          x9 = XEXP (x5, 1);
          operands[1] = x9;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x6 = XEXP (x3, 1);
          operands[3] = x6;
          if (!s_register_operand (operands[3], E_SImode))
            return -1;
          if (
#line 1752 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && !arm_arch6))
            {
              *pnum_clobbers = 1;
              return 56; /* *mulsi3addsi_compare0_scratch */
            }
          if (!
#line 1767 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch6 && optimize_size))
            return -1;
          *pnum_clobbers = 1;
          return 57; /* *mulsi3addsi_compare0_scratch_v6 */

        default:
          return -1;
        }

    case AND:
      x7 = XEXP (x2, 1);
      if (x7 != 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)
              || pattern31 (x1, E_CC_NOOVmode) != 0)
            return -1;
          x6 = XEXP (x3, 1);
          operands[1] = x6;
          if (!arm_not_operand (operands[1], E_SImode)
              || !
#line 2512 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          *pnum_clobbers = 1;
          return 86; /* *andsi3_compare0_scratch */

        case NOT:
          if (pnum_clobbers == NULL
              || GET_MODE (x5) != E_SImode
              || pattern31 (x1, E_CC_NOOVmode) != 0)
            return -1;
          x6 = XEXP (x3, 1);
          if (!s_register_operand (x6, E_SImode))
            return -1;
          x8 = XEXP (x5, 0);
          switch (GET_CODE (x8))
            {
            case MULT:
            case ASHIFT:
            case ROTATE:
            case ASHIFTRT:
            case LSHIFTRT:
            case ROTATERT:
              operands[0] = x8;
              if (!shift_operator (operands[0], E_SImode))
                return -1;
              x10 = XEXP (x8, 0);
              operands[1] = x10;
              if (!s_register_operand (operands[1], E_SImode))
                return -1;
              x11 = XEXP (x8, 1);
              operands[2] = x11;
              if (!arm_rhs_operand (operands[2], E_SImode))
                return -1;
              operands[3] = x6;
              if (!
#line 3091 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM || (TARGET_THUMB2 && CONST_INT_P (operands[2]))))
                return -1;
              *pnum_clobbers = 1;
              return 100; /* andsi_not_shiftsi_si_scc_no_reuse */

            case REG:
            case SUBREG:
              operands[2] = x8;
              if (!s_register_operand (operands[2], E_SImode))
                return -1;
              operands[1] = x6;
              if (!
#line 3147 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              *pnum_clobbers = 1;
              return 103; /* *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 (pattern199 (x1) != 0
              || !
#line 9709 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 264; /* *cmp_and */

        default:
          return -1;
        }

    case IOR:
      x7 = XEXP (x2, 1);
      if (x7 != 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)
              || pattern31 (x1, E_CC_NOOVmode) != 0)
            return -1;
          x6 = XEXP (x3, 1);
          operands[2] = x6;
          if (!arm_rhs_operand (operands[2], E_SImode)
              || !
#line 3344 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          *pnum_clobbers = 1;
          return 109; /* *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 (pattern199 (x1) != 0
              || !
#line 9792 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 265; /* *cmp_ior */

        default:
          return -1;
        }

    case XOR:
      x7 = XEXP (x2, 1);
      if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
          || pattern31 (x1, E_CC_NOOVmode) != 0)
        return -1;
      x5 = XEXP (x3, 0);
      operands[0] = x5;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x6 = XEXP (x3, 1);
      operands[1] = x6;
      if (!arm_rhs_operand (operands[1], E_SImode)
          || !
#line 3524 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 115; /* *xorsi3_compare0_scratch */

    case MINUS:
      if (pnum_clobbers == NULL)
        return -1;
      x6 = XEXP (x3, 1);
      if (!shift_operator (x6, E_SImode))
        return -1;
      operands[2] = x6;
      if (pattern169 (x1) != 0
          || GET_MODE (x2) != E_CC_NOOVmode)
        return -1;
      x5 = XEXP (x3, 0);
      operands[1] = x5;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      x12 = XEXP (x6, 0);
      operands[3] = x12;
      if (!s_register_operand (operands[3], E_SImode))
        return -1;
      x13 = XEXP (x6, 1);
      operands[4] = x13;
      if (!shift_amount_operand (operands[4], E_SImode)
          || !
#line 9181 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      *pnum_clobbers = 1;
      return 255; /* *sub_shiftsi_compare0_scratch */

    default:
      return -1;
    }
}

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, 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
              || !s_register_operand (x3, E_SImode))
            return -1;
          x4 = XEXP (x2, 1);
          if (!s_register_operand (x4, E_SImode))
            return -1;
          operands[1] = x4;
          operands[2] = x3;
          if (
#line 1610 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && !arm_arch6))
            return 46; /* *arm_mulsi3 */
          operands[2] = x4;
          operands[1] = x3;
          if (!
#line 1620 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6))
            return -1;
          return 47; /* *arm_mulsi3_v6 */

        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 490 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 467; /* *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 617 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!false || flag_unsafe_math_optimizations)))
            return -1;
          return 1037; /* *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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return 606; /* 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 617 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!false || flag_unsafe_math_optimizations)))
            return -1;
          return 1039; /* *mulv2si3_neon */

        case E_HFmode:
          if (pattern170 (x2, E_HFmode) != 0
              || !
#line 1064 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 690; /* mulhf3 */

        case E_SFmode:
          if (pattern170 (x2, E_SFmode) != 0
              || !
#line 1074 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
            return -1;
          return 691; /* *mulsf3_vfp */

        case E_DFmode:
          if (pattern170 (x2, E_DFmode) != 0
              || !
#line 1084 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
            return -1;
          return 692; /* *muldf3_vfp */

        case E_V8QImode:
          if (pattern170 (x2, E_V8QImode) != 0
              || !
#line 617 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!false || flag_unsafe_math_optimizations)))
            return -1;
          return 1035; /* *mulv8qi3_neon */

        case E_V16QImode:
          if (pattern170 (x2, E_V16QImode) != 0
              || !
#line 617 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!false || flag_unsafe_math_optimizations)))
            return -1;
          return 1036; /* *mulv16qi3_neon */

        case E_V8HImode:
          if (pattern170 (x2, E_V8HImode) != 0
              || !
#line 617 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!false || flag_unsafe_math_optimizations)))
            return -1;
          return 1038; /* *mulv8hi3_neon */

        case E_V4SImode:
          if (pattern170 (x2, E_V4SImode) != 0
              || !
#line 617 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!false || flag_unsafe_math_optimizations)))
            return -1;
          return 1040; /* *mulv4si3_neon */

        case E_V2SFmode:
          if (pattern170 (x2, E_V2SFmode) != 0
              || !
#line 617 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!true || flag_unsafe_math_optimizations)))
            return -1;
          return 1041; /* *mulv2sf3_neon */

        case E_V4SFmode:
          if (pattern170 (x2, E_V4SFmode) != 0
              || !
#line 617 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!true || flag_unsafe_math_optimizations)))
            return -1;
          return 1042; /* *mulv4sf3_neon */

        case E_V8HFmode:
          if (pattern170 (x2, E_V8HFmode) != 0)
            return -1;
          if (
#line 2236 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST && flag_unsafe_math_optimizations))
            return 1407; /* mulv8hf3 */
          if (!
#line 2247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1409; /* neon_vmulfv8hf */

        case E_V4HFmode:
          if (pattern170 (x2, E_V4HFmode) != 0)
            return -1;
          if (
#line 2236 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST && flag_unsafe_math_optimizations))
            return 1408; /* mulv4hf3 */
          if (!
#line 2247 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1410; /* 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_DImode:
                  if (pattern276 (x2) != 0)
                    return -1;
                  if (
#line 1841 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && !arm_arch6))
                    return 61; /* *mulsidi3_nov6 */
                  if (!
#line 1852 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6))
                    return -1;
                  return 62; /* *mulsidi3_v6 */

                case E_SImode:
                  if (pattern34 (x2, E_SImode, E_HImode) != 0
                      || !s_register_operand (operands[2], E_HImode)
                      || !
#line 2019 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY))
                    return -1;
                  return 71; /* mulhisi3 */

                case E_V8HImode:
                  if (pattern277 (x2, E_V8QImode, E_V8HImode) != 0
                      || !
#line 6702 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 2621; /* neon_vec_smult_v8qi */

                case E_V4SImode:
                  if (pattern277 (x2, E_V4HImode, E_V4SImode) != 0
                      || !
#line 6702 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 2623; /* neon_vec_smult_v4hi */

                case E_V2DImode:
                  if (pattern277 (x2, E_V2SImode, E_V2DImode) != 0
                      || !
#line 6702 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 2625; /* 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 2045 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY))
                return -1;
              return 73; /* *mulhisi3bt */

            default:
              return -1;
            }

        case VEC_SELECT:
          x4 = XEXP (x2, 1);
          if (GET_CODE (x4) != SIGN_EXTEND)
            return -1;
          switch (pattern201 (x2))
            {
            case 0:
              if (vect_par_constant_low (operands[2], E_V16QImode)
                  && 
#line 6562 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
                return 2597; /* neon_vec_smult_lo_v16qi */
              if (!vect_par_constant_high (operands[2], E_V16QImode)
                  || !
#line 6596 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
                return -1;
              return 2603; /* neon_vec_smult_hi_v16qi */

            case 1:
              if (vect_par_constant_low (operands[2], E_V8HImode)
                  && 
#line 6562 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
                return 2599; /* neon_vec_smult_lo_v8hi */
              if (!vect_par_constant_high (operands[2], E_V8HImode)
                  || !
#line 6596 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
                return -1;
              return 2605; /* neon_vec_smult_hi_v8hi */

            case 2:
              if (vect_par_constant_low (operands[2], E_V4SImode)
                  && 
#line 6562 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
                return 2601; /* neon_vec_smult_lo_v4si */
              if (!vect_par_constant_high (operands[2], E_V4SImode)
                  || !
#line 6596 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
                return -1;
              return 2607; /* neon_vec_smult_hi_v4si */

            default:
              return -1;
            }

        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 REG:
        case SUBREG:
          operands[1] = x5;
          x6 = XEXP (x4, 0);
          operands[2] = x6;
          switch (GET_MODE (operands[0]))
            {
            case E_DImode:
              if (pattern276 (x2) != 0)
                return -1;
              if (
#line 1872 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && !arm_arch6))
                return 63; /* *umulsidi3_nov6 */
              if (!
#line 1883 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6))
                return -1;
              return 64; /* *umulsidi3_v6 */

            case E_V8HImode:
              if (pattern277 (x2, E_V8QImode, E_V8HImode) != 0
                  || !
#line 6702 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2622; /* neon_vec_umult_v8qi */

            case E_V4SImode:
              if (pattern277 (x2, E_V4HImode, E_V4SImode) != 0
                  || !
#line 6702 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2624; /* neon_vec_umult_v4hi */

            case E_V2DImode:
              if (pattern277 (x2, E_V2SImode, E_V2DImode) != 0
                  || !
#line 6702 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2626; /* neon_vec_umult_v2si */

            default:
              return -1;
            }

        case VEC_SELECT:
          switch (pattern201 (x2))
            {
            case 0:
              if (vect_par_constant_low (operands[2], E_V16QImode)
                  && 
#line 6562 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
                return 2598; /* neon_vec_umult_lo_v16qi */
              if (!vect_par_constant_high (operands[2], E_V16QImode)
                  || !
#line 6596 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
                return -1;
              return 2604; /* neon_vec_umult_hi_v16qi */

            case 1:
              if (vect_par_constant_low (operands[2], E_V8HImode)
                  && 
#line 6562 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
                return 2600; /* neon_vec_umult_lo_v8hi */
              if (!vect_par_constant_high (operands[2], E_V8HImode)
                  || !
#line 6596 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
                return -1;
              return 2606; /* neon_vec_umult_hi_v8hi */

            case 2:
              if (vect_par_constant_low (operands[2], E_V4SImode)
                  && 
#line 6562 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
                return 2602; /* neon_vec_umult_lo_v4si */
              if (!vect_par_constant_high (operands[2], E_V4SImode)
                  || !
#line 6596 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
                return -1;
              return 2608; /* neon_vec_umult_hi_v4si */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case ASHIFTRT:
      if (pattern130 (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 2032 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY))
            return -1;
          return 72; /* *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 2059 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY))
            return -1;
          return 74; /* *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 (pattern220 (x2, E_HFmode) != 0
              || !
#line 1094 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST && !flag_rounding_math))
            return -1;
          return 693; /* *mulsf3neghf_vfp */

        case E_SFmode:
          if (pattern220 (x2, E_SFmode) != 0
              || !
#line 1114 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && !flag_rounding_math))
            return -1;
          return 695; /* *mulsf3negsf_vfp */

        case E_DFmode:
          if (pattern220 (x2, E_DFmode) != 0
              || !
#line 1134 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE
  && !flag_rounding_math))
            return -1;
          return 697; /* *muldf3negdf_vfp */

        default:
          return -1;
        }

    case UNSIGNED_FLOAT:
      switch (pattern131 (x2))
        {
        case 0:
          if (!
#line 1724 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP3 && !flag_rounding_math))
            return -1;
          return 750; /* *combine_vcvt_f32_u32 */

        case 1:
          if (!
#line 1737 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP3 && !flag_rounding_math
  && !TARGET_VFP_SINGLE))
            return -1;
          return 752; /* *combine_vcvt_f64_u32 */

        default:
          return -1;
        }

    case FLOAT:
      switch (pattern131 (x2))
        {
        case 0:
          if (!
#line 1724 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP3 && !flag_rounding_math))
            return -1;
          return 751; /* *combine_vcvt_f32_s32 */

        case 1:
          if (!
#line 1737 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP3 && !flag_rounding_math
  && !TARGET_VFP_SINGLE))
            return -1;
          return 753; /* *combine_vcvt_f64_s32 */

        default:
          return -1;
        }

    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, 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 1286 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 536; /* rorv4hi3 */
      if (!imm_or_reg_operand (operands[2], E_DImode)
          || !
#line 1370 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 548; /* 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 1286 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 537; /* rorv2si3 */
      if (!imm_or_reg_operand (operands[2], E_DImode)
          || !
#line 1370 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 549; /* 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 1286 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 538; /* rordi3 */
      if (!imm_or_reg_operand (operands[2], E_DImode)
          || !
#line 1370 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 550; /* rordi3_di */

    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, 0);
  operands[1] = x3;
  x4 = XEXP (x2, 1);
  operands[2] = x4;
  switch (GET_MODE (operands[0]))
    {
    case E_V4HImode:
      if (GET_MODE (x2) != E_V4HImode)
        return -1;
      if (register_operand (operands[0], E_V4HImode)
          && register_operand (operands[1], E_V4HImode))
        {
          if (imm_or_reg_operand (operands[2], E_SImode)
              && 
#line 1349 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 545; /* ashlv4hi3_iwmmxt */
          if (imm_or_reg_operand (operands[2], E_DImode)
              && 
#line 1433 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 557; /* ashlv4hi3_di */
        }
      if (!s_register_operand (operands[0], E_V4HImode)
          || !s_register_operand (operands[1], E_V4HImode)
          || !imm_lshift_or_reg_neon (operands[2], E_V4HImode)
          || !
#line 1071 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1232; /* vashlv4hi3 */

    case E_V2SImode:
      if (GET_MODE (x2) != E_V2SImode)
        return -1;
      if (register_operand (operands[0], E_V2SImode)
          && register_operand (operands[1], E_V2SImode))
        {
          if (imm_or_reg_operand (operands[2], E_SImode)
              && 
#line 1349 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 546; /* ashlv2si3_iwmmxt */
          if (imm_or_reg_operand (operands[2], E_DImode)
              && 
#line 1433 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 558; /* ashlv2si3_di */
        }
      if (!s_register_operand (operands[0], E_V2SImode)
          || !s_register_operand (operands[1], E_V2SImode)
          || !imm_lshift_or_reg_neon (operands[2], E_V2SImode)
          || !
#line 1071 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1234; /* vashlv2si3 */

    case E_DImode:
      if (GET_MODE (x2) != E_DImode)
        return -1;
      if (register_operand (operands[0], E_DImode)
          && register_operand (operands[1], E_DImode))
        {
          if (imm_or_reg_operand (operands[2], E_SImode)
              && 
#line 1349 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 547; /* ashldi3_iwmmxt */
          if (imm_or_reg_operand (operands[2], E_DImode)
              && 
#line 1433 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 559; /* ashldi3_di */
        }
      if (!s_register_operand (operands[0], E_DImode)
          || !s_register_operand (operands[1], E_DImode))
        return -1;
      if (reg_or_int_operand (operands[2], E_DImode)
          && 
#line 1196 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed
   && (!CONST_INT_P (operands[2])
       || (INTVAL (operands[2]) >= 0 && INTVAL (operands[2]) < 64))))
        return 1263; /* ashldi3_neon_noclobber */
      if (pnum_clobbers == NULL
          || !general_operand (operands[2], E_SImode)
          || !
#line 1213 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      *pnum_clobbers = 4;
      return 1264; /* ashldi3_neon */

    case E_V8QImode:
      if (pattern202 (x2, E_V8QImode) != 0
          || !
#line 1071 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1230; /* vashlv8qi3 */

    case E_V16QImode:
      if (pattern202 (x2, E_V16QImode) != 0
          || !
#line 1071 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1231; /* vashlv16qi3 */

    case E_V8HImode:
      if (pattern202 (x2, E_V8HImode) != 0
          || !
#line 1071 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1233; /* vashlv8hi3 */

    case E_V4SImode:
      if (pattern202 (x2, E_V4SImode) != 0
          || !
#line 1071 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1235; /* vashlv4si3 */

    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;
  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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && !arm_arch6))
        return 814; /* *thumb_mulsi3 */
      if (!
#line 175 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && arm_arch6))
        return -1;
      return 815; /* *thumb_mulsi3_v6 */

    case ASHIFT:
      if (!nonmemory_operand (operands[2], E_SImode)
          || !
#line 275 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 820; /* *thumb1_ashlsi3 */

    case ASHIFTRT:
      if (!nonmemory_operand (operands[2], E_SImode)
          || !
#line 285 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 821; /* *thumb1_ashrsi3 */

    case LSHIFTRT:
      if (!nonmemory_operand (operands[2], E_SImode)
          || !
#line 295 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 822; /* *thumb1_lshrsi3 */

    case ROTATERT:
      if (!register_operand (operands[2], E_SImode)
          || !
#line 305 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 823; /* *thumb1_rotrsi3 */

    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;
  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)
          && pattern295 (x1) == 0)
        {
          x6 = XEXP (x2, 1);
          operands[4] = x6;
          if (arm_not_operand (operands[4], E_SImode)
              && 
#line 2618 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 90; /* *ite_ne_zeroextractsi */
            }
        }
      if (XWINT (x5, 0) != 0L
          || pattern295 (x1) != 0)
        return -1;
      x6 = XEXP (x2, 1);
      operands[3] = x6;
      if (!arm_not_operand (operands[3], E_SImode)
          || !
#line 2657 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && !reg_overlap_mentioned_p (operands[0], operands[3])))
        return -1;
      *pnum_clobbers = 1;
      return 91; /* *ite_ne_zeroextractsi_shifted */

    case EQ:
      x7 = XEXP (x3, 1);
      if (pattern205 (x7, 38) != 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 234; /* *stack_protect_combined_test_insn */

    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, 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 1194 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 846; /* *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 1233 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            {
              *pnum_clobbers = 1;
              return 847; /* *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 1278 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      *pnum_clobbers = 1;
      return 848; /* *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 1321 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 849; /* *tstsi3_cbranch */

    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;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  if (pnum_clobbers != NULL)
    {
      res = recog_55 (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_56 (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 9453 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
    return 259; /* *cond_move */
  if (!
#line 706 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
    return -1;
  return 904; /* *thumb2_cond_move */
}

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, 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 10249 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
    return -1;
  *pnum_clobbers = 1;
  return 274; /* *ifcompare_plus_move */
}

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, 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_58 (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 10337 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          *pnum_clobbers = 1;
          return 278; /* *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 10732 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          *pnum_clobbers = 1;
          return 296; /* *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 10292 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          *pnum_clobbers = 1;
          return 276; /* *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 10499 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          *pnum_clobbers = 1;
          return 284; /* *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 10612 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          *pnum_clobbers = 1;
          return 290; /* *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 10800 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          *pnum_clobbers = 1;
          return 300; /* *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 10534 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          *pnum_clobbers = 1;
          return 286; /* *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 10698 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          *pnum_clobbers = 1;
          return 294; /* *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 10569 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          *pnum_clobbers = 1;
          return 288; /* *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 10657 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          *pnum_clobbers = 1;
          return 292; /* *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 10764 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      *pnum_clobbers = 1;
      return 298; /* *ifcompare_neg_move */

    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, 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 10265 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
                return 275; /* *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 10354 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 279; /* *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 10748 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 297; /* *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 10308 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 277; /* *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 10513 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return 285; /* *if_move_not */
          if (!arm_rhs_operand (operands[1], E_SImode)
              || !
#line 11192 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 303; /* *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 10628 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 291; /* *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 10814 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 301; /* *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 10548 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 287; /* *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 10714 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 295; /* *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 10585 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 289; /* *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 10675 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 293; /* *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 10778 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 299; /* *if_neg_move */

    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, 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 10371 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      *pnum_clobbers = 1;
      return 280; /* *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 10434 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      *pnum_clobbers = 1;
      return 282; /* *ifcompare_move_arith */

    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, 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_59 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      if (cc_register (x4, E_VOIDmode))
        {
          res = recog_60 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      if (pnum_clobbers != NULL)
        {
          res = recog_61 (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 10411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 281; /* *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 10476 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 283; /* *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 1547 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 852; /* *addsi3_cbranch_scratch */

    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, 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 7560 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 203; /* 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 7586 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 204; /* *arm_cond_branch_reversed */

        case RETURN:
          operands[0] = x3;
          operands[1] = x4;
          if (!
#line 8533 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM  && USE_RETURN_INSN (TRUE)))
            return -1;
          return 225; /* *cond_return_inverted */

        case SIMPLE_RETURN:
          operands[0] = x3;
          operands[1] = x4;
          if (!
#line 8533 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM  && use_simple_return_p ()))
            return -1;
          return 226; /* *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 7965 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
                return 208; /* *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 8092 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && TARGET_SOFT_FLOAT))
            return 212; /* *movsfcc_soft_insn */
          if (
#line 742 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_ARM && TARGET_HARD_FLOAT))
            return 664; /* *movsfcc_vfp */
          if (
#line 765 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && TARGET_HARD_FLOAT && !arm_restrict_it))
            return 665; /* *thumb2_movsfcc_vfp */
          if (!
#line 545 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && TARGET_SOFT_FLOAT))
            return -1;
          return 895; /* *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 7965 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 52 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
                return 209; /* *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 788 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_ARM && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
            return 666; /* *movdfcc_vfp */
          if (!
#line 811 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE && !arm_restrict_it))
            return -1;
          return 667; /* *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 7996 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 210; /* *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 8028 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 211; /* *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 8511 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM   && USE_RETURN_INSN (TRUE)))
        return -1;
      return 223; /* *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 8511 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM   && use_simple_return_p ()))
        return -1;
      return 224; /* *cond_simple_return */

    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, 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 467 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
    return -1;
  return 894; /* *thumb2_movsicc_insn */
}

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, x8, x9;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  switch (GET_CODE (x3))
    {
    case NE:
    case EQ:
      res = recog_57 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    default:
      break;
    }
  if (arm_comparison_operator (x3, E_VOIDmode))
    {
      res = recog_62 (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_63 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  if (pnum_clobbers != NULL
      && pattern132 (x1) == 0
      && 
#line 10182 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
    {
      *pnum_clobbers = 1;
      return 273; /* movcond */
    }
  operands[3] = x3;
  if (arm_comparison_operator (operands[3], E_VOIDmode))
    {
      res = recog_64 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
    }
  if (pnum_clobbers != NULL
      && pattern132 (x1) == 0
      && 
#line 965 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
    {
      *pnum_clobbers = 1;
      return 909; /* *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 1009 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && TARGET_HAVE_CBZ))
            return 843; /* 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 1092 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                return 844; /* 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 1157 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            {
              *pnum_clobbers = 1;
              return 845; /* 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 1418 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return -1;
      *pnum_clobbers = 1;
      return 930; /* *thumb2_cbz */

    case NE:
      if (!
#line 1442 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return -1;
      *pnum_clobbers = 1;
      return 931; /* *thumb2_cbnz */

    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, 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 3709 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                    return 117; /* *smax_0 */
                  break;

                case -1L:
                  if (
#line 3719 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                    return 118; /* *smax_m1 */
                  break;

                default:
                  break;
                }
            }
          break;

        case REG:
        case SUBREG:
          switch (pattern207 (x2))
            {
            case 0:
              if (register_operand (operands[0], E_V2SImode)
                  && register_operand (operands[1], E_V2SImode)
                  && register_operand (operands[2], E_V2SImode)
                  && 
#line 912 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 500; /* *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 1055 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1226; /* *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 912 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 501; /* *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 1055 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1224; /* *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 912 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 502; /* *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 1055 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1222; /* *smaxv8qi3_neon */
              break;

            case 3:
              if (
#line 1929 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
                return 796; /* smaxsf3 */
              break;

            case 4:
              if ((
#line 1929 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 52 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
                return 797; /* smaxdf3 */
              break;

            case 5:
              if (
#line 1055 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1223; /* *smaxv16qi3_neon */
              break;

            case 6:
              if (
#line 1055 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1225; /* *smaxv8hi3_neon */
              break;

            case 7:
              if (
#line 1055 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1227; /* *smaxv4si3_neon */
              break;

            case 8:
              if (
#line 1055 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1228; /* *smaxv2sf3_neon */
              break;

            case 9:
              if (
#line 1055 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1229; /* *smaxv4sf3_neon */
              break;

            default:
              break;
            }
          break;

        default:
          break;
        }
      if (pnum_clobbers == NULL
          || pattern208 (x2) != 0
          || !
#line 3730 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      *pnum_clobbers = 1;
      return 119; /* *arm_smax_insn */

    case SMIN:
      switch (pattern133 (x2))
        {
        case 0:
          if (!
#line 3992 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6 && SMAX != SMIN
   && arm_sat_operator_match (operands[2], operands[1], NULL, NULL)))
            return -1;
          return 127; /* *satsi_smax */

        case 1:
          if (!
#line 4018 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6 && SMAX != SMIN
   && arm_sat_operator_match (operands[2], operands[1], NULL, NULL)))
            return -1;
          return 129; /* *satsi_smax_shift */

        default:
          return -1;
        }

    case VEC_SELECT:
      switch (pattern134 (x2))
        {
        case 0:
          if (!
#line 1513 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1291; /* quad_halves_smaxv4si */

        case 1:
          if (!
#line 1526 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && flag_unsafe_math_optimizations))
            return -1;
          return 1296; /* quad_halves_smaxv4sf */

        case 2:
          if (!
#line 1541 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1299; /* quad_halves_smaxv8hi */

        case 3:
          if (!
#line 1560 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1304; /* quad_halves_smaxv16qi */

        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, 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 3769 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return 120; /* *smin_0 */
          break;

        case REG:
        case SUBREG:
          switch (pattern207 (x2))
            {
            case 0:
              if (register_operand (operands[0], E_V2SImode)
                  && register_operand (operands[1], E_V2SImode)
                  && register_operand (operands[2], E_V2SImode)
                  && 
#line 932 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 506; /* *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 1043 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1218; /* *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 932 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 507; /* *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 1043 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1216; /* *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 932 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 508; /* *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 1043 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1214; /* *sminv8qi3_neon */
              break;

            case 3:
              if (
#line 1939 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
                return 798; /* sminsf3 */
              break;

            case 4:
              if ((
#line 1939 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 52 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
                return 799; /* smindf3 */
              break;

            case 5:
              if (
#line 1043 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1215; /* *sminv16qi3_neon */
              break;

            case 6:
              if (
#line 1043 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1217; /* *sminv8hi3_neon */
              break;

            case 7:
              if (
#line 1043 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1219; /* *sminv4si3_neon */
              break;

            case 8:
              if (
#line 1043 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1220; /* *sminv2sf3_neon */
              break;

            case 9:
              if (
#line 1043 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1221; /* *sminv4sf3_neon */
              break;

            default:
              break;
            }
          break;

        default:
          break;
        }
      if (pnum_clobbers == NULL
          || pattern208 (x2) != 0
          || !
#line 3780 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      *pnum_clobbers = 1;
      return 121; /* *arm_smin_insn */

    case SMAX:
      switch (pattern133 (x2))
        {
        case 0:
          if (!
#line 3992 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6 && SMIN != SMAX
   && arm_sat_operator_match (operands[1], operands[2], NULL, NULL)))
            return -1;
          return 128; /* *satsi_smin */

        case 1:
          if (!
#line 4018 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6 && SMIN != SMAX
   && arm_sat_operator_match (operands[1], operands[2], NULL, NULL)))
            return -1;
          return 130; /* *satsi_smin_shift */

        default:
          return -1;
        }

    case VEC_SELECT:
      switch (pattern134 (x2))
        {
        case 0:
          if (!
#line 1513 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1290; /* quad_halves_sminv4si */

        case 1:
          if (!
#line 1526 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && flag_unsafe_math_optimizations))
            return -1;
          return 1295; /* quad_halves_sminv4sf */

        case 2:
          if (!
#line 1541 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1298; /* quad_halves_sminv8hi */

        case 3:
          if (!
#line 1560 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1303; /* quad_halves_sminv16qi */

        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;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  operands[2] = x3;
  switch (GET_MODE (operands[0]))
    {
    case E_DImode:
      if (pnum_clobbers == NULL
          || GET_MODE (x2) != E_DImode)
        return -1;
      if (arm_general_register_operand (operands[0], E_DImode)
          && arm_general_register_operand (operands[1], E_DImode)
          && arm_general_adddi_operand (operands[2], E_DImode)
          && 
#line 468 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && !TARGET_NEON))
        {
          *pnum_clobbers = 1;
          return 1; /* *arm_adddi3 */
        }
      if (register_operand (operands[0], E_DImode)
          && register_operand (operands[1], E_DImode)
          && register_operand (operands[2], E_DImode)
          && 
#line 52 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        {
          *pnum_clobbers = 1;
          return 810; /* *thumb1_adddi3 */
        }
      if (!s_register_operand (operands[0], E_DImode)
          || !s_register_operand (operands[1], E_DImode)
          || !arm_adddi_operand (operands[2], E_DImode)
          || !
#line 535 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      *pnum_clobbers = 1;
      return 1018; /* adddi3_neon */

    case E_SImode:
      if (pattern157 (x2) != 0
          || !
#line 614 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 4; /* *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 350 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 449; /* *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 491 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!false || flag_unsafe_math_optimizations)))
        return -1;
      return 1007; /* *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 350 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 450; /* *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 491 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!false || flag_unsafe_math_optimizations)))
        return -1;
      return 1005; /* *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 350 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 451; /* *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 491 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!false || flag_unsafe_math_optimizations)))
        return -1;
      return 1003; /* *addv8qi3_neon */

    case E_HFmode:
      if (pattern3 (x2, E_HFmode) != 0
          || !
#line 957 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
        return -1;
      return 681; /* addhf3 */

    case E_SFmode:
      if (pattern3 (x2, E_SFmode) != 0
          || !
#line 967 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
        return -1;
      return 682; /* *addsf3_vfp */

    case E_DFmode:
      if (pattern3 (x2, E_DFmode) != 0
          || !
#line 977 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
        return -1;
      return 683; /* *adddf3_vfp */

    case E_V16QImode:
      if (pattern3 (x2, E_V16QImode) != 0
          || !
#line 491 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!false || flag_unsafe_math_optimizations)))
        return -1;
      return 1004; /* *addv16qi3_neon */

    case E_V8HImode:
      if (pattern3 (x2, E_V8HImode) != 0
          || !
#line 491 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!false || flag_unsafe_math_optimizations)))
        return -1;
      return 1006; /* *addv8hi3_neon */

    case E_V4SImode:
      if (pattern3 (x2, E_V4SImode) != 0
          || !
#line 491 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!false || flag_unsafe_math_optimizations)))
        return -1;
      return 1008; /* *addv4si3_neon */

    case E_V4HFmode:
      if (pattern3 (x2, E_V4HFmode) != 0)
        return -1;
      if (
#line 491 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!true || flag_unsafe_math_optimizations)))
        return 1009; /* *addv4hf3_neon */
      if (
#line 508 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST && flag_unsafe_math_optimizations))
        return 1015; /* addv4hf3 */
      if (!
#line 522 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1017; /* addv4hf3_fp16 */

    case E_V8HFmode:
      if (pattern3 (x2, E_V8HFmode) != 0)
        return -1;
      if (
#line 491 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!true || flag_unsafe_math_optimizations)))
        return 1010; /* *addv8hf3_neon */
      if (
#line 508 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST && flag_unsafe_math_optimizations))
        return 1014; /* addv8hf3 */
      if (!
#line 522 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1016; /* addv8hf3_fp16 */

    case E_V2SFmode:
      if (pattern3 (x2, E_V2SFmode) != 0
          || !
#line 491 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!true || flag_unsafe_math_optimizations)))
        return -1;
      return 1011; /* *addv2sf3_neon */

    case E_V4SFmode:
      if (pattern3 (x2, E_V4SFmode) != 0
          || !
#line 491 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!true || flag_unsafe_math_optimizations)))
        return -1;
      return 1012; /* *addv4sf3_neon */

    case E_V2DImode:
      if (pattern3 (x2, E_V2DImode) != 0
          || !
#line 491 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!false || flag_unsafe_math_optimizations)))
        return -1;
      return 1013; /* *addv2di3_neon */

    case E_QQmode:
      if (pattern3 (x2, E_QQmode) != 0
          || !
#line 25 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
        return -1;
      return 2764; /* addqq3 */

    case E_HQmode:
      if (pattern3 (x2, E_HQmode) != 0
          || !
#line 25 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
        return -1;
      return 2765; /* addhq3 */

    case E_SQmode:
      if (pattern3 (x2, E_SQmode) != 0
          || !
#line 25 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
        return -1;
      return 2766; /* addsq3 */

    case E_UQQmode:
      if (pattern3 (x2, E_UQQmode) != 0
          || !
#line 25 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
        return -1;
      return 2767; /* adduqq3 */

    case E_UHQmode:
      if (pattern3 (x2, E_UHQmode) != 0
          || !
#line 25 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
        return -1;
      return 2768; /* adduhq3 */

    case E_USQmode:
      if (pattern3 (x2, E_USQmode) != 0
          || !
#line 25 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
        return -1;
      return 2769; /* addusq3 */

    case E_HAmode:
      if (pattern3 (x2, E_HAmode) != 0
          || !
#line 25 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
        return -1;
      return 2770; /* addha3 */

    case E_SAmode:
      if (pattern3 (x2, E_SAmode) != 0
          || !
#line 25 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
        return -1;
      return 2771; /* addsa3 */

    case E_UHAmode:
      if (pattern3 (x2, E_UHAmode) != 0
          || !
#line 25 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
        return -1;
      return 2772; /* adduha3 */

    case E_USAmode:
      if (pattern3 (x2, E_USAmode) != 0
          || !
#line 25 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
        return -1;
      return 2773; /* addusa3 */

    case E_V4QQmode:
      if (pattern3 (x2, E_V4QQmode) != 0
          || !
#line 35 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2774; /* addv4qq3 */

    case E_V2HQmode:
      if (pattern3 (x2, E_V2HQmode) != 0
          || !
#line 35 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2775; /* addv2hq3 */

    case E_V2HAmode:
      if (pattern3 (x2, E_V2HAmode) != 0
          || !
#line 35 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2776; /* addv2ha3 */

    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, 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;
  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:
      return recog_68 (x1, insn, pnum_clobbers);

    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 1495 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 562; /* 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 (pattern423 (x10))
                {
                case 0:
                  if (!
#line 1526 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                    return -1;
                  return 564; /* iwmmxt_tmiabb */

                case 1:
                  if (!
#line 1560 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                    return -1;
                  return 566; /* 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 (pattern423 (x10))
                {
                case 0:
                  if (!
#line 1543 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                    return -1;
                  return 565; /* iwmmxt_tmiatb */

                case 1:
                  if (!
#line 1579 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                    return -1;
                  return 567; /* iwmmxt_tmiatt */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case VEC_SELECT:
          if (pattern279 (x7) != 0)
            return -1;
          x8 = XEXP (x6, 0);
          if (pattern386 (x8) != 0)
            return -1;
          switch (pattern432 (x4))
            {
            case 0:
              if (!
#line 742 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 629; /* iwmmxt_wmiawbb */

            case 1:
              if (!
#line 755 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 630; /* iwmmxt_wmiawbt */

            case 2:
              if (!
#line 768 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 631; /* iwmmxt_wmiawtb */

            case 3:
              if (!
#line 781 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 632; /* 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
          || pattern285 (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 1513 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 563; /* 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 (pattern457 (x4))
            {
            case 0:
              if (!
#line 561 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 621; /* iwmmxt_wmiabb */

            case 1:
              if (!
#line 585 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 622; /* iwmmxt_wmiabt */

            case 2:
              if (!
#line 609 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 623; /* iwmmxt_wmiatb */

            case 3:
              if (!
#line 633 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 624; /* iwmmxt_wmiatt */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case UNSPEC:
      switch (XVECLEN (x4, 0))
        {
        case 2:
          x31 = XVECEXP (x4, 0, 0);
          operands[2] = x31;
          x32 = XVECEXP (x4, 0, 1);
          operands[3] = x32;
          switch (XINT (x4, 1))
            {
            case 295:
              switch (GET_MODE (operands[0]))
                {
                case E_V4HFmode:
                  if (pattern313 (x2, E_V4HFmode) != 0
                      || !(
#line 3485 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 123 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                    return -1;
                  return 1807; /* neon_vcmla0v4hf */

                case E_V8HFmode:
                  if (pattern313 (x2, E_V8HFmode) != 0
                      || !(
#line 3485 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 124 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                    return -1;
                  return 1811; /* neon_vcmla0v8hf */

                case E_V2SFmode:
                  if (pattern313 (x2, E_V2SFmode) != 0
                      || !
#line 3485 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                    return -1;
                  return 1815; /* neon_vcmla0v2sf */

                case E_V4SFmode:
                  if (pattern313 (x2, E_V4SFmode) != 0
                      || !
#line 3485 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                    return -1;
                  return 1819; /* neon_vcmla0v4sf */

                default:
                  return -1;
                }

            case 296:
              switch (GET_MODE (operands[0]))
                {
                case E_V4HFmode:
                  if (pattern313 (x2, E_V4HFmode) != 0
                      || !(
#line 3485 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 123 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                    return -1;
                  return 1808; /* neon_vcmla90v4hf */

                case E_V8HFmode:
                  if (pattern313 (x2, E_V8HFmode) != 0
                      || !(
#line 3485 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 124 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                    return -1;
                  return 1812; /* neon_vcmla90v8hf */

                case E_V2SFmode:
                  if (pattern313 (x2, E_V2SFmode) != 0
                      || !
#line 3485 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                    return -1;
                  return 1816; /* neon_vcmla90v2sf */

                case E_V4SFmode:
                  if (pattern313 (x2, E_V4SFmode) != 0
                      || !
#line 3485 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                    return -1;
                  return 1820; /* neon_vcmla90v4sf */

                default:
                  return -1;
                }

            case 297:
              switch (GET_MODE (operands[0]))
                {
                case E_V4HFmode:
                  if (pattern313 (x2, E_V4HFmode) != 0
                      || !(
#line 3485 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 123 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                    return -1;
                  return 1809; /* neon_vcmla180v4hf */

                case E_V8HFmode:
                  if (pattern313 (x2, E_V8HFmode) != 0
                      || !(
#line 3485 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 124 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                    return -1;
                  return 1813; /* neon_vcmla180v8hf */

                case E_V2SFmode:
                  if (pattern313 (x2, E_V2SFmode) != 0
                      || !
#line 3485 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                    return -1;
                  return 1817; /* neon_vcmla180v2sf */

                case E_V4SFmode:
                  if (pattern313 (x2, E_V4SFmode) != 0
                      || !
#line 3485 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                    return -1;
                  return 1821; /* neon_vcmla180v4sf */

                default:
                  return -1;
                }

            case 298:
              switch (GET_MODE (operands[0]))
                {
                case E_V4HFmode:
                  if (pattern313 (x2, E_V4HFmode) != 0
                      || !(
#line 3485 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 123 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                    return -1;
                  return 1810; /* neon_vcmla270v4hf */

                case E_V8HFmode:
                  if (pattern313 (x2, E_V8HFmode) != 0
                      || !(
#line 3485 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 124 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                    return -1;
                  return 1814; /* neon_vcmla270v8hf */

                case E_V2SFmode:
                  if (pattern313 (x2, E_V2SFmode) != 0
                      || !
#line 3485 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                    return -1;
                  return 1818; /* neon_vcmla270v2sf */

                case E_V4SFmode:
                  if (pattern313 (x2, E_V4SFmode) != 0
                      || !
#line 3485 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                    return -1;
                  return 1822; /* neon_vcmla270v4sf */

                default:
                  return -1;
                }

            case 289:
              switch (GET_MODE (operands[0]))
                {
                case E_V2SImode:
                  if (pattern314 (x2, E_V8QImode, E_V2SImode) != 0
                      || !
#line 3545 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_DOTPROD))
                    return -1;
                  return 1855; /* neon_sdotv8qi */

                case E_V4SImode:
                  if (pattern314 (x2, E_V16QImode, E_V4SImode) != 0
                      || !
#line 3545 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_DOTPROD))
                    return -1;
                  return 1857; /* neon_sdotv16qi */

                default:
                  return -1;
                }

            case 290:
              switch (GET_MODE (operands[0]))
                {
                case E_V2SImode:
                  if (pattern314 (x2, E_V8QImode, E_V2SImode) != 0
                      || !
#line 3545 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_DOTPROD))
                    return -1;
                  return 1856; /* neon_udotv8qi */

                case E_V4SImode:
                  if (pattern314 (x2, E_V16QImode, E_V4SImode) != 0
                      || !
#line 3545 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_DOTPROD))
                    return -1;
                  return 1858; /* neon_udotv16qi */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case 3:
          x31 = XVECEXP (x4, 0, 0);
          operands[2] = x31;
          x32 = XVECEXP (x4, 0, 1);
          operands[3] = x32;
          x33 = XVECEXP (x4, 0, 2);
          operands[4] = x33;
          switch (XINT (x4, 1))
            {
            case 295:
              switch (pattern315 (x2))
                {
                case 0:
                  if (!(
#line 3497 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 123 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                    return -1;
                  return 1823; /* neon_vcmla_lane0v4hf */

                case 1:
                  if (!
#line 3512 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                    return -1;
                  return 1843; /* neon_vcmla_laneq0v4hf */

                case 2:
                  if (!(
#line 3497 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 124 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                    return -1;
                  return 1827; /* neon_vcmla_lane0v8hf */

                case 3:
                  if (!
#line 3527 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                    return -1;
                  return 1847; /* neon_vcmlaq_lane0v8hf */

                case 4:
                  if (!
#line 3497 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                    return -1;
                  return 1831; /* neon_vcmla_lane0v2sf */

                case 5:
                  if (!
#line 3512 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                    return -1;
                  return 1839; /* neon_vcmla_laneq0v2sf */

                case 6:
                  if (!
#line 3497 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                    return -1;
                  return 1835; /* neon_vcmla_lane0v4sf */

                case 7:
                  if (!
#line 3527 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                    return -1;
                  return 1851; /* neon_vcmlaq_lane0v4sf */

                default:
                  return -1;
                }

            case 296:
              switch (pattern315 (x2))
                {
                case 0:
                  if (!(
#line 3497 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 123 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                    return -1;
                  return 1824; /* neon_vcmla_lane90v4hf */

                case 1:
                  if (!
#line 3512 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                    return -1;
                  return 1844; /* neon_vcmla_laneq90v4hf */

                case 2:
                  if (!(
#line 3497 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 124 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                    return -1;
                  return 1828; /* neon_vcmla_lane90v8hf */

                case 3:
                  if (!
#line 3527 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                    return -1;
                  return 1848; /* neon_vcmlaq_lane90v8hf */

                case 4:
                  if (!
#line 3497 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                    return -1;
                  return 1832; /* neon_vcmla_lane90v2sf */

                case 5:
                  if (!
#line 3512 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                    return -1;
                  return 1840; /* neon_vcmla_laneq90v2sf */

                case 6:
                  if (!
#line 3497 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                    return -1;
                  return 1836; /* neon_vcmla_lane90v4sf */

                case 7:
                  if (!
#line 3527 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                    return -1;
                  return 1852; /* neon_vcmlaq_lane90v4sf */

                default:
                  return -1;
                }

            case 297:
              switch (pattern315 (x2))
                {
                case 0:
                  if (!(
#line 3497 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 123 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                    return -1;
                  return 1825; /* neon_vcmla_lane180v4hf */

                case 1:
                  if (!
#line 3512 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                    return -1;
                  return 1845; /* neon_vcmla_laneq180v4hf */

                case 2:
                  if (!(
#line 3497 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 124 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                    return -1;
                  return 1829; /* neon_vcmla_lane180v8hf */

                case 3:
                  if (!
#line 3527 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                    return -1;
                  return 1849; /* neon_vcmlaq_lane180v8hf */

                case 4:
                  if (!
#line 3497 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                    return -1;
                  return 1833; /* neon_vcmla_lane180v2sf */

                case 5:
                  if (!
#line 3512 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                    return -1;
                  return 1841; /* neon_vcmla_laneq180v2sf */

                case 6:
                  if (!
#line 3497 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                    return -1;
                  return 1837; /* neon_vcmla_lane180v4sf */

                case 7:
                  if (!
#line 3527 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                    return -1;
                  return 1853; /* neon_vcmlaq_lane180v4sf */

                default:
                  return -1;
                }

            case 298:
              switch (pattern315 (x2))
                {
                case 0:
                  if (!(
#line 3497 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 123 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                    return -1;
                  return 1826; /* neon_vcmla_lane270v4hf */

                case 1:
                  if (!
#line 3512 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                    return -1;
                  return 1846; /* neon_vcmla_laneq270v4hf */

                case 2:
                  if (!(
#line 3497 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 124 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
                    return -1;
                  return 1830; /* neon_vcmla_lane270v8hf */

                case 3:
                  if (!
#line 3527 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                    return -1;
                  return 1850; /* neon_vcmlaq_lane270v8hf */

                case 4:
                  if (!
#line 3497 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                    return -1;
                  return 1834; /* neon_vcmla_lane270v2sf */

                case 5:
                  if (!
#line 3512 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                    return -1;
                  return 1842; /* neon_vcmla_laneq270v2sf */

                case 6:
                  if (!
#line 3497 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                    return -1;
                  return 1838; /* neon_vcmla_lane270v4sf */

                case 7:
                  if (!
#line 3527 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
                    return -1;
                  return 1854; /* neon_vcmlaq_lane270v4sf */

                default:
                  return -1;
                }

            case 289:
              switch (pattern317 (x2))
                {
                case 0:
                  if (!
#line 3560 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_DOTPROD))
                    return -1;
                  return 1859; /* neon_sdot_lanev8qi */

                case 1:
                  if (!
#line 3560 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_DOTPROD))
                    return -1;
                  return 1861; /* neon_sdot_lanev16qi */

                default:
                  return -1;
                }

            case 290:
              switch (pattern317 (x2))
                {
                case 0:
                  if (!
#line 3560 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_DOTPROD))
                    return -1;
                  return 1860; /* neon_udot_lanev8qi */

                case 1:
                  if (!
#line 3560 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_DOTPROD))
                    return -1;
                  return 1862; /* neon_udot_lanev16qi */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    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, 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:
      operands[2] = x4;
      x5 = XEXP (x3, 1);
      switch (GET_CODE (x5))
        {
        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
                  || !s_register_operand (operands[2], E_SImode))
                return -1;
              operands[1] = x5;
              if (!s_register_operand (operands[1], E_SImode))
                return -1;
              x6 = XEXP (x2, 1);
              operands[3] = x6;
              if (!s_register_operand (operands[3], E_SImode))
                return -1;
              if (
#line 1691 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && !arm_arch6))
                return 52; /* *mulsi3addsi */
              if (!
#line 1703 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6))
                return -1;
              return 53; /* *mulsi3addsi_v6 */

            case E_HFmode:
              if (pattern253 (x2, E_HFmode) != 0
                  || !
#line 1161 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
                return -1;
              return 699; /* *mulsf3addhf_vfp */

            case E_SFmode:
              if (pattern253 (x2, E_SFmode) != 0
                  || !
#line 1172 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
                return -1;
              return 700; /* *mulsf3addsf_vfp */

            case E_DFmode:
              if (pattern253 (x2, E_DFmode) != 0
                  || !
#line 1183 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
                return -1;
              return 701; /* *muldf3adddf_vfp */

            case E_V8QImode:
              if (pattern253 (x2, E_V8QImode) != 0
                  || !
#line 662 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!false || flag_unsafe_math_optimizations)))
                return -1;
              return 1043; /* mulv8qi3addv8qi_neon */

            case E_V16QImode:
              if (pattern253 (x2, E_V16QImode) != 0
                  || !
#line 662 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!false || flag_unsafe_math_optimizations)))
                return -1;
              return 1044; /* mulv16qi3addv16qi_neon */

            case E_V4HImode:
              if (pattern253 (x2, E_V4HImode) != 0
                  || !
#line 662 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!false || flag_unsafe_math_optimizations)))
                return -1;
              return 1045; /* mulv4hi3addv4hi_neon */

            case E_V8HImode:
              if (pattern253 (x2, E_V8HImode) != 0
                  || !
#line 662 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!false || flag_unsafe_math_optimizations)))
                return -1;
              return 1046; /* mulv8hi3addv8hi_neon */

            case E_V2SImode:
              if (pattern253 (x2, E_V2SImode) != 0
                  || !
#line 662 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!false || flag_unsafe_math_optimizations)))
                return -1;
              return 1047; /* mulv2si3addv2si_neon */

            case E_V4SImode:
              if (pattern253 (x2, E_V4SImode) != 0
                  || !
#line 662 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!false || flag_unsafe_math_optimizations)))
                return -1;
              return 1048; /* mulv4si3addv4si_neon */

            case E_V2SFmode:
              if (pattern253 (x2, E_V2SFmode) != 0
                  || !
#line 662 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!true || flag_unsafe_math_optimizations)))
                return -1;
              return 1049; /* mulv2sf3addv2sf_neon */

            case E_V4SFmode:
              if (pattern253 (x2, E_V4SFmode) != 0
                  || !
#line 662 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!true || flag_unsafe_math_optimizations)))
                return -1;
              return 1050; /* mulv4sf3addv4sf_neon */

            case E_V8HFmode:
              if (pattern253 (x2, E_V8HFmode) != 0
                  || !
#line 675 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST && (!true || flag_unsafe_math_optimizations)))
                return -1;
              return 1051; /* mulv8hf3addv8hf_neon */

            case E_V4HFmode:
              if (pattern253 (x2, E_V4HFmode) != 0
                  || !
#line 675 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST && (!true || flag_unsafe_math_optimizations)))
                return -1;
              return 1052; /* mulv4hf3addv4hf_neon */

            default:
              return -1;
            }

        case CONST_INT:
          operands[3] = x5;
          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
              || !s_register_operand (operands[2], E_SImode))
            return -1;
          x6 = XEXP (x2, 1);
          operands[1] = x6;
          if (!s_register_operand (operands[1], E_SImode)
              || !
#line 9065 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 241; /* *add_multsi */

        default:
          return -1;
        }

    case SIGN_EXTEND:
      x5 = XEXP (x3, 1);
      if (GET_CODE (x5) != SIGN_EXTEND)
        return -1;
      x7 = XEXP (x4, 0);
      switch (GET_CODE (x7))
        {
        case REG:
        case SUBREG:
          switch (GET_MODE (operands[0]))
            {
            case E_DImode:
              if (pattern254 (x2, E_DImode) != 0
                  || GET_MODE (x5) != E_DImode)
                return -1;
              x6 = XEXP (x2, 1);
              if (!s_register_operand (x6, E_DImode))
                return -1;
              switch (GET_MODE (x7))
                {
                case E_SImode:
                  operands[2] = x7;
                  if (!s_register_operand (operands[2], E_SImode))
                    return -1;
                  x8 = XEXP (x5, 0);
                  operands[3] = x8;
                  if (!s_register_operand (operands[3], E_SImode))
                    return -1;
                  operands[1] = x6;
                  if (
#line 1802 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && !arm_arch6))
                    return 59; /* *mulsidi3adddi */
                  if (!
#line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6))
                    return -1;
                  return 60; /* *mulsidi3adddi_v6 */

                case E_HImode:
                  operands[1] = x7;
                  if (!s_register_operand (operands[1], E_HImode))
                    return -1;
                  x8 = XEXP (x5, 0);
                  operands[2] = x8;
                  if (!s_register_operand (operands[2], E_HImode))
                    return -1;
                  operands[3] = x6;
                  if (!
#line 2116 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY))
                    return -1;
                  return 78; /* maddhidi4 */

                default:
                  return -1;
                }

            case E_SImode:
              if (pattern254 (x2, E_SImode) != 0)
                return -1;
              operands[1] = x7;
              if (!s_register_operand (operands[1], E_HImode)
                  || GET_MODE (x5) != E_SImode)
                return -1;
              x8 = XEXP (x5, 0);
              operands[2] = x8;
              if (!s_register_operand (operands[2], E_HImode))
                return -1;
              x6 = XEXP (x2, 1);
              operands[3] = x6;
              if (!s_register_operand (operands[3], E_SImode)
                  || !
#line 2072 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY))
                return -1;
              return 75; /* maddhisi4 */

            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]
              || pattern254 (x2, E_DImode) != 0)
            return -1;
          x10 = XEXP (x7, 0);
          operands[1] = x10;
          if (!s_register_operand (operands[1], E_SImode)
              || GET_MODE (x5) != E_DImode)
            return -1;
          x6 = XEXP (x2, 1);
          operands[3] = x6;
          if (!s_register_operand (operands[3], E_DImode))
            return -1;
          x8 = XEXP (x5, 0);
          switch (GET_CODE (x8))
            {
            case REG:
            case SUBREG:
              operands[2] = x8;
              if (!s_register_operand (operands[2], E_HImode)
                  || !
#line 2132 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY))
                return -1;
              return 79; /* *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 2149 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY))
                return -1;
              return 80; /* *maddhidi4tt */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case ZERO_EXTEND:
      if (GET_MODE (x4) != E_DImode)
        return -1;
      x5 = XEXP (x3, 1);
      if (GET_CODE (x5) != ZERO_EXTEND
          || GET_MODE (x5) != E_DImode
          || !s_register_operand (operands[0], E_DImode)
          || GET_MODE (x2) != E_DImode
          || GET_MODE (x3) != E_DImode)
        return -1;
      x7 = XEXP (x4, 0);
      operands[2] = x7;
      if (!s_register_operand (operands[2], E_SImode))
        return -1;
      x8 = XEXP (x5, 0);
      operands[3] = x8;
      if (!s_register_operand (operands[3], E_SImode))
        return -1;
      x6 = XEXP (x2, 1);
      operands[1] = x6;
      if (!s_register_operand (operands[1], E_DImode))
        return -1;
      if (
#line 1906 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && !arm_arch6))
        return 65; /* *umulsidi3adddi */
      if (!
#line 1919 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6))
        return -1;
      return 66; /* *umulsidi3adddi_v6 */

    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;
      x5 = XEXP (x3, 1);
      if (GET_MODE (x5) != E_SImode)
        return -1;
      x6 = XEXP (x2, 1);
      operands[3] = x6;
      if (!s_register_operand (operands[3], E_SImode))
        return -1;
      switch (GET_CODE (x5))
        {
        case SIGN_EXTEND:
          x8 = XEXP (x5, 0);
          operands[2] = x8;
          if (!s_register_operand (operands[2], E_HImode)
              || !
#line 2087 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY))
            return -1;
          return 76; /* *maddhisi4tb */

        case ASHIFTRT:
          x14 = XEXP (x5, 1);
          if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
            return -1;
          x8 = XEXP (x5, 0);
          operands[2] = x8;
          if (!s_register_operand (operands[2], E_SImode)
              || !
#line 2102 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY))
            return -1;
          return 77; /* *maddhisi4tt */

        default:
          return -1;
        }

    case VEC_SELECT:
      if (pattern171 (x3, 3, 1) != 0)
        return -1;
      x5 = XEXP (x3, 1);
      x14 = XEXP (x5, 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;
      x6 = XEXP (x2, 1);
      if (pattern398 (x6, E_V2SImode, VEC_SELECT, MULT) != 0)
        return -1;
      x17 = XEXP (x6, 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 (x6, 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 (pattern439 (x2))
        {
        case 0:
          switch (pattern449 (x2, SIGN_EXTEND))
            {
            case 0:
              if (!
#line 1463 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 560; /* iwmmxt_wmadds */

            case 1:
              if (!
#line 194 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 596; /* iwmmxt_wmaddsx */

            default:
              return -1;
            }

        case 1:
          switch (pattern449 (x2, ZERO_EXTEND))
            {
            case 0:
              if (!
#line 1482 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 561; /* iwmmxt_wmaddu */

            case 1:
              if (!
#line 213 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 597; /* iwmmxt_wmaddux */

            default:
              return -1;
            }

        default:
          return -1;
        }

    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, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  switch (GET_CODE (x3))
    {
    case REG:
    case SUBREG:
      return recog_69 (x1, insn, pnum_clobbers);

    case SIGN_EXTEND:
      switch (pattern137 (x2, pnum_clobbers))
        {
        case 0:
          if (!
#line 497 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          *pnum_clobbers = 1;
          return 2; /* *adddi_sesidi_di */

        case 1:
          if (!
#line 5629 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
            return -1;
          return 174; /* *arm_extendhisi2addsi */

        case 2:
          if (!
#line 5723 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
            return -1;
          return 178; /* *arm_extendqisi2addsi */

        case 3:
          if (!
#line 1426 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1277; /* widen_ssumv8qi3 */

        case 4:
          if (!
#line 1426 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1278; /* widen_ssumv4hi3 */

        case 5:
          if (!
#line 1426 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1279; /* widen_ssumv2si3 */

        case 6:
          if (vect_par_constant_low (operands[2], E_V16QImode)
              && 
#line 1398 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1271; /* vec_sel_widen_ssum_lov16qiv8qi3 */
          if (!vect_par_constant_high (operands[2], E_V16QImode)
              || !
#line 1413 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1274; /* vec_sel_widen_ssum_hiv16qiv8qi3 */

        case 7:
          if (vect_par_constant_low (operands[2], E_V8HImode)
              && 
#line 1398 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1272; /* vec_sel_widen_ssum_lov8hiv4hi3 */
          if (!vect_par_constant_high (operands[2], E_V8HImode)
              || !
#line 1413 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1275; /* vec_sel_widen_ssum_hiv8hiv4hi3 */

        case 8:
          if (vect_par_constant_low (operands[2], E_V4SImode)
              && 
#line 1398 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1273; /* vec_sel_widen_ssum_lov4siv2si3 */
          if (!vect_par_constant_high (operands[2], E_V4SImode)
              || !
#line 1413 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1276; /* vec_sel_widen_ssum_hiv4siv2si3 */

        default:
          return -1;
        }

    case ZERO_EXTEND:
      switch (pattern137 (x2, pnum_clobbers))
        {
        case 0:
          if (!
#line 527 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          *pnum_clobbers = 1;
          return 3; /* *adddi_zesidi_di */

        case 1:
          if (!
#line 5388 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
            return -1;
          return 167; /* *arm_zero_extendhisi2addsi */

        case 2:
          if (!
#line 5458 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_INT_SIMD))
            return -1;
          return 170; /* *arm_zero_extendqisi2addsi */

        case 3:
          if (!
#line 1495 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1286; /* widen_usumv8qi3 */

        case 4:
          if (!
#line 1495 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1287; /* widen_usumv4hi3 */

        case 5:
          if (!
#line 1495 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1288; /* widen_usumv2si3 */

        case 6:
          if (vect_par_constant_low (operands[2], E_V16QImode)
              && 
#line 1468 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1280; /* vec_sel_widen_usum_lov16qiv8qi3 */
          if (!vect_par_constant_high (operands[2], E_V16QImode)
              || !
#line 1483 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1283; /* vec_sel_widen_usum_hiv16qiv8qi3 */

        case 7:
          if (vect_par_constant_low (operands[2], E_V8HImode)
              && 
#line 1468 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1281; /* vec_sel_widen_usum_lov8hiv4hi3 */
          if (!vect_par_constant_high (operands[2], E_V8HImode)
              || !
#line 1483 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1284; /* vec_sel_widen_usum_hiv8hiv4hi3 */

        case 8:
          if (vect_par_constant_low (operands[2], E_V4SImode)
              && 
#line 1468 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1282; /* vec_sel_widen_usum_lov4siv2si3 */
          if (!vect_par_constant_high (operands[2], E_V4SImode)
              || !
#line 1483 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1285; /* vec_sel_widen_usum_hiv4siv2si3 */

        default:
          return -1;
        }

    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);
          if (GET_MODE (x6) != E_SImode)
            return -1;
          switch (GET_CODE (x6))
            {
            case LTU:
              if (pattern221 (x6, E_CC_Cmode) != 0)
                return -1;
              if (arm_not_operand (operands[2], E_SImode)
                  && 
#line 1011 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return 19; /* *addsi3_carryin_ltu */
              if (pnum_clobbers == NULL
                  || !arm_rhs_operand (operands[2], E_SImode)
                  || !
#line 1065 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              *pnum_clobbers = 1;
              return 25; /* *addsi3_carryin_clobercc_ltu */

            case GEU:
              x7 = XEXP (x6, 0);
              if (GET_CODE (x7) == REG
                  && REGNO (x7) == 100
                  && GET_MODE (x7) == E_CCmode)
                {
                  x8 = XEXP (x6, 1);
                  if (x8 == const_int_rtx[MAX_SAVED_CONST_INT + 0])
                    {
                      if (arm_not_operand (operands[2], E_SImode)
                          && 
#line 1011 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                        return 20; /* *addsi3_carryin_geu */
                      if (pnum_clobbers != NULL
                          && arm_rhs_operand (operands[2], E_SImode)
                          && 
#line 1065 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                        {
                          *pnum_clobbers = 1;
                          return 26; /* *addsi3_carryin_clobercc_geu */
                        }
                    }
                }
              if (!s_register_operand (operands[2], E_SImode))
                return -1;
              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 1693 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                return -1;
              return 858; /* thumb1_addsi3_addgeu */

            default:
              return -1;
            }

        case LTU:
          if (pattern251 (x2, E_CC_Cmode) != 0
              || !
#line 1029 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 21; /* *addsi3_carryin_alt2_ltu */

        case GEU:
          if (pattern251 (x2, E_CCmode) != 0
              || !
#line 1029 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 22; /* *addsi3_carryin_alt2_geu */

        case MULT:
        case ASHIFT:
        case ROTATE:
        case ASHIFTRT:
        case LSHIFTRT:
        case ROTATERT:
          if (pattern252 (x3) != 0)
            return -1;
          x6 = XEXP (x2, 1);
          if (GET_MODE (x6) != E_SImode)
            return -1;
          switch (GET_CODE (x6))
            {
            case LTU:
              if (pattern221 (x6, E_CC_Cmode) != 0
                  || !
#line 1050 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 23; /* *addsi3_carryin_shift_ltu */

            case GEU:
              if (pattern221 (x6, E_CCmode) != 0
                  || !
#line 1050 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 24; /* *addsi3_carryin_shift_geu */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case MULT:
      return recog_70 (x1, insn, pnum_clobbers);

    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      operands[2] = x3;
      if (pattern172 (x2) != 0
          || !
#line 9079 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && GET_CODE (operands[2]) != MULT))
        return -1;
      return 246; /* *add_shiftsi */

    case VEC_SELECT:
      switch (pattern134 (x2))
        {
        case 0:
          if (!
#line 1513 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1289; /* quad_halves_plusv4si */

        case 1:
          if (!
#line 1526 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && flag_unsafe_math_optimizations))
            return -1;
          return 1294; /* quad_halves_plusv4sf */

        case 2:
          if (!
#line 1541 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1297; /* quad_halves_plusv8hi */

        case 3:
          if (!
#line 1560 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1302; /* quad_halves_plusv16qi */

        default:
          return -1;
        }

    case UNSPEC:
      if (XVECLEN (x3, 0) != 2)
        return -1;
      x9 = XVECEXP (x3, 0, 0);
      operands[2] = x9;
      x10 = XVECEXP (x3, 0, 1);
      operands[3] = x10;
      x6 = XEXP (x2, 1);
      operands[1] = x6;
      switch (XINT (x3, 1))
        {
        case 76:
          switch (GET_MODE (operands[0]))
            {
            case E_V8QImode:
              if (pattern296 (x2, E_V8QImode) != 0
                  || !
#line 3243 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1676; /* neon_vabasv8qi */

            case E_V16QImode:
              if (pattern296 (x2, E_V16QImode) != 0
                  || !
#line 3243 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1678; /* neon_vabasv16qi */

            case E_V4HImode:
              if (pattern296 (x2, E_V4HImode) != 0
                  || !
#line 3243 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1680; /* neon_vabasv4hi */

            case E_V8HImode:
              if (pattern296 (x2, E_V8HImode) != 0
                  || !
#line 3243 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1682; /* neon_vabasv8hi */

            case E_V2SImode:
              if (pattern296 (x2, E_V2SImode) != 0
                  || !
#line 3243 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1684; /* neon_vabasv2si */

            case E_V4SImode:
              if (pattern296 (x2, E_V4SImode) != 0
                  || !
#line 3243 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1686; /* neon_vabasv4si */

            default:
              return -1;
            }

        case 77:
          switch (GET_MODE (operands[0]))
            {
            case E_V8QImode:
              if (pattern296 (x2, E_V8QImode) != 0
                  || !
#line 3243 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1677; /* neon_vabauv8qi */

            case E_V16QImode:
              if (pattern296 (x2, E_V16QImode) != 0
                  || !
#line 3243 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1679; /* neon_vabauv16qi */

            case E_V4HImode:
              if (pattern296 (x2, E_V4HImode) != 0
                  || !
#line 3243 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1681; /* neon_vabauv4hi */

            case E_V8HImode:
              if (pattern296 (x2, E_V8HImode) != 0
                  || !
#line 3243 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1683; /* neon_vabauv8hi */

            case E_V2SImode:
              if (pattern296 (x2, E_V2SImode) != 0
                  || !
#line 3243 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1685; /* neon_vabauv2si */

            case E_V4SImode:
              if (pattern296 (x2, E_V4SImode) != 0
                  || !
#line 3243 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1687; /* neon_vabauv4si */

            default:
              return -1;
            }

        case 78:
          switch (GET_MODE (operands[0]))
            {
            case E_V8HImode:
              if (pattern297 (x2, E_V8HImode, E_V8QImode) != 0
                  || !
#line 3254 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1688; /* neon_vabalsv8qi */

            case E_V4SImode:
              if (pattern297 (x2, E_V4SImode, E_V4HImode) != 0
                  || !
#line 3254 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1690; /* neon_vabalsv4hi */

            case E_V2DImode:
              if (pattern297 (x2, E_V2DImode, E_V2SImode) != 0
                  || !
#line 3254 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1692; /* neon_vabalsv2si */

            default:
              return -1;
            }

        case 79:
          switch (GET_MODE (operands[0]))
            {
            case E_V8HImode:
              if (pattern297 (x2, E_V8HImode, E_V8QImode) != 0
                  || !
#line 3254 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1689; /* neon_vabaluv8qi */

            case E_V4SImode:
              if (pattern297 (x2, E_V4SImode, E_V4HImode) != 0
                  || !
#line 3254 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1691; /* neon_vabaluv4hi */

            case E_V2DImode:
              if (pattern297 (x2, E_V2DImode, E_V2SImode) != 0
                  || !
#line 3254 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1693; /* neon_vabaluv2si */

            default:
              return -1;
            }

        default:
          return -1;
        }

    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, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    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)
            return -1;
          x5 = XEXP (x2, 0);
          operands[3] = x5;
          if (!s_register_operand (operands[3], E_SImode)
              || GET_MODE (x3) != E_SImode
              || !s_register_operand (operands[2], E_SImode))
            return -1;
          x6 = XEXP (x3, 1);
          operands[1] = x6;
          if (!s_register_operand (operands[1], E_SImode)
              || !
#line 1779 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch_thumb2))
            return -1;
          return 58; /* *mulsi3subsi */

        case E_HFmode:
          if (pattern278 (x2, E_HFmode) != 0
              || !
#line 1229 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 705; /* *mulhf3neghfaddhf_vfp */

        case E_SFmode:
          if (pattern278 (x2, E_SFmode) != 0
              || !
#line 1240 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
            return -1;
          return 706; /* *mulsf3negsfaddsf_vfp */

        case E_DFmode:
          if (pattern278 (x2, E_DFmode) != 0
              || !
#line 1251 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
            return -1;
          return 707; /* *fmuldf3negdfadddf_vfp */

        case E_V8QImode:
          if (pattern278 (x2, E_V8QImode) != 0
              || !
#line 685 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!false || flag_unsafe_math_optimizations)))
            return -1;
          return 1053; /* mulv8qi3negv8qiaddv8qi_neon */

        case E_V16QImode:
          if (pattern278 (x2, E_V16QImode) != 0
              || !
#line 685 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!false || flag_unsafe_math_optimizations)))
            return -1;
          return 1054; /* mulv16qi3negv16qiaddv16qi_neon */

        case E_V4HImode:
          if (pattern278 (x2, E_V4HImode) != 0
              || !
#line 685 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!false || flag_unsafe_math_optimizations)))
            return -1;
          return 1055; /* mulv4hi3negv4hiaddv4hi_neon */

        case E_V8HImode:
          if (pattern278 (x2, E_V8HImode) != 0
              || !
#line 685 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!false || flag_unsafe_math_optimizations)))
            return -1;
          return 1056; /* mulv8hi3negv8hiaddv8hi_neon */

        case E_V2SImode:
          if (pattern278 (x2, E_V2SImode) != 0
              || !
#line 685 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!false || flag_unsafe_math_optimizations)))
            return -1;
          return 1057; /* mulv2si3negv2siaddv2si_neon */

        case E_V4SImode:
          if (pattern278 (x2, E_V4SImode) != 0
              || !
#line 685 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!false || flag_unsafe_math_optimizations)))
            return -1;
          return 1058; /* mulv4si3negv4siaddv4si_neon */

        case E_V2SFmode:
          if (pattern278 (x2, E_V2SFmode) != 0
              || !
#line 685 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!true || flag_unsafe_math_optimizations)))
            return -1;
          return 1059; /* mulv2sf3negv2sfaddv2sf_neon */

        case E_V4SFmode:
          if (pattern278 (x2, E_V4SFmode) != 0
              || !
#line 685 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!true || flag_unsafe_math_optimizations)))
            return -1;
          return 1060; /* mulv4sf3negv4sfaddv4sf_neon */

        default:
          return -1;
        }

    case SIGN_EXTEND:
      if (GET_MODE (x4) != E_DImode)
        return -1;
      x7 = XEXP (x4, 0);
      if (GET_CODE (x7) != VEC_SELECT
          || pattern279 (x7) != 0)
        return -1;
      x6 = XEXP (x3, 1);
      if (GET_CODE (x6) != SIGN_EXTEND
          || GET_MODE (x6) != E_DImode)
        return -1;
      x8 = XEXP (x6, 0);
      if (pattern386 (x8) != 0
          || !register_operand (operands[0], E_DImode)
          || GET_MODE (x2) != E_DImode)
        return -1;
      x5 = XEXP (x2, 0);
      operands[1] = x5;
      if (!register_operand (operands[1], E_DImode)
          || GET_MODE (x3) != E_DImode)
        return -1;
      switch (pattern432 (x3))
        {
        case 0:
          if (!
#line 794 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 633; /* iwmmxt_wmiawbbn */

        case 1:
          if (!
#line 807 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 634; /* iwmmxt_wmiawbtn */

        case 2:
          if (!
#line 820 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 635; /* iwmmxt_wmiawtbn */

        case 3:
          if (!
#line 833 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 636; /* iwmmxt_wmiawttn */

        default:
          return -1;
        }

    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];
  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, 1);
  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:
      if (!s_register_operand (operands[0], E_SImode)
          || GET_MODE (x2) != E_SImode)
        return -1;
      x4 = XEXP (x2, 0);
      operands[1] = x4;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      if (GET_CODE (x3) == LTU
          && GET_MODE (x3) == E_SImode
          && pattern221 (x3, E_CC_Cmode) == 0
          && 
#line 1171 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return 31; /* *subsi3_carryin_const0 */
      if (pnum_clobbers == NULL)
        return -1;
      operands[4] = x3;
      if (!arm_comparison_operator (operands[4], E_SImode))
        return -1;
      x5 = XEXP (x3, 0);
      operands[2] = x5;
      if (!s_register_operand (operands[2], E_SImode))
        return -1;
      x6 = XEXP (x3, 1);
      operands[3] = x6;
      if (!arm_rhs_operand (operands[3], E_SImode))
        return -1;
      if (
#line 9515 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
        {
          *pnum_clobbers = 1;
          return 261; /* *cond_sub */
        }
      if (!
#line 864 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return -1;
      *pnum_clobbers = 1;
      return 907; /* *thumb2_cond_sub */

    case CONST_INT:
    case REG:
    case SUBREG:
      operands[2] = x3;
      x4 = XEXP (x2, 0);
      operands[1] = x4;
      switch (GET_MODE (operands[0]))
        {
        case E_DImode:
          if (pnum_clobbers == NULL
              || GET_MODE (x2) != E_DImode)
            return -1;
          if (arm_general_register_operand (operands[0], E_DImode)
              && arm_general_register_operand (operands[1], E_DImode)
              && arm_general_register_operand (operands[2], E_DImode)
              && 
#line 1307 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && !TARGET_NEON))
            {
              *pnum_clobbers = 1;
              return 37; /* *arm_subdi3 */
            }
          if (register_operand (operands[0], E_DImode)
              && register_operand (operands[1], E_DImode)
              && register_operand (operands[2], E_DImode)
              && 
#line 132 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            {
              *pnum_clobbers = 1;
              return 812; /* *thumb_subdi3 */
            }
          if (!s_register_operand (operands[0], E_DImode)
              || !s_register_operand (operands[1], E_DImode)
              || !s_register_operand (operands[2], E_DImode)
              || !
#line 595 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          *pnum_clobbers = 1;
          return 1034; /* subdi3_neon */

        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 1493 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 43; /* *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 420 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 458; /* *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 560 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!false || flag_unsafe_math_optimizations)))
            return -1;
          return 1023; /* *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 420 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 459; /* *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 560 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!false || flag_unsafe_math_optimizations)))
            return -1;
          return 1021; /* *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 420 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 460; /* *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 560 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!false || flag_unsafe_math_optimizations)))
            return -1;
          return 1019; /* *subv8qi3_neon */

        case E_HFmode:
          if (pattern3 (x2, E_HFmode) != 0
              || !
#line 989 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 684; /* subhf3 */

        case E_SFmode:
          if (pattern3 (x2, E_SFmode) != 0
              || !
#line 999 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
            return -1;
          return 685; /* *subsf3_vfp */

        case E_DFmode:
          if (pattern3 (x2, E_DFmode) != 0
              || !
#line 1009 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
            return -1;
          return 686; /* *subdf3_vfp */

        case E_V16QImode:
          if (pattern3 (x2, E_V16QImode) != 0
              || !
#line 560 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!false || flag_unsafe_math_optimizations)))
            return -1;
          return 1020; /* *subv16qi3_neon */

        case E_V8HImode:
          if (pattern3 (x2, E_V8HImode) != 0
              || !
#line 560 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!false || flag_unsafe_math_optimizations)))
            return -1;
          return 1022; /* *subv8hi3_neon */

        case E_V4SImode:
          if (pattern3 (x2, E_V4SImode) != 0
              || !
#line 560 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!false || flag_unsafe_math_optimizations)))
            return -1;
          return 1024; /* *subv4si3_neon */

        case E_V4HFmode:
          if (pattern3 (x2, E_V4HFmode) != 0)
            return -1;
          if (
#line 560 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!true || flag_unsafe_math_optimizations)))
            return 1025; /* *subv4hf3_neon */
          if (
#line 574 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST && flag_unsafe_math_optimizations))
            return 1031; /* subv4hf3 */
          if (!
#line 585 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1033; /* subv4hf3_fp16 */

        case E_V8HFmode:
          if (pattern3 (x2, E_V8HFmode) != 0)
            return -1;
          if (
#line 560 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!true || flag_unsafe_math_optimizations)))
            return 1026; /* *subv8hf3_neon */
          if (
#line 574 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST && flag_unsafe_math_optimizations))
            return 1030; /* subv8hf3 */
          if (!
#line 585 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1032; /* subv8hf3_fp16 */

        case E_V2SFmode:
          if (pattern3 (x2, E_V2SFmode) != 0
              || !
#line 560 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!true || flag_unsafe_math_optimizations)))
            return -1;
          return 1027; /* *subv2sf3_neon */

        case E_V4SFmode:
          if (pattern3 (x2, E_V4SFmode) != 0
              || !
#line 560 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!true || flag_unsafe_math_optimizations)))
            return -1;
          return 1028; /* *subv4sf3_neon */

        case E_V2DImode:
          if (pattern3 (x2, E_V2DImode) != 0
              || !
#line 560 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && (!false || flag_unsafe_math_optimizations)))
            return -1;
          return 1029; /* *subv2di3_neon */

        case E_QQmode:
          if (pattern3 (x2, E_QQmode) != 0
              || !
#line 62 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 2791; /* subqq3 */

        case E_HQmode:
          if (pattern3 (x2, E_HQmode) != 0
              || !
#line 62 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 2792; /* subhq3 */

        case E_SQmode:
          if (pattern3 (x2, E_SQmode) != 0
              || !
#line 62 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 2793; /* subsq3 */

        case E_UQQmode:
          if (pattern3 (x2, E_UQQmode) != 0
              || !
#line 62 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 2794; /* subuqq3 */

        case E_UHQmode:
          if (pattern3 (x2, E_UHQmode) != 0
              || !
#line 62 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 2795; /* subuhq3 */

        case E_USQmode:
          if (pattern3 (x2, E_USQmode) != 0
              || !
#line 62 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 2796; /* subusq3 */

        case E_HAmode:
          if (pattern3 (x2, E_HAmode) != 0
              || !
#line 62 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 2797; /* subha3 */

        case E_SAmode:
          if (pattern3 (x2, E_SAmode) != 0
              || !
#line 62 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 2798; /* subsa3 */

        case E_UHAmode:
          if (pattern3 (x2, E_UHAmode) != 0
              || !
#line 62 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 2799; /* subuha3 */

        case E_USAmode:
          if (pattern3 (x2, E_USAmode) != 0
              || !
#line 62 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT))
            return -1;
          return 2800; /* subusa3 */

        case E_V4QQmode:
          if (pattern3 (x2, E_V4QQmode) != 0
              || !
#line 72 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
            return -1;
          return 2801; /* subv4qq3 */

        case E_V2HQmode:
          if (pattern3 (x2, E_V2HQmode) != 0
              || !
#line 72 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
            return -1;
          return 2802; /* subv2hq3 */

        case E_V2HAmode:
          if (pattern3 (x2, E_V2HAmode) != 0
              || !
#line 72 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
            return -1;
          return 2803; /* subv2ha3 */

        default:
          return -1;
        }

    case ZERO_EXTEND:
      if (pattern173 (x2, pnum_clobbers) != 0
          || !
#line 1334 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      *pnum_clobbers = 1;
      return 38; /* *subdi_di_zesidi */

    case SIGN_EXTEND:
      if (pattern173 (x2, pnum_clobbers) != 0
          || !
#line 1359 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      *pnum_clobbers = 1;
      return 39; /* *subdi_di_sesidi */

    case MULT:
    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      if (GET_CODE (x3) == MULT)
        {
          res = recog_72 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      operands[2] = x3;
      if (!shift_operator (operands[2], E_SImode)
          || !s_register_operand (operands[0], E_SImode)
          || GET_MODE (x2) != E_SImode)
        return -1;
      x4 = XEXP (x2, 0);
      operands[1] = x4;
      if (!s_register_operand (operands[1], 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 (!shift_amount_operand (operands[4], E_SImode)
          || !
#line 9146 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 253; /* *sub_shiftsi */

    case SMIN:
    case SMAX:
    case UMIN:
    case UMAX:
      if (pnum_clobbers == NULL)
        return -1;
      operands[4] = x3;
      if (!minmax_operator (operands[4], E_SImode)
          || !s_register_operand (operands[0], E_SImode)
          || GET_MODE (x2) != E_SImode)
        return -1;
      x4 = XEXP (x2, 0);
      operands[1] = x4;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      x5 = XEXP (x3, 0);
      operands[2] = x5;
      if (!s_register_operand (operands[2], E_SImode))
        return -1;
      x6 = XEXP (x3, 1);
      operands[3] = x6;
      if (!arm_rhs_operand (operands[3], E_SImode)
          || !
#line 3943 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && !arm_eliminable_register (operands[1])
   && !(arm_restrict_it && CONST_INT_P (operands[3]))))
        return -1;
      *pnum_clobbers = 1;
      return 126; /* *minmax_arithsi_non_canon */

    case PLUS:
      if (pattern174 (x3, SIGN_EXTEND, E_DImode, MULT) != 0)
        return -1;
      x5 = XEXP (x3, 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 (pattern359 (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 (x3, 1);
      if (GET_CODE (x6) != MULT
          || GET_MODE (x6) != E_DImode)
        return -1;
      x15 = XEXP (x6, 0);
      if (GET_CODE (x15) != SIGN_EXTEND
          || pattern348 (x6, E_HImode) != 0
          || !register_operand (operands[0], E_DImode)
          || GET_MODE (x2) != E_DImode)
        return -1;
      x4 = XEXP (x2, 0);
      operands[1] = x4;
      if (!register_operand (operands[1], E_DImode))
        return -1;
      switch (pattern457 (x3))
        {
        case 0:
          if (!
#line 657 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 625; /* iwmmxt_wmiabbn */

        case 1:
          if (!
#line 681 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 626; /* iwmmxt_wmiabtn */

        case 2:
          if (!
#line 705 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 627; /* iwmmxt_wmiatbn */

        case 3:
          if (!
#line 729 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 628; /* iwmmxt_wmiattn */

        default:
          return -1;
        }

    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];
  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, 0);
  switch (GET_CODE (x3))
    {
    case MINUS:
      if (GET_MODE (x3) != E_SImode)
        return -1;
      x4 = XEXP (x2, 1);
      if (GET_CODE (x4) != LTU
          || GET_MODE (x4) != E_SImode)
        return -1;
      x5 = XEXP (x4, 0);
      if (GET_CODE (x5) != REG
          || REGNO (x5) != 100
          || GET_MODE (x5) != E_CC_Cmode)
        return -1;
      x6 = XEXP (x4, 1);
      if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
          || !s_register_operand (operands[0], E_SImode)
          || GET_MODE (x2) != E_SImode)
        return -1;
      x7 = XEXP (x3, 0);
      switch (GET_CODE (x7))
        {
        case CONST_INT:
        case REG:
        case SUBREG:
          operands[1] = x7;
          x8 = XEXP (x3, 1);
          operands[2] = x8;
          switch (GET_CODE (operands[2]))
            {
            case REG:
            case SUBREG:
              if (!s_register_operand (operands[2], E_SImode)
                  || !reg_or_int_operand (operands[1], E_SImode)
                  || !
#line 1145 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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:
              if (!shift_operator (operands[2], E_SImode)
                  || !s_register_operand (operands[1], E_SImode))
                return -1;
              x9 = XEXP (x8, 0);
              operands[3] = x9;
              if (!s_register_operand (operands[3], E_SImode))
                return -1;
              x10 = XEXP (x8, 1);
              operands[4] = x10;
              if (!reg_or_int_operand (operands[4], E_SImode)
                  || !
#line 1228 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 35; /* *subsi3_carryin_shift */

            default:
              return -1;
            }

        case MULT:
        case ASHIFT:
        case ROTATE:
        case ASHIFTRT:
        case LSHIFTRT:
        case ROTATERT:
          if (pattern252 (x3) != 0
              || !
#line 1245 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 36; /* *rsbsi3_carryin_shift */

        default:
          return -1;
        }

    case PLUS:
      if (GET_MODE (x3) != E_SImode)
        return -1;
      x4 = XEXP (x2, 1);
      if (GET_CODE (x4) != LTU
          || GET_MODE (x4) != E_SImode
          || pattern221 (x4, E_CC_Cmode) != 0
          || !s_register_operand (operands[0], E_SImode)
          || GET_MODE (x2) != 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_neg_immediate_operand (operands[2], E_SImode)
          || !
#line 1161 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 30; /* *subsi3_carryin_const */

    case CONST_INT:
    case REG:
    case SUBREG:
      return recog_73 (x1, insn, pnum_clobbers);

    case ZERO_EXTEND:
      if (pnum_clobbers == NULL
          || GET_MODE (x3) != E_DImode
          || !s_register_operand (operands[0], E_DImode)
          || GET_MODE (x2) != E_DImode)
        return -1;
      x7 = XEXP (x3, 0);
      if (!s_register_operand (x7, E_SImode))
        return -1;
      x4 = XEXP (x2, 1);
      switch (GET_CODE (x4))
        {
        case REG:
        case SUBREG:
          operands[1] = x4;
          if (!s_register_operand (operands[1], E_DImode))
            return -1;
          operands[2] = x7;
          if (!
#line 1386 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          *pnum_clobbers = 1;
          return 40; /* *subdi_zesidi_di */

        case ZERO_EXTEND:
          if (GET_MODE (x4) != E_DImode)
            return -1;
          operands[1] = x7;
          x5 = XEXP (x4, 0);
          operands[2] = x5;
          if (!s_register_operand (operands[2], E_SImode)
              || !
#line 1444 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          *pnum_clobbers = 1;
          return 42; /* *subdi_zesidi_zesidi */

        default:
          return -1;
        }

    case SIGN_EXTEND:
      if (pnum_clobbers == NULL
          || pattern138 (x2) != 0
          || !
#line 1413 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      *pnum_clobbers = 1;
      return 41; /* *subdi_sesidi_di */

    case MULT:
      x7 = XEXP (x3, 0);
      switch (GET_CODE (x7))
        {
        case REG:
        case SUBREG:
          operands[2] = x7;
          x8 = XEXP (x3, 1);
          operands[3] = x8;
          x4 = XEXP (x2, 1);
          operands[1] = x4;
          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 (x2) != E_SImode
                  || GET_MODE (x3) != E_SImode
                  || !s_register_operand (operands[2], E_SImode)
                  || !s_register_operand (operands[1], E_SImode)
                  || !
#line 9065 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 242; /* *rsb_multsi */

            case REG:
            case SUBREG:
              switch (GET_MODE (operands[0]))
                {
                case E_HFmode:
                  if (pattern298 (x2, E_HFmode) != 0
                      || !
#line 1195 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
                    return -1;
                  return 702; /* *mulhf3subhf_vfp */

                case E_SFmode:
                  if (pattern298 (x2, E_SFmode) != 0
                      || !
#line 1206 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
                    return -1;
                  return 703; /* *mulsf3subsf_vfp */

                case E_DFmode:
                  if (pattern298 (x2, E_DFmode) != 0
                      || !
#line 1217 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
                    return -1;
                  return 704; /* *muldf3subdf_vfp */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case VEC_SELECT:
          if (pattern171 (x3, 2, 0) != 0)
            return -1;
          x8 = XEXP (x3, 1);
          x10 = XEXP (x8, 1);
          x11 = XVECEXP (x10, 0, 0);
          if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x12 = XVECEXP (x10, 0, 1);
          if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
            return -1;
          x4 = XEXP (x2, 1);
          if (pattern398 (x4, E_V2SImode, VEC_SELECT, MULT) != 0)
            return -1;
          x5 = XEXP (x4, 0);
          x13 = XEXP (x5, 1);
          if (pattern420 (x13, 3, 2) != 0)
            return -1;
          x6 = XEXP (x4, 1);
          if (GET_CODE (x6) != VEC_SELECT
              || GET_MODE (x6) != E_V2SImode)
            return -1;
          x14 = XEXP (x6, 1);
          if (GET_CODE (x14) != PARALLEL
              || XVECLEN (x14, 0) != 2)
            return -1;
          x15 = XVECEXP (x14, 0, 0);
          if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
            return -1;
          x16 = XVECEXP (x14, 0, 1);
          if (x16 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
            return -1;
          switch (pattern439 (x2))
            {
            case 0:
              if (pattern450 (x2, SIGN_EXTEND) != 0
                  || !
#line 232 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 598; /* iwmmxt_wmaddsn */

            case 1:
              if (pattern450 (x2, ZERO_EXTEND) != 0
                  || !
#line 251 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 599; /* iwmmxt_wmaddun */

            default:
              return -1;
            }

        case NEG:
          x17 = XEXP (x7, 0);
          operands[2] = x17;
          x8 = XEXP (x3, 1);
          operands[3] = x8;
          x4 = XEXP (x2, 1);
          operands[1] = x4;
          switch (GET_MODE (operands[0]))
            {
            case E_HFmode:
              if (pattern280 (x2, E_HFmode) != 0
                  || !
#line 1265 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
                return -1;
              return 708; /* *mulhf3neghfsubhf_vfp */

            case E_SFmode:
              if (pattern280 (x2, E_SFmode) != 0
                  || !
#line 1277 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
                return -1;
              return 709; /* *mulsf3negsfsubsf_vfp */

            case E_DFmode:
              if (pattern280 (x2, E_DFmode) != 0
                  || !
#line 1289 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
                return -1;
              return 710; /* *muldf3negdfsubdf_vfp */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      operands[2] = x3;
      if (pattern172 (x2) != 0
          || !
#line 9079 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && GET_CODE (operands[2]) != MULT))
        return -1;
      return 247; /* *rsb_shiftsi */

    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];
  rtx x2, x3, x4, x5, x6;
  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_DImode:
              if (GET_MODE (x2) != E_DImode)
                return -1;
              if (s_register_operand (operands[0], E_DImode)
                  && s_register_operand (operands[1], E_DImode)
                  && arm_anddi_operand_neon (operands[2], E_DImode)
                  && 
#line 2301 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && !TARGET_IWMMXT))
                return 81; /* *anddi3_insn */
              if (!register_operand (operands[0], E_DImode)
                  || !register_operand (operands[1], E_DImode)
                  || !register_operand (operands[2], E_DImode)
                  || !
#line 89 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 432; /* iwmmxt_anddi3 */

            case E_SImode:
              if (pattern157 (x2) != 0
                  || !
#line 2465 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 84; /* *arm_andsi3_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 317 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 440; /* *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 819 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1114; /* andv2si3 */

            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 317 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 441; /* *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 819 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1112; /* andv4hi3 */

            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 317 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 442; /* *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 819 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1110; /* andv8qi3 */

            case E_V16QImode:
              if (pattern255 (x2, E_V16QImode) != 0
                  || !
#line 819 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1111; /* andv16qi3 */

            case E_V8HImode:
              if (pattern255 (x2, E_V8HImode) != 0
                  || !
#line 819 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1113; /* andv8hi3 */

            case E_V4SImode:
              if (pattern255 (x2, E_V4SImode) != 0
                  || !
#line 819 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1115; /* andv4si3 */

            case E_V4HFmode:
              if (pattern255 (x2, E_V4HFmode) != 0
                  || !
#line 819 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1116; /* andv4hf3 */

            case E_V8HFmode:
              if (pattern255 (x2, E_V8HFmode) != 0
                  || !
#line 819 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1117; /* andv8hf3 */

            case E_V2SFmode:
              if (pattern255 (x2, E_V2SFmode) != 0
                  || !
#line 819 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1118; /* andv2sf3 */

            case E_V4SFmode:
              if (pattern255 (x2, E_V4SFmode) != 0
                  || !
#line 819 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1119; /* andv4sf3 */

            case E_V2DImode:
              if (pattern255 (x2, E_V2DImode) != 0
                  || !
#line 819 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1120; /* andv2di3 */

            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 103 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 433; /* iwmmxt_nanddi3 */

        default:
          return -1;
        }

    case ZERO_EXTEND:
      if (pattern138 (x2) != 0
          || !
#line 2348 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 82; /* *anddi_zesidi_di */

    case SIGN_EXTEND:
      if (pattern138 (x2) != 0
          || !
#line 2370 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 83; /* *anddi_sesdi_di */

    case NOT:
      switch (pattern140 (x2))
        {
        case 0:
          if (pattern222 (x2) != 0)
            return -1;
          x4 = XEXP (x2, 1);
          operands[2] = x4;
          x6 = XEXP (x3, 0);
          operands[1] = x6;
          if (
#line 2960 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return 94; /* *anddi_notdi_di */
          operands[1] = x4;
          operands[2] = x6;
          if (!
#line 895 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1144; /* bicdi3_neon */

        case 1:
          if (GET_MODE (x2) != E_SImode
              || GET_MODE (x3) != E_SImode)
            return -1;
          if (s_register_operand (operands[0], E_SImode))
            {
              x6 = XEXP (x3, 0);
              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 3058 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                    return 98; /* andsi_notsi_si */
                }
            }
          if (!register_operand (operands[0], E_SImode))
            return -1;
          x6 = XEXP (x3, 0);
          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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return -1;
          return 817; /* thumb1_bicsi3 */

        case 2:
          if (pattern223 (x2, E_V8QImode) != 0
              || !
#line 885 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1133; /* bicv8qi3_neon */

        case 3:
          if (pattern223 (x2, E_V16QImode) != 0
              || !
#line 885 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1134; /* bicv16qi3_neon */

        case 4:
          if (pattern223 (x2, E_V4HImode) != 0
              || !
#line 885 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1135; /* bicv4hi3_neon */

        case 5:
          if (pattern223 (x2, E_V8HImode) != 0
              || !
#line 885 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1136; /* bicv8hi3_neon */

        case 6:
          if (pattern223 (x2, E_V2SImode) != 0
              || !
#line 885 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1137; /* bicv2si3_neon */

        case 7:
          if (pattern223 (x2, E_V4SImode) != 0
              || !
#line 885 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1138; /* bicv4si3_neon */

        case 8:
          if (pattern223 (x2, E_V4HFmode) != 0
              || !
#line 885 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1139; /* bicv4hf3_neon */

        case 9:
          if (pattern223 (x2, E_V8HFmode) != 0
              || !
#line 885 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1140; /* bicv8hf3_neon */

        case 10:
          if (pattern223 (x2, E_V2SFmode) != 0
              || !
#line 885 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1141; /* bicv2sf3_neon */

        case 11:
          if (pattern223 (x2, E_V4SFmode) != 0
              || !
#line 885 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1142; /* bicv4sf3_neon */

        case 12:
          if (pattern223 (x2, E_V2DImode) != 0
              || !
#line 885 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1143; /* bicv2di3_neon */

        case 13:
          if (!
#line 3014 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 96; /* *anddi_notdi_zesidi */

        case 14:
          if (!
#line 2986 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 95; /* *anddi_notzesidi_di */

        case 15:
          if (!
#line 3035 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 97; /* *anddi_notsesidi_di */

        case 16:
          x4 = XEXP (x2, 1);
          operands[1] = x4;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          if (arm_rhs_operand (operands[3], E_SImode)
              && 
#line 3070 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return 99; /* andsi_not_shiftsi_si */
          if (!const_int_operand (operands[3], E_SImode)
              || !
#line 34 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
            return -1;
          return 876; /* *thumb_andsi_not_shiftsi_si */

        default:
          return -1;
        }

    case IOR:
      if (pattern141 (x2) != 0
          || !
#line 3552 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 116; /* *andsi_iorsi3_notsi */

    case MULT:
      if (pattern142 (x2) != 0
          || !
#line 9065 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 245; /* *and_multsi */

    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      operands[2] = x3;
      if (pattern172 (x2) != 0
          || !
#line 9079 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && GET_CODE (operands[2]) != MULT))
        return -1;
      return 250; /* *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 (pattern175 (x2) == 0
          && 
#line 9194 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
        return 256; /* *and_scc */
      if (pnum_clobbers == NULL
          || pattern176 (x2) != 0)
        return -1;
      if (
#line 9931 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 268; /* *and_scc_scc */
        }
      if (!
#line 9999 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 270; /* *and_scc_scc_nodom */

    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];
  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 REG:
    case SUBREG:
      operands[1] = x3;
      x4 = XEXP (x2, 1);
      operands[2] = x4;
      switch (GET_MODE (operands[0]))
        {
        case E_DImode:
          if (GET_MODE (x2) != E_DImode)
            return -1;
          if (s_register_operand (operands[0], E_DImode)
              && s_register_operand (operands[1], E_DImode)
              && arm_iordi_operand_neon (operands[2], E_DImode)
              && 
#line 3182 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && !TARGET_IWMMXT))
            return 104; /* *iordi3_insn */
          if (!register_operand (operands[0], E_DImode)
              || !register_operand (operands[1], E_DImode)
              || !register_operand (operands[2], E_DImode)
              || !
#line 61 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 430; /* iwmmxt_iordi3 */

        case E_SImode:
          if (pattern157 (x2) != 0
              || !
#line 3288 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 107; /* *iorsi3_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 327 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 443; /* *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 797 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1103; /* iorv2si3 */

        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 327 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 444; /* *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 797 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1101; /* iorv4hi3 */

        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 327 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 445; /* *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 797 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1099; /* iorv8qi3 */

        case E_V16QImode:
          if (pattern224 (x2, E_V16QImode) != 0
              || !
#line 797 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1100; /* iorv16qi3 */

        case E_V8HImode:
          if (pattern224 (x2, E_V8HImode) != 0
              || !
#line 797 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1102; /* iorv8hi3 */

        case E_V4SImode:
          if (pattern224 (x2, E_V4SImode) != 0
              || !
#line 797 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1104; /* iorv4si3 */

        case E_V4HFmode:
          if (pattern224 (x2, E_V4HFmode) != 0
              || !
#line 797 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1105; /* iorv4hf3 */

        case E_V8HFmode:
          if (pattern224 (x2, E_V8HFmode) != 0
              || !
#line 797 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1106; /* iorv8hf3 */

        case E_V2SFmode:
          if (pattern224 (x2, E_V2SFmode) != 0
              || !
#line 797 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1107; /* iorv2sf3 */

        case E_V4SFmode:
          if (pattern224 (x2, E_V4SFmode) != 0
              || !
#line 797 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1108; /* iorv4sf3 */

        case E_V2DImode:
          if (pattern224 (x2, E_V2DImode) != 0
              || !
#line 797 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1109; /* iorv2di3 */

        default:
          return -1;
        }

    case ZERO_EXTEND:
      if (pattern138 (x2) != 0
          || !
#line 3227 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 105; /* *iordi_zesidi_di */

    case SIGN_EXTEND:
      if (pattern138 (x2) != 0
          || !
#line 3241 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 106; /* *iordi_sesidi_di */

    case MULT:
      if (pattern142 (x2) != 0
          || !
#line 9065 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 243; /* *orr_multsi */

    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      operands[2] = x3;
      if (pattern172 (x2) == 0
          && 
#line 9079 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && GET_CODE (operands[2]) != MULT))
        return 248; /* *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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 637; /* 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 (pattern175 (x2) == 0
          && 
#line 9223 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
        return 257; /* *ior_scc */
      if (pnum_clobbers == NULL
          || pattern176 (x2) != 0
          || !
#line 9869 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 266; /* *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 (pattern371 (x2, LSHIFTRT) != 0)
            return -1;
          operands[3] = x5;
          operands[2] = x12;
          x16 = XEXP (x9, 0);
          if (!rtx_equal_p (x16, operands[1])
              || !
#line 11941 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 334; /* arm_rev16si2 */

        case LSHIFTRT:
          if (pattern371 (x2, ASHIFT) != 0)
            return -1;
          operands[2] = x5;
          operands[3] = x12;
          x16 = XEXP (x9, 0);
          if (!rtx_equal_p (x16, operands[1])
              || !
#line 11958 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 335; /* arm_rev16si2_alt */

        default:
          return -1;
        }

    case NOT:
      switch (pattern140 (x2))
        {
        case 0:
          if (pattern222 (x2) != 0)
            return -1;
          x4 = XEXP (x2, 1);
          operands[2] = x4;
          x14 = XEXP (x3, 0);
          operands[1] = x14;
          if (
#line 1486 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
            return 934; /* *iordi_notdi_di */
          operands[1] = x4;
          operands[2] = x14;
          if (!
#line 848 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1132; /* orndi3_neon */

        case 1:
          if (pattern223 (x2, E_SImode) != 0
              || !
#line 1582 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
            return -1;
          return 938; /* *orsi_notsi_si */

        case 2:
          if (pattern223 (x2, E_V8QImode) != 0
              || !
#line 836 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1121; /* ornv8qi3_neon */

        case 3:
          if (pattern223 (x2, E_V16QImode) != 0
              || !
#line 836 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1122; /* ornv16qi3_neon */

        case 4:
          if (pattern223 (x2, E_V4HImode) != 0
              || !
#line 836 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1123; /* ornv4hi3_neon */

        case 5:
          if (pattern223 (x2, E_V8HImode) != 0
              || !
#line 836 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1124; /* ornv8hi3_neon */

        case 6:
          if (pattern223 (x2, E_V2SImode) != 0
              || !
#line 836 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1125; /* ornv2si3_neon */

        case 7:
          if (pattern223 (x2, E_V4SImode) != 0
              || !
#line 836 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1126; /* ornv4si3_neon */

        case 8:
          if (pattern223 (x2, E_V4HFmode) != 0
              || !
#line 836 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1127; /* ornv4hf3_neon */

        case 9:
          if (pattern223 (x2, E_V8HFmode) != 0
              || !
#line 836 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1128; /* ornv8hf3_neon */

        case 10:
          if (pattern223 (x2, E_V2SFmode) != 0
              || !
#line 836 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1129; /* ornv2sf3_neon */

        case 11:
          if (pattern223 (x2, E_V4SFmode) != 0
              || !
#line 836 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1130; /* ornv4sf3_neon */

        case 12:
          if (pattern223 (x2, E_V2DImode) != 0
              || !
#line 836 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1131; /* ornv2di3_neon */

        case 13:
          if (!
#line 1534 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
            return -1;
          return 936; /* *iordi_notdi_zesidi */

        case 14:
          if (!
#line 1511 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
            return -1;
          return 935; /* *iordi_notzesidi_di */

        case 15:
          if (!
#line 1558 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
            return -1;
          return 937; /* *iordi_notsesidi_di */

        case 16:
          if (!const_int_operand (operands[3], E_SImode))
            return -1;
          x4 = XEXP (x2, 1);
          operands[1] = x4;
          if (!s_register_operand (operands[1], E_SImode)
              || !
#line 1594 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
            return -1;
          return 939; /* *orsi_not_shiftsi_si */

        default:
          return -1;
        }

    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];
  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_DImode:
          if (GET_MODE (x2) != E_DImode)
            return -1;
          if (s_register_operand (operands[0], E_DImode)
              && s_register_operand (operands[1], E_DImode)
              && arm_xordi_operand (operands[2], E_DImode)
              && 
#line 3385 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && !TARGET_IWMMXT))
            return 110; /* *xordi3_insn */
          if (!register_operand (operands[0], E_DImode)
              || !register_operand (operands[1], E_DImode)
              || !register_operand (operands[2], E_DImode)
              || !
#line 75 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 431; /* iwmmxt_xordi3 */

        case E_SImode:
          if (pattern157 (x2) != 0
              || !
#line 3485 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 113; /* *arm_xorsi3 */

        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 337 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 446; /* *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 908 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1149; /* xorv2si3 */

        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 337 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 447; /* *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 908 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1147; /* xorv4hi3 */

        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 337 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 448; /* *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 908 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1145; /* xorv8qi3 */

        case E_V16QImode:
          if (pattern3 (x2, E_V16QImode) != 0
              || !
#line 908 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1146; /* xorv16qi3 */

        case E_V8HImode:
          if (pattern3 (x2, E_V8HImode) != 0
              || !
#line 908 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1148; /* xorv8hi3 */

        case E_V4SImode:
          if (pattern3 (x2, E_V4SImode) != 0
              || !
#line 908 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1150; /* xorv4si3 */

        case E_V4HFmode:
          if (pattern3 (x2, E_V4HFmode) != 0
              || !
#line 908 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1151; /* xorv4hf3 */

        case E_V8HFmode:
          if (pattern3 (x2, E_V8HFmode) != 0
              || !
#line 908 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1152; /* xorv8hf3 */

        case E_V2SFmode:
          if (pattern3 (x2, E_V2SFmode) != 0
              || !
#line 908 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1153; /* xorv2sf3 */

        case E_V4SFmode:
          if (pattern3 (x2, E_V4SFmode) != 0
              || !
#line 908 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1154; /* xorv4sf3 */

        case E_V2DImode:
          if (pattern3 (x2, E_V2DImode) != 0
              || !
#line 908 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1155; /* xorv2di3 */

        default:
          return -1;
        }

    case ZERO_EXTEND:
      if (pattern138 (x2) != 0
          || !
#line 3426 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 111; /* *xordi_zesidi_di */

    case SIGN_EXTEND:
      if (pattern138 (x2) != 0
          || !
#line 3440 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 112; /* *xordi_sesidi_di */

    case MULT:
      if (pattern142 (x2) != 0
          || !
#line 9065 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 244; /* *eor_multsi */

    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      operands[2] = x3;
      if (pattern172 (x2) != 0
          || !
#line 9079 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && GET_CODE (operands[2]) != MULT))
        return -1;
      return 249; /* *eor_shiftsi */

    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];
  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 3898 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && !arm_eliminable_register (operands[1]) && !arm_restrict_it))
        return -1;
      *pnum_clobbers = 1;
      return 125; /* *minmax_arithsi */

    case NE:
    case EQ:
    case GE:
    case GT:
    case LE:
    case LT:
    case GEU:
    case GTU:
    case LEU:
    case LTU:
    case UNORDERED:
    case ORDERED:
    case UNGE:
    case UNGT:
    case UNLE:
    case UNLT:
      operands[4] = x3;
      if (!arm_comparison_operator (operands[4], E_SImode))
        return -1;
      operands[5] = x2;
      x4 = XEXP (x3, 0);
      operands[2] = x4;
      if (!s_register_operand (operands[2], E_SImode))
        return -1;
      x5 = XEXP (x3, 1);
      operands[3] = x5;
      if (!arm_rhs_operand (operands[3], E_SImode))
        return -1;
      x6 = XEXP (x2, 1);
      operands[1] = x6;
      if (!s_register_operand (operands[1], E_SImode)
          || !
#line 9489 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      *pnum_clobbers = 1;
      return 260; /* *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 10843 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && adjacent_mem_locations (operands[2], operands[3])))
        return -1;
      *pnum_clobbers = 1;
      return 302; /* *arith_adjacentmem */

    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];
  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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 811; /* *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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 813; /* 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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return -1;
          return 816; /* *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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
            return -1;
          return 901; /* *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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return -1;
          return 818; /* *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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !arm_restrict_it))
            return 902; /* *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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_restrict_it))
            return -1;
          return 903; /* *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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return -1;
      return 819; /* *thumb1_xorsi3_insn */

    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];
  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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !arm_restrict_it))
        return -1;
      *pnum_clobbers = 1;
      return 905; /* *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 1209 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 918; /* *thumb2_alusi3_short */

    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;
  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 292 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 957; /* *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 292 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 958; /* *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 292 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 959; /* *movmisalignv4hf_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 292 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 960; /* *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 292 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 961; /* *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 292 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 962; /* *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)
              || !
#line 309 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 969; /* *movmisalignv16qi_neon_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)
              || !
#line 309 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 970; /* *movmisalignv8hi_neon_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)
              || !
#line 309 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 971; /* *movmisalignv8hf_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)
              || !
#line 309 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 972; /* *movmisalignv4si_neon_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)
              || !
#line 309 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 973; /* *movmisalignv4sf_neon_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 309 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 974; /* *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 301 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 963; /* *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 301 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 964; /* *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 301 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 965; /* *movmisalignv4hf_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 301 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 966; /* *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 301 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 967; /* *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 301 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 968; /* *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)
              || !
#line 318 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 975; /* *movmisalignv16qi_neon_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)
              || !
#line 318 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 976; /* *movmisalignv8hi_neon_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)
              || !
#line 318 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 977; /* *movmisalignv8hf_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)
              || !
#line 318 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 978; /* *movmisalignv4si_neon_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)
              || !
#line 318 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 979; /* *movmisalignv4sf_neon_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 318 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access))
            return -1;
          return 980; /* *movmisalignv2di_neon_load */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

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];
  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 5587 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2403; /* 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 5587 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2404; /* 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 5587 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2405; /* 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 5587 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2406; /* 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 5587 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2407; /* 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 5587 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2408; /* 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 5587 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2409; /* 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 5587 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2410; /* neon_vst1v8hf */

    case E_V2SFmode:
      if (!neon_struct_operand (operands[0], E_V2SFmode)
          || GET_MODE (x3) != E_V2SFmode
          || !s_register_operand (operands[1], E_V2SFmode)
          || !
#line 5587 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2411; /* 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 5587 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2412; /* 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 5587 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2413; /* 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 5587 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2414; /* neon_vst1v2di */

    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];
  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 5477 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2368; /* 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 5477 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2369; /* 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 5477 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2370; /* 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 5477 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2371; /* 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 5477 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2372; /* 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 5477 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2373; /* 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 5477 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2374; /* 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 5477 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2375; /* neon_vld1v8hf */

    case E_V2SFmode:
      if (!s_register_operand (operands[0], E_V2SFmode)
          || GET_MODE (x3) != E_V2SFmode
          || !neon_struct_operand (operands[1], E_V2SFmode)
          || !
#line 5477 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2376; /* 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 5477 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2377; /* 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 5477 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2378; /* 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 5477 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2379; /* neon_vld1v2di */

    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;
  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 4919 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2092; /* 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 4919 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2093; /* 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 4919 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2094; /* 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 4919 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2095; /* 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 4919 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2096; /* 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 4919 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2097; /* 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 4919 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2098; /* 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 4919 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2099; /* 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 4919 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2100; /* 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 4919 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2101; /* 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 4919 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2102; /* neon_vrev64v2di */

    default:
      return -1;
    }
}

static int
recog_85 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, 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 1650 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
    return -1;
  return 574; /* iwmmxt_waligni */
}

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;
  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 4928 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2103; /* 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 4928 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2104; /* 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 4928 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2105; /* 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 4928 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2106; /* neon_vrev32v8hi */

    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];
  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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 584; /* 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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 585; /* 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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 586; /* iwmmxt_wabsv8qi3 */

    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];
  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 4937 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2107; /* 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 4937 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2108; /* neon_vrev16v16qi */

    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];
  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 4220 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_FP16))
        return -1;
      return 1966; /* 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 4229 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_FP16))
        return -1;
      return 1967; /* neon_vcvtv4hfv4sf */

    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 (pattern47 (x1))
    {
    case 0:
      if (!
#line 4202 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1959; /* neon_vcvtuv2sf */

    case 1:
      if (!
#line 4202 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1961; /* neon_vcvtuv4sf */

    case 2:
      if (!
#line 4211 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1963; /* neon_vcvtuv2si */

    case 3:
      if (!
#line 4211 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1965; /* neon_vcvtuv4si */

    case 4:
      if (!
#line 4240 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1969; /* neon_vcvtuv4hi */

    case 5:
      if (!
#line 4240 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1971; /* neon_vcvtuv8hi */

    case 6:
      if (!
#line 4251 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1973; /* neon_vcvtuv8hf */

    case 7:
      if (!
#line 4251 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1975; /* neon_vcvtuv4hf */

    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 (pattern47 (x1))
    {
    case 0:
      if (!
#line 4202 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1958; /* neon_vcvtsv2sf */

    case 1:
      if (!
#line 4202 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1960; /* neon_vcvtsv4sf */

    case 2:
      if (!
#line 4211 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1962; /* neon_vcvtsv2si */

    case 3:
      if (!
#line 4211 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1964; /* neon_vcvtsv4si */

    case 4:
      if (!
#line 4240 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1968; /* neon_vcvtsv4hi */

    case 5:
      if (!
#line 4240 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1970; /* neon_vcvtsv8hi */

    case 6:
      if (!
#line 4251 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1972; /* neon_vcvtsv8hf */

    case 7:
      if (!
#line 4251 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1974; /* neon_vcvtsv4hf */

    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];
  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 11665 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_HARD_TP))
    return 327; /* load_tp_hard */
  if (pnum_clobbers == NULL
      || GET_CODE (x4) != REG
      || REGNO (x4) != 0
      || GET_MODE (x4) != E_SImode
      || !
#line 11677 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_SOFT_TP))
    return -1;
  *pnum_clobbers = 3;
  return 328; /* load_tp_soft */
}

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;
  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 (!memory_operand (operands[0], E_SImode)
          || GET_MODE (x3) != E_SImode
          || !s_register_operand (operands[1], E_SImode)
          || !
#line 4534 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(unaligned_access))
        return -1;
      return 140; /* 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 4549 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(unaligned_access))
        return -1;
      return 141; /* unaligned_storehi */

    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];
  int res ATTRIBUTE_UNUSED;
  switch (pattern44 (x1))
    {
    case 0:
      if (!
#line 3684 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1883; /* neon_vrecpev8hf */

    case 1:
      if (!
#line 3684 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1884; /* neon_vrecpev4hf */

    case 2:
      if (!
#line 3693 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1885; /* neon_vrecpev2si */

    case 3:
      if (!
#line 3693 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1886; /* neon_vrecpev2sf */

    case 4:
      if (!
#line 3693 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1887; /* neon_vrecpev4si */

    case 5:
      if (!
#line 3693 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1888; /* neon_vrecpev4sf */

    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];
  int res ATTRIBUTE_UNUSED;
  switch (pattern46 (x1))
    {
    case 0:
      if (!
#line 3641 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1869; /* neon_vclsv8qi */

    case 1:
      if (!
#line 3641 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1870; /* neon_vclsv16qi */

    case 2:
      if (!
#line 3641 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1871; /* neon_vclsv4hi */

    case 3:
      if (!
#line 3641 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1872; /* neon_vclsv8hi */

    case 4:
      if (!
#line 3641 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1873; /* neon_vclsv2si */

    case 5:
      if (!
#line 3641 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1874; /* neon_vclsv4si */

    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];
  int res ATTRIBUTE_UNUSED;
  switch (pattern46 (x1))
    {
    case 0:
      if (!
#line 3632 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1863; /* neon_vqnegv8qi */

    case 1:
      if (!
#line 3632 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1864; /* neon_vqnegv16qi */

    case 2:
      if (!
#line 3632 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1865; /* neon_vqnegv4hi */

    case 3:
      if (!
#line 3632 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1866; /* neon_vqnegv8hi */

    case 4:
      if (!
#line 3632 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1867; /* neon_vqnegv2si */

    case 5:
      if (!
#line 3632 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1868; /* neon_vqnegv4si */

    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];
  int res ATTRIBUTE_UNUSED;
  switch (pattern46 (x1))
    {
    case 0:
      if (!
#line 3440 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1788; /* neon_vqabsv8qi */

    case 1:
      if (!
#line 3440 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1789; /* neon_vqabsv16qi */

    case 2:
      if (!
#line 3440 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1790; /* neon_vqabsv4hi */

    case 3:
      if (!
#line 3440 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1791; /* neon_vqabsv8hi */

    case 4:
      if (!
#line 3440 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1792; /* neon_vqabsv2si */

    case 5:
      if (!
#line 3440 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1793; /* neon_vqabsv4si */

    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];
  int res ATTRIBUTE_UNUSED;
  switch (pattern45 (x1))
    {
    case 0:
      if (!
#line 3350 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1741; /* neon_vpaddluv8qi */

    case 1:
      if (!
#line 3350 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1743; /* neon_vpaddluv16qi */

    case 2:
      if (!
#line 3350 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1745; /* neon_vpaddluv4hi */

    case 3:
      if (!
#line 3350 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1747; /* neon_vpaddluv8hi */

    case 4:
      if (!
#line 3350 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1749; /* neon_vpaddluv2si */

    case 5:
      if (!
#line 3350 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1751; /* neon_vpaddluv4si */

    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, 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 5599 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2415; /* neon_vst1_lanev8qi */

        case E_V16QImode:
          if (!s_register_operand (operands[1], E_V16QImode)
              || !
#line 5620 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2421; /* 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 5599 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2416; /* neon_vst1_lanev4hi */

        case E_V8HImode:
          if (!s_register_operand (operands[1], E_V8HImode)
              || !
#line 5620 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2422; /* 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 5599 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2417; /* neon_vst1_lanev4hf */

        case E_V8HFmode:
          if (!s_register_operand (operands[1], E_V8HFmode)
              || !
#line 5620 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2423; /* neon_vst1_lanev8hf */

        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 5599 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2418; /* neon_vst1_lanev2si */

        case E_V4SImode:
          if (!s_register_operand (operands[1], E_V4SImode)
              || !
#line 5620 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2424; /* 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 5599 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2419; /* neon_vst1_lanev2sf */

        case E_V4SFmode:
          if (!s_register_operand (operands[1], E_V4SFmode)
              || !
#line 5620 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2425; /* 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 5599 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2420; /* neon_vst1_lanedi */

        case E_V2DImode:
          if (!s_register_operand (operands[1], E_V2DImode)
              || !
#line 5620 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2426; /* neon_vst1_lanev2di */

        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;
  int res ATTRIBUTE_UNUSED;
  if (pattern85 (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 6323 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2554; /* 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 6323 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2555; /* 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 6323 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2556; /* neon_vld4_dupv4hf */

    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 6323 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2557; /* 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 6323 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2558; /* 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 6323 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2559; /* neon_vld4_dupdi */

    default:
      return -1;
    }
}

static int
recog_101 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (pattern85 (x1, E_TImode) != 0)
    return -1;
  switch (GET_MODE (operands[1]))
    {
    case E_HImode:
      if (!neon_struct_operand (operands[1], E_HImode))
        return -1;
      x2 = XEXP (x1, 1);
      x3 = XVECEXP (x2, 0, 1);
      if (GET_MODE (x3) != E_V8QImode
          || !
#line 5740 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2447; /* neon_vld2_dupv8qi */

    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_V4HImode
          || !
#line 5740 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2448; /* neon_vld2_dupv4hi */

    case E_SFmode:
      if (!neon_struct_operand (operands[1], E_SFmode))
        return -1;
      x2 = XEXP (x1, 1);
      x3 = XVECEXP (x2, 0, 1);
      if (GET_MODE (x3) != E_V4HFmode
          || !
#line 5740 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2449; /* neon_vld2_dupv4hf */

    case E_V2SImode:
      if (!neon_struct_operand (operands[1], E_V2SImode))
        return -1;
      x2 = XEXP (x1, 1);
      x3 = XVECEXP (x2, 0, 1);
      if (GET_MODE (x3) != E_V2SImode
          || !
#line 5740 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2450; /* neon_vld2_dupv2si */

    case E_V2SFmode:
      if (!neon_struct_operand (operands[1], E_V2SFmode))
        return -1;
      x2 = XEXP (x1, 1);
      x3 = XVECEXP (x2, 0, 1);
      if (GET_MODE (x3) != E_V2SFmode
          || !
#line 5740 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2451; /* neon_vld2_dupv2sf */

    case E_V2DImode:
      if (!neon_struct_operand (operands[1], E_V2DImode))
        return -1;
      x2 = XEXP (x1, 1);
      x3 = XVECEXP (x2, 0, 1);
      if (GET_MODE (x3) != E_DImode
          || !
#line 5740 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2452; /* neon_vld2_dupdi */

    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;
  int res ATTRIBUTE_UNUSED;
  switch (pattern84 (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 5652 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2427; /* neon_vld2v8qi */

        case E_V4HImode:
          if (!
#line 5652 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2428; /* neon_vld2v4hi */

        case E_V4HFmode:
          if (!
#line 5652 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2429; /* neon_vld2v4hf */

        case E_V2SImode:
          if (!
#line 5652 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2430; /* neon_vld2v2si */

        case E_V2SFmode:
          if (!
#line 5652 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2431; /* neon_vld2v2sf */

        case E_DImode:
          if (!
#line 5652 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2432; /* 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 5677 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2433; /* neon_vld2v16qi */

        case E_V8HImode:
          if (!
#line 5677 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2434; /* neon_vld2v8hi */

        case E_V8HFmode:
          if (!
#line 5677 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2435; /* neon_vld2v8hf */

        case E_V4SImode:
          if (!
#line 5677 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2436; /* neon_vld2v4si */

        case E_V4SFmode:
          if (!
#line 5677 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2437; /* neon_vld2v4sf */

        default:
          return -1;
        }

    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;
  int res ATTRIBUTE_UNUSED;
  switch (pattern84 (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 5765 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2453; /* neon_vst2v8qi */

        case E_V4HImode:
          if (!
#line 5765 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2454; /* neon_vst2v4hi */

        case E_V4HFmode:
          if (!
#line 5765 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2455; /* neon_vst2v4hf */

        case E_V2SImode:
          if (!
#line 5765 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2456; /* neon_vst2v2si */

        case E_V2SFmode:
          if (!
#line 5765 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2457; /* neon_vst2v2sf */

        case E_DImode:
          if (!
#line 5765 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2458; /* 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 5790 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2459; /* neon_vst2v16qi */

        case E_V8HImode:
          if (!
#line 5790 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2460; /* neon_vst2v8hi */

        case E_V8HFmode:
          if (!
#line 5790 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2461; /* neon_vst2v8hf */

        case E_V4SImode:
          if (!
#line 5790 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2462; /* neon_vst2v4si */

        case E_V4SFmode:
          if (!
#line 5790 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2463; /* neon_vst2v4sf */

        default:
          return -1;
        }

    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, 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 5155 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2327; /* neon_vtbl1v8qi */

        case E_TImode:
          if (!s_register_operand (operands[1], E_TImode)
              || !
#line 5165 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2328; /* neon_vtbl2v8qi */

        case E_EImode:
          if (!s_register_operand (operands[1], E_EImode)
              || !
#line 5186 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2329; /* neon_vtbl3v8qi */

        case E_OImode:
          if (!s_register_operand (operands[1], E_OImode)
              || !
#line 5208 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2330; /* neon_vtbl4v8qi */

        default:
          return -1;
        }

    case E_V16QImode:
      if (!s_register_operand (operands[0], E_V16QImode)
          || GET_MODE (x3) != E_V16QImode)
        return -1;
      switch (pattern272 ())
        {
        case 0:
          if (!
#line 5232 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2331; /* neon_vtbl1v16qi */

        case 1:
          if (!
#line 5263 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2332; /* neon_vtbl2v16qi */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_105 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3;
  int res ATTRIBUTE_UNUSED;
  if (pattern85 (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 6001 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2498; /* neon_vld3_dupv8qi */

        case E_V4HImode:
          if (!
#line 6001 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2499; /* neon_vld3_dupv4hi */

        case E_V4HFmode:
          if (!
#line 6001 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2500; /* neon_vld3_dupv4hf */

        case E_V2SImode:
          if (!
#line 6001 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2501; /* neon_vld3_dupv2si */

        case E_V2SFmode:
          if (!
#line 6001 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2502; /* 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 6001 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2503; /* neon_vld3_dupdi */

    default:
      return -1;
    }
}

static int
recog_106 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern75 (x1))
    {
    case 0:
      if (!
#line 3264 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1696; /* neon_vminsv8qi */

    case 1:
      if (!
#line 3264 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1700; /* neon_vminsv16qi */

    case 2:
      if (!
#line 3264 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1704; /* neon_vminsv4hi */

    case 3:
      if (!
#line 3264 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1708; /* neon_vminsv8hi */

    case 4:
      if (!
#line 3264 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1712; /* neon_vminsv2si */

    case 5:
      if (!
#line 3264 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1716; /* neon_vminsv4si */

    case 6:
      if (!
#line 3274 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1719; /* neon_vminfv2sf */

    case 7:
      if (!
#line 3274 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1721; /* neon_vminfv4sf */

    case 8:
      if (!
#line 3285 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1723; /* neon_vminfv8hf */

    case 9:
      if (!
#line 3285 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1725; /* neon_vminfv4hf */

    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];
  int res ATTRIBUTE_UNUSED;
  switch (pattern75 (x1))
    {
    case 0:
      if (!
#line 3264 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1694; /* neon_vmaxsv8qi */

    case 1:
      if (!
#line 3264 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1698; /* neon_vmaxsv16qi */

    case 2:
      if (!
#line 3264 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1702; /* neon_vmaxsv4hi */

    case 3:
      if (!
#line 3264 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1706; /* neon_vmaxsv8hi */

    case 4:
      if (!
#line 3264 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1710; /* neon_vmaxsv2si */

    case 5:
      if (!
#line 3264 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1714; /* neon_vmaxsv4si */

    case 6:
      if (!
#line 3274 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1718; /* neon_vmaxfv2sf */

    case 7:
      if (!
#line 3274 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1720; /* neon_vmaxfv4sf */

    case 8:
      if (!
#line 3285 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1722; /* neon_vmaxfv8hf */

    case 9:
      if (!
#line 3285 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1724; /* neon_vmaxfv4hf */

    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];
  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 (pattern57 (x3, E_V8QImode) != 0
          || !
#line 1751 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1308; /* neon_vpadd_internalv8qi */

    case E_V4HImode:
      if (pattern57 (x3, E_V4HImode) != 0
          || !
#line 1751 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1309; /* neon_vpadd_internalv4hi */

    case E_V2SImode:
      if (pattern57 (x3, E_V2SImode) != 0
          || !
#line 1751 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1310; /* neon_vpadd_internalv2si */

    case E_V2SFmode:
      if (pattern57 (x3, E_V2SFmode) != 0
          || !
#line 1751 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1311; /* neon_vpadd_internalv2sf */

    case E_V4HFmode:
      if (pattern57 (x3, E_V4HFmode) != 0
          || !
#line 1766 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1312; /* neon_vpaddv4hf */

    default:
      return -1;
    }
}

static int
recog_109 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, 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 (pattern57 (x3, E_HFmode) != 0
          || !
#line 1563 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
        return -1;
      return 738; /* neon_vrsqrtshf */

    case E_V2SFmode:
      if (pattern57 (x3, E_V2SFmode) != 0
          || !
#line 3411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1784; /* neon_vrsqrtsv2sf */

    case E_V4SFmode:
      if (pattern57 (x3, E_V4SFmode) != 0
          || !
#line 3411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1785; /* neon_vrsqrtsv4sf */

    case E_V8HFmode:
      if (pattern57 (x3, E_V8HFmode) != 0
          || !
#line 3422 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1786; /* neon_vrsqrtsv8hf */

    case E_V4HFmode:
      if (pattern57 (x3, E_V4HFmode) != 0
          || !
#line 3422 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1787; /* neon_vrsqrtsv4hf */

    default:
      return -1;
    }
}

static int
recog_110 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern81 (x1))
    {
    case 0:
      if (!
#line 5085 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2265; /* neon_vqshlu_nv8qi */

    case 1:
      if (!
#line 5085 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2266; /* neon_vqshlu_nv16qi */

    case 2:
      if (!
#line 5085 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2267; /* neon_vqshlu_nv4hi */

    case 3:
      if (!
#line 5085 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2268; /* neon_vqshlu_nv8hi */

    case 4:
      if (!
#line 5085 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2269; /* neon_vqshlu_nv2si */

    case 5:
      if (!
#line 5085 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2270; /* neon_vqshlu_nv4si */

    case 6:
      if (!
#line 5085 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2271; /* neon_vqshlu_ndi */

    case 7:
      if (!
#line 5085 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2272; /* neon_vqshlu_nv2di */

    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 (pattern81 (x1))
    {
    case 0:
      if (!
#line 5072 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2249; /* neon_vqshl_s_nv8qi */

    case 1:
      if (!
#line 5072 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2251; /* neon_vqshl_s_nv16qi */

    case 2:
      if (!
#line 5072 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2253; /* neon_vqshl_s_nv4hi */

    case 3:
      if (!
#line 5072 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2255; /* neon_vqshl_s_nv8hi */

    case 4:
      if (!
#line 5072 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2257; /* neon_vqshl_s_nv2si */

    case 5:
      if (!
#line 5072 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2259; /* neon_vqshl_s_nv4si */

    case 6:
      if (!
#line 5072 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2261; /* neon_vqshl_s_ndi */

    case 7:
      if (!
#line 5072 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2263; /* neon_vqshl_s_nv2di */

    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 (pattern81 (x1))
    {
    case 0:
      if (!
#line 5072 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2250; /* neon_vqshl_u_nv8qi */

    case 1:
      if (!
#line 5072 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2252; /* neon_vqshl_u_nv16qi */

    case 2:
      if (!
#line 5072 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2254; /* neon_vqshl_u_nv4hi */

    case 3:
      if (!
#line 5072 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2256; /* neon_vqshl_u_nv8hi */

    case 4:
      if (!
#line 5072 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2258; /* neon_vqshl_u_nv2si */

    case 5:
      if (!
#line 5072 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2260; /* neon_vqshl_u_nv4si */

    case 6:
      if (!
#line 5072 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2262; /* neon_vqshl_u_ndi */

    case 7:
      if (!
#line 5072 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2264; /* neon_vqshl_u_nv2di */

    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 (pattern81 (x1))
    {
    case 0:
      if (!
#line 5059 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2241; /* neon_vshl_nv8qi */

    case 1:
      if (!
#line 5059 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2242; /* neon_vshl_nv16qi */

    case 2:
      if (!
#line 5059 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2243; /* neon_vshl_nv4hi */

    case 3:
      if (!
#line 5059 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2244; /* neon_vshl_nv8hi */

    case 4:
      if (!
#line 5059 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2245; /* neon_vshl_nv2si */

    case 5:
      if (!
#line 5059 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2246; /* neon_vshl_nv4si */

    case 6:
      if (!
#line 5059 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2247; /* neon_vshl_ndi */

    case 7:
      if (!
#line 5059 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2248; /* neon_vshl_nv2di */

    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 (pattern81 (x1))
    {
    case 0:
      if (!
#line 5004 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2188; /* neon_vrshru_nv8qi */

    case 1:
      if (!
#line 5004 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2192; /* neon_vrshru_nv16qi */

    case 2:
      if (!
#line 5004 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2196; /* neon_vrshru_nv4hi */

    case 3:
      if (!
#line 5004 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2200; /* neon_vrshru_nv8hi */

    case 4:
      if (!
#line 5004 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2204; /* neon_vrshru_nv2si */

    case 5:
      if (!
#line 5004 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2208; /* neon_vrshru_nv4si */

    case 6:
      if (!
#line 5004 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2212; /* neon_vrshru_ndi */

    case 7:
      if (!
#line 5004 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2216; /* neon_vrshru_nv2di */

    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 (pattern81 (x1))
    {
    case 0:
      if (!
#line 5004 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2187; /* neon_vrshrs_nv8qi */

    case 1:
      if (!
#line 5004 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2191; /* neon_vrshrs_nv16qi */

    case 2:
      if (!
#line 5004 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2195; /* neon_vrshrs_nv4hi */

    case 3:
      if (!
#line 5004 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2199; /* neon_vrshrs_nv8hi */

    case 4:
      if (!
#line 5004 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2203; /* neon_vrshrs_nv2si */

    case 5:
      if (!
#line 5004 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2207; /* neon_vrshrs_nv4si */

    case 6:
      if (!
#line 5004 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2211; /* neon_vrshrs_ndi */

    case 7:
      if (!
#line 5004 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2215; /* neon_vrshrs_nv2di */

    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 (pattern81 (x1))
    {
    case 0:
      if (!
#line 5004 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2186; /* neon_vshru_nv8qi */

    case 1:
      if (!
#line 5004 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2190; /* neon_vshru_nv16qi */

    case 2:
      if (!
#line 5004 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2194; /* neon_vshru_nv4hi */

    case 3:
      if (!
#line 5004 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2198; /* neon_vshru_nv8hi */

    case 4:
      if (!
#line 5004 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2202; /* neon_vshru_nv2si */

    case 5:
      if (!
#line 5004 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2206; /* neon_vshru_nv4si */

    case 6:
      if (!
#line 5004 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2210; /* neon_vshru_ndi */

    case 7:
      if (!
#line 5004 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2214; /* neon_vshru_nv2di */

    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 (pattern81 (x1))
    {
    case 0:
      if (!
#line 5004 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2185; /* neon_vshrs_nv8qi */

    case 1:
      if (!
#line 5004 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2189; /* neon_vshrs_nv16qi */

    case 2:
      if (!
#line 5004 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2193; /* neon_vshrs_nv4hi */

    case 3:
      if (!
#line 5004 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2197; /* neon_vshrs_nv8hi */

    case 4:
      if (!
#line 5004 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2201; /* neon_vshrs_nv2si */

    case 5:
      if (!
#line 5004 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2205; /* neon_vshrs_nv4si */

    case 6:
      if (!
#line 5004 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2209; /* neon_vshrs_ndi */

    case 7:
      if (!
#line 5004 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2213; /* neon_vshrs_nv2di */

    default:
      return -1;
    }
}

static int
recog_118 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern68 (x1))
    {
    case 0:
      if (!
#line 4993 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2156; /* neon_vqrshluv8qi */

    case 1:
      if (!
#line 4993 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2160; /* neon_vqrshluv16qi */

    case 2:
      if (!
#line 4993 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2164; /* neon_vqrshluv4hi */

    case 3:
      if (!
#line 4993 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2168; /* neon_vqrshluv8hi */

    case 4:
      if (!
#line 4993 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2172; /* neon_vqrshluv2si */

    case 5:
      if (!
#line 4993 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2176; /* neon_vqrshluv4si */

    case 6:
      if (!
#line 4993 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2180; /* neon_vqrshludi */

    case 7:
      if (!
#line 4993 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2184; /* neon_vqrshluv2di */

    default:
      return -1;
    }
}

static int
recog_119 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern68 (x1))
    {
    case 0:
      if (!
#line 4993 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2155; /* neon_vqrshlsv8qi */

    case 1:
      if (!
#line 4993 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2159; /* neon_vqrshlsv16qi */

    case 2:
      if (!
#line 4993 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2163; /* neon_vqrshlsv4hi */

    case 3:
      if (!
#line 4993 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2167; /* neon_vqrshlsv8hi */

    case 4:
      if (!
#line 4993 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2171; /* neon_vqrshlsv2si */

    case 5:
      if (!
#line 4993 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2175; /* neon_vqrshlsv4si */

    case 6:
      if (!
#line 4993 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2179; /* neon_vqrshlsdi */

    case 7:
      if (!
#line 4993 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2183; /* neon_vqrshlsv2di */

    default:
      return -1;
    }
}

static int
recog_120 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern68 (x1))
    {
    case 0:
      if (!
#line 4993 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2154; /* neon_vqshluv8qi */

    case 1:
      if (!
#line 4993 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2158; /* neon_vqshluv16qi */

    case 2:
      if (!
#line 4993 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2162; /* neon_vqshluv4hi */

    case 3:
      if (!
#line 4993 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2166; /* neon_vqshluv8hi */

    case 4:
      if (!
#line 4993 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2170; /* neon_vqshluv2si */

    case 5:
      if (!
#line 4993 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2174; /* neon_vqshluv4si */

    case 6:
      if (!
#line 4993 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2178; /* neon_vqshludi */

    case 7:
      if (!
#line 4993 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2182; /* neon_vqshluv2di */

    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];
  int res ATTRIBUTE_UNUSED;
  switch (pattern68 (x1))
    {
    case 0:
      if (!
#line 4993 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2153; /* neon_vqshlsv8qi */

    case 1:
      if (!
#line 4993 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2157; /* neon_vqshlsv16qi */

    case 2:
      if (!
#line 4993 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2161; /* neon_vqshlsv4hi */

    case 3:
      if (!
#line 4993 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2165; /* neon_vqshlsv8hi */

    case 4:
      if (!
#line 4993 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2169; /* neon_vqshlsv2si */

    case 5:
      if (!
#line 4993 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2173; /* neon_vqshlsv4si */

    case 6:
      if (!
#line 4993 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2177; /* neon_vqshlsdi */

    case 7:
      if (!
#line 4993 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2181; /* neon_vqshlsv2di */

    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];
  int res ATTRIBUTE_UNUSED;
  switch (pattern68 (x1))
    {
    case 0:
      if (!
#line 4982 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2124; /* neon_vrshluv8qi */

    case 1:
      if (!
#line 4982 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2128; /* neon_vrshluv16qi */

    case 2:
      if (!
#line 4982 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2132; /* neon_vrshluv4hi */

    case 3:
      if (!
#line 4982 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2136; /* neon_vrshluv8hi */

    case 4:
      if (!
#line 4982 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2140; /* neon_vrshluv2si */

    case 5:
      if (!
#line 4982 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2144; /* neon_vrshluv4si */

    case 6:
      if (!
#line 4982 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2148; /* neon_vrshludi */

    case 7:
      if (!
#line 4982 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2152; /* neon_vrshluv2di */

    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];
  int res ATTRIBUTE_UNUSED;
  switch (pattern68 (x1))
    {
    case 0:
      if (!
#line 4982 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2123; /* neon_vrshlsv8qi */

    case 1:
      if (!
#line 4982 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2127; /* neon_vrshlsv16qi */

    case 2:
      if (!
#line 4982 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2131; /* neon_vrshlsv4hi */

    case 3:
      if (!
#line 4982 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2135; /* neon_vrshlsv8hi */

    case 4:
      if (!
#line 4982 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2139; /* neon_vrshlsv2si */

    case 5:
      if (!
#line 4982 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2143; /* neon_vrshlsv4si */

    case 6:
      if (!
#line 4982 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2147; /* neon_vrshlsdi */

    case 7:
      if (!
#line 4982 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2151; /* neon_vrshlsv2di */

    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];
  int res ATTRIBUTE_UNUSED;
  switch (pattern68 (x1))
    {
    case 0:
      if (!
#line 4982 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2122; /* neon_vshluv8qi */

    case 1:
      if (!
#line 4982 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2126; /* neon_vshluv16qi */

    case 2:
      if (!
#line 4982 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2130; /* neon_vshluv4hi */

    case 3:
      if (!
#line 4982 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2134; /* neon_vshluv8hi */

    case 4:
      if (!
#line 4982 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2138; /* neon_vshluv2si */

    case 5:
      if (!
#line 4982 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2142; /* neon_vshluv4si */

    case 6:
      if (!
#line 4982 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2146; /* neon_vshludi */

    case 7:
      if (!
#line 4982 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2150; /* neon_vshluv2di */

    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 (pattern68 (x1))
    {
    case 0:
      if (!
#line 4982 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2121; /* neon_vshlsv8qi */

    case 1:
      if (!
#line 4982 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2125; /* neon_vshlsv16qi */

    case 2:
      if (!
#line 4982 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2129; /* neon_vshlsv4hi */

    case 3:
      if (!
#line 4982 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2133; /* neon_vshlsv8hi */

    case 4:
      if (!
#line 4982 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2137; /* neon_vshlsv2si */

    case 5:
      if (!
#line 4982 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2141; /* neon_vshlsv4si */

    case 6:
      if (!
#line 4982 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2145; /* neon_vshlsdi */

    case 7:
      if (!
#line 4982 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2149; /* neon_vshlsv2di */

    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 (pattern80 (x1))
    {
    case 0:
      if (!
#line 4261 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1977; /* neon_vcvtu_nv2sf */

    case 1:
      if (!
#line 4261 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1979; /* neon_vcvtu_nv4sf */

    case 2:
      if (!
#line 4275 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1981; /* neon_vcvtu_nv8hf */

    case 3:
      if (!
#line 4275 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1983; /* neon_vcvtu_nv4hf */

    case 4:
      if (!
#line 4288 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1985; /* neon_vcvtu_nv2si */

    case 5:
      if (!
#line 4288 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1987; /* neon_vcvtu_nv4si */

    case 6:
      if (!
#line 4302 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1989; /* neon_vcvtu_nv4hi */

    case 7:
      if (!
#line 4302 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1991; /* neon_vcvtu_nv8hi */

    default:
      return -1;
    }
}

static int
recog_127 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern80 (x1))
    {
    case 0:
      if (!
#line 4261 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1976; /* neon_vcvts_nv2sf */

    case 1:
      if (!
#line 4261 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1978; /* neon_vcvts_nv4sf */

    case 2:
      if (!
#line 4275 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1980; /* neon_vcvts_nv8hf */

    case 3:
      if (!
#line 4275 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1982; /* neon_vcvts_nv4hf */

    case 4:
      if (!
#line 4288 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1984; /* neon_vcvts_nv2si */

    case 5:
      if (!
#line 4288 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1986; /* neon_vcvts_nv4si */

    case 6:
      if (!
#line 4302 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1988; /* neon_vcvts_nv4hi */

    case 7:
      if (!
#line 4302 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1990; /* neon_vcvts_nv8hi */

    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;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V2SFmode:
      if (pattern57 (x3, E_V2SFmode) != 0
          || !
#line 3390 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1780; /* neon_vrecpsv2sf */

    case E_V4SFmode:
      if (pattern57 (x3, E_V4SFmode) != 0
          || !
#line 3390 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1781; /* neon_vrecpsv4sf */

    case E_V8HFmode:
      if (pattern57 (x3, E_V8HFmode) != 0
          || !
#line 3401 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1782; /* neon_vrecpsv8hf */

    case E_V4HFmode:
      if (pattern57 (x3, E_V4HFmode) != 0
          || !
#line 3401 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1783; /* neon_vrecpsv4hf */

    default:
      return -1;
    }
}

static int
recog_129 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  x4 = XVECEXP (x3, 0, 0);
  operands[1] = x4;
  x5 = XVECEXP (x3, 0, 1);
  operands[2] = x5;
  switch (GET_MODE (operands[0]))
    {
    case E_V8HFmode:
      if (pattern57 (x3, E_V8HFmode) != 0
          || !
#line 3212 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1666; /* neon_vabdv8hf */

    case E_V4HFmode:
      if (pattern57 (x3, E_V4HFmode) != 0
          || !
#line 3212 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1667; /* neon_vabdv4hf */

    case E_V2SFmode:
      if (pattern57 (x3, E_V2SFmode) != 0
          || !
#line 3222 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1668; /* neon_vabdfv2sf */

    case E_V4SFmode:
      if (pattern57 (x3, E_V4SFmode) != 0
          || !
#line 3222 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1669; /* neon_vabdfv4sf */

    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 (pattern68 (x1))
    {
    case 0:
      if (!
#line 2905 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1509; /* neon_vqsubuv8qi */

    case 1:
      if (!
#line 2905 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1511; /* neon_vqsubuv16qi */

    case 2:
      if (!
#line 2905 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1513; /* neon_vqsubuv4hi */

    case 3:
      if (!
#line 2905 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1515; /* neon_vqsubuv8hi */

    case 4:
      if (!
#line 2905 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1517; /* neon_vqsubuv2si */

    case 5:
      if (!
#line 2905 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1519; /* neon_vqsubuv4si */

    case 6:
      if (!
#line 2905 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1521; /* neon_vqsubudi */

    case 7:
      if (!
#line 2905 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1523; /* neon_vqsubuv2di */

    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 (pattern68 (x1))
    {
    case 0:
      if (!
#line 2905 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1508; /* neon_vqsubsv8qi */

    case 1:
      if (!
#line 2905 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1510; /* neon_vqsubsv16qi */

    case 2:
      if (!
#line 2905 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1512; /* neon_vqsubsv4hi */

    case 3:
      if (!
#line 2905 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1514; /* neon_vqsubsv8hi */

    case 4:
      if (!
#line 2905 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1516; /* neon_vqsubsv2si */

    case 5:
      if (!
#line 2905 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1518; /* neon_vqsubsv4si */

    case 6:
      if (!
#line 2905 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1520; /* neon_vqsubsdi */

    case 7:
      if (!
#line 2905 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1522; /* neon_vqsubsv2di */

    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 (pattern57 (x3, E_V8QImode) != 0
          || !
#line 2222 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1403; /* neon_vmulpv8qi */

    case E_V16QImode:
      if (pattern57 (x3, E_V16QImode) != 0
          || !
#line 2222 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1404; /* neon_vmulpv16qi */

    case E_V2SFmode:
      if (pattern57 (x3, E_V2SFmode) != 0
          || !
#line 2222 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1405; /* neon_vmulfv2sf */

    case E_V4SFmode:
      if (pattern57 (x3, E_V4SFmode) != 0
          || !
#line 2222 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1406; /* neon_vmulfv4sf */

    default:
      return -1;
    }
}

static int
recog_133 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern68 (x1))
    {
    case 0:
      if (!
#line 2201 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1382; /* neon_vqadduv8qi */

    case 1:
      if (!
#line 2201 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1384; /* neon_vqadduv16qi */

    case 2:
      if (!
#line 2201 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1386; /* neon_vqadduv4hi */

    case 3:
      if (!
#line 2201 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1388; /* neon_vqadduv8hi */

    case 4:
      if (!
#line 2201 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1390; /* neon_vqadduv2si */

    case 5:
      if (!
#line 2201 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1392; /* neon_vqadduv4si */

    case 6:
      if (!
#line 2201 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1394; /* neon_vqaddudi */

    case 7:
      if (!
#line 2201 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1396; /* neon_vqadduv2di */

    default:
      return -1;
    }
}

static int
recog_134 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern68 (x1))
    {
    case 0:
      if (!
#line 2201 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1381; /* neon_vqaddsv8qi */

    case 1:
      if (!
#line 2201 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1383; /* neon_vqaddsv16qi */

    case 2:
      if (!
#line 2201 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1385; /* neon_vqaddsv4hi */

    case 3:
      if (!
#line 2201 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1387; /* neon_vqaddsv8hi */

    case 4:
      if (!
#line 2201 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1389; /* neon_vqaddsv2si */

    case 5:
      if (!
#line 2201 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1391; /* neon_vqaddsv4si */

    case 6:
      if (!
#line 2201 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1393; /* neon_vqaddsdi */

    case 7:
      if (!
#line 2201 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1395; /* neon_vqaddsv2di */

    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 (pattern59 (x1))
    {
    case 0:
      if (!
#line 1135 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1255; /* ashlv8qi3_unsigned */

    case 1:
      if (!
#line 1135 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1256; /* ashlv16qi3_unsigned */

    case 2:
      if (!
#line 1135 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1257; /* ashlv4hi3_unsigned */

    case 3:
      if (!
#line 1135 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1258; /* ashlv8hi3_unsigned */

    case 4:
      if (!
#line 1135 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1259; /* ashlv2si3_unsigned */

    case 5:
      if (!
#line 1135 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1260; /* ashlv4si3_unsigned */

    case 6:
      if (!
#line 1135 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1261; /* ashlv2di3_unsigned */

    case 7:
      if (!
#line 1274 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 1266; /* unsigned_shift_di3_neon */

    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 (pattern59 (x1))
    {
    case 0:
      if (!
#line 1122 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1248; /* ashlv8qi3_signed */

    case 1:
      if (!
#line 1122 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1249; /* ashlv16qi3_signed */

    case 2:
      if (!
#line 1122 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1250; /* ashlv4hi3_signed */

    case 3:
      if (!
#line 1122 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1251; /* ashlv8hi3_signed */

    case 4:
      if (!
#line 1122 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1252; /* ashlv2si3_signed */

    case 5:
      if (!
#line 1122 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1253; /* ashlv4si3_signed */

    case 6:
      if (!
#line 1122 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1254; /* ashlv2di3_signed */

    case 7:
      if (!
#line 1263 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
        return -1;
      return 1265; /* signed_shift_di3_neon */

    default:
      return -1;
    }
}

static int
recog_137 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 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 1759 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 582; /* iwmmxt_wsadbz */

    case E_V4HImode:
      if (!register_operand (operands[1], E_V4HImode)
          || !register_operand (operands[2], E_V4HImode)
          || !
#line 1769 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 583; /* iwmmxt_wsadhz */

    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 (pattern58 (x1))
    {
    case 0:
      if (!
#line 1954 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
        return -1;
      return 801; /* neon_vminnmhf */

    case 1:
      if (!
#line 1965 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
        return -1;
      return 803; /* fminsf3 */

    case 2:
      if (!(
#line 1965 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 52 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
        return -1;
      return 805; /* fmindf3 */

    case 3:
      if (!
#line 3308 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1729; /* neon_vminnmv8hf */

    case 4:
      if (!
#line 3308 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1731; /* neon_vminnmv4hf */

    case 5:
      if (!
#line 3319 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
        return -1;
      return 1733; /* neon_vminnmv2sf */

    case 6:
      if (!
#line 3319 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
        return -1;
      return 1735; /* neon_vminnmv4sf */

    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 (pattern58 (x1))
    {
    case 0:
      if (!
#line 1954 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
        return -1;
      return 800; /* neon_vmaxnmhf */

    case 1:
      if (!
#line 1965 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
        return -1;
      return 802; /* fmaxsf3 */

    case 2:
      if (!(
#line 1965 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 52 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
        return -1;
      return 804; /* fmaxdf3 */

    case 3:
      if (!
#line 3308 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1728; /* neon_vmaxnmv8hf */

    case 4:
      if (!
#line 3308 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1730; /* neon_vmaxnmv4hf */

    case 5:
      if (!
#line 3319 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
        return -1;
      return 1732; /* neon_vmaxnmv2sf */

    case 6:
      if (!
#line 3319 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
        return -1;
      return 1734; /* neon_vmaxnmv4sf */

    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 (pattern88 (x1, E_OImode))
    {
    case 0:
      if (!
#line 6359 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2560; /* neon_vst4v8qi */

    case 1:
      if (!
#line 6359 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2561; /* neon_vst4v4hi */

    case 2:
      if (!
#line 6359 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2562; /* neon_vst4v4hf */

    case 3:
      if (!
#line 6359 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2563; /* neon_vst4v2si */

    case 4:
      if (!
#line 6359 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2564; /* neon_vst4v2sf */

    case 5:
      if (!
#line 6359 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2565; /* neon_vst4di */

    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 (pattern86 (x1, E_OImode))
    {
    case 0:
      if (!
#line 6179 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2529; /* neon_vld4v8qi */

    case 1:
      if (!
#line 6179 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2530; /* neon_vld4v4hi */

    case 2:
      if (!
#line 6179 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2531; /* neon_vld4v4hf */

    case 3:
      if (!
#line 6179 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2532; /* neon_vld4v2si */

    case 4:
      if (!
#line 6179 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2533; /* neon_vld4v2sf */

    case 5:
      if (!
#line 6179 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2534; /* neon_vld4di */

    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 (pattern88 (x1, E_EImode))
    {
    case 0:
      if (!
#line 6034 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2504; /* neon_vst3v8qi */

    case 1:
      if (!
#line 6034 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2505; /* neon_vst3v4hi */

    case 2:
      if (!
#line 6034 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2506; /* neon_vst3v4hf */

    case 3:
      if (!
#line 6034 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2507; /* neon_vst3v2si */

    case 4:
      if (!
#line 6034 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2508; /* neon_vst3v2sf */

    case 5:
      if (!
#line 6034 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2509; /* neon_vst3di */

    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 (pattern86 (x1, E_EImode))
    {
    case 0:
      if (!
#line 5861 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2473; /* neon_vld3v8qi */

    case 1:
      if (!
#line 5861 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2474; /* neon_vld3v4hi */

    case 2:
      if (!
#line 5861 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2475; /* neon_vld3v4hf */

    case 3:
      if (!
#line 5861 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2476; /* neon_vld3v2si */

    case 4:
      if (!
#line 5861 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2477; /* neon_vld3v2sf */

    case 5:
      if (!
#line 5861 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2478; /* neon_vld3di */

    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 (pattern77 (x1))
    {
    case 0:
      if (!
#line 3360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1753; /* neon_vpadaluv8qi */

    case 1:
      if (!
#line 3360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1755; /* neon_vpadaluv16qi */

    case 2:
      if (!
#line 3360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1757; /* neon_vpadaluv4hi */

    case 3:
      if (!
#line 3360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1759; /* neon_vpadaluv8hi */

    case 4:
      if (!
#line 3360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1761; /* neon_vpadaluv2si */

    case 5:
      if (!
#line 3360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1763; /* neon_vpadaluv4si */

    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 (pattern76 (x1))
    {
    case 0:
      if (!
#line 3296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1727; /* neon_vpminfv4hf */

    case 1:
      if (!
#line 3370 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1766; /* neon_vpminsv8qi */

    case 2:
      if (!
#line 3370 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1770; /* neon_vpminsv4hi */

    case 3:
      if (!
#line 3370 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1774; /* neon_vpminsv2si */

    case 4:
      if (!
#line 3380 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1777; /* neon_vpminfv2sf */

    case 5:
      if (!
#line 3380 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1779; /* neon_vpminfv4sf */

    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 (pattern77 (x1))
    {
    case 0:
      if (!
#line 3360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1752; /* neon_vpadalsv8qi */

    case 1:
      if (!
#line 3360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1754; /* neon_vpadalsv16qi */

    case 2:
      if (!
#line 3360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1756; /* neon_vpadalsv4hi */

    case 3:
      if (!
#line 3360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1758; /* neon_vpadalsv8hi */

    case 4:
      if (!
#line 3360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1760; /* neon_vpadalsv2si */

    case 5:
      if (!
#line 3360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1762; /* neon_vpadalsv4si */

    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 (pattern76 (x1))
    {
    case 0:
      if (!
#line 3296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1726; /* neon_vpmaxfv4hf */

    case 1:
      if (!
#line 3370 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1764; /* neon_vpmaxsv8qi */

    case 2:
      if (!
#line 3370 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1768; /* neon_vpmaxsv4hi */

    case 3:
      if (!
#line 3370 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1772; /* neon_vpmaxsv2si */

    case 4:
      if (!
#line 3380 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1776; /* neon_vpmaxfv2sf */

    case 5:
      if (!
#line 3380 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1778; /* neon_vpmaxfv4sf */

    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 (pattern67 (x1))
    {
    case 0:
      if (!
#line 3264 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1697; /* neon_vminuv8qi */

    case 1:
      if (!
#line 3264 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1701; /* neon_vminuv16qi */

    case 2:
      if (!
#line 3264 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1705; /* neon_vminuv4hi */

    case 3:
      if (!
#line 3264 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1709; /* neon_vminuv8hi */

    case 4:
      if (!
#line 3264 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1713; /* neon_vminuv2si */

    case 5:
      if (!
#line 3264 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1717; /* neon_vminuv4si */

    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 (pattern67 (x1))
    {
    case 0:
      if (!
#line 3264 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1695; /* neon_vmaxuv8qi */

    case 1:
      if (!
#line 3264 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1699; /* neon_vmaxuv16qi */

    case 2:
      if (!
#line 3264 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1703; /* neon_vmaxuv4hi */

    case 3:
      if (!
#line 3264 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1707; /* neon_vmaxuv8hi */

    case 4:
      if (!
#line 3264 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1711; /* neon_vmaxuv2si */

    case 5:
      if (!
#line 3264 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1715; /* neon_vmaxuv4si */

    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 (pattern67 (x1))
    {
    case 0:
      if (!
#line 3202 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1655; /* neon_vabduv8qi */

    case 1:
      if (!
#line 3202 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1657; /* neon_vabduv16qi */

    case 2:
      if (!
#line 3202 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1659; /* neon_vabduv4hi */

    case 3:
      if (!
#line 3202 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1661; /* neon_vabduv8hi */

    case 4:
      if (!
#line 3202 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1663; /* neon_vabduv2si */

    case 5:
      if (!
#line 3202 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1665; /* neon_vabduv4si */

    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 (pattern67 (x1))
    {
    case 0:
      if (!
#line 3202 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1654; /* neon_vabdsv8qi */

    case 1:
      if (!
#line 3202 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1656; /* neon_vabdsv16qi */

    case 2:
      if (!
#line 3202 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1658; /* neon_vabdsv4hi */

    case 3:
      if (!
#line 3202 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1660; /* neon_vabdsv8hi */

    case 4:
      if (!
#line 3202 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1662; /* neon_vabdsv2si */

    case 5:
      if (!
#line 3202 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1664; /* neon_vabdsv4si */

    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 (pattern67 (x1))
    {
    case 0:
      if (!
#line 3192 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1648; /* neon_vtstv8qi */

    case 1:
      if (!
#line 3192 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1649; /* neon_vtstv16qi */

    case 2:
      if (!
#line 3192 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1650; /* neon_vtstv4hi */

    case 3:
      if (!
#line 3192 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1651; /* neon_vtstv8hi */

    case 4:
      if (!
#line 3192 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1652; /* neon_vtstv2si */

    case 5:
      if (!
#line 3192 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1653; /* neon_vtstv4si */

    default:
      return -1;
    }
}

static int
recog_153 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern67 (x1))
    {
    case 0:
      if (!
#line 2915 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1525; /* neon_vhsubuv8qi */

    case 1:
      if (!
#line 2915 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1527; /* neon_vhsubuv16qi */

    case 2:
      if (!
#line 2915 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1529; /* neon_vhsubuv4hi */

    case 3:
      if (!
#line 2915 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1531; /* neon_vhsubuv8hi */

    case 4:
      if (!
#line 2915 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1533; /* neon_vhsubuv2si */

    case 5:
      if (!
#line 2915 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1535; /* neon_vhsubuv4si */

    default:
      return -1;
    }
}

static int
recog_154 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  int res ATTRIBUTE_UNUSED;
  switch (pattern67 (x1))
    {
    case 0:
      if (!
#line 2915 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1524; /* neon_vhsubsv8qi */

    case 1:
      if (!
#line 2915 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1526; /* neon_vhsubsv16qi */

    case 2:
      if (!
#line 2915 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1528; /* neon_vhsubsv4hi */

    case 3:
      if (!
#line 2915 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1530; /* neon_vhsubsv8hi */

    case 4:
      if (!
#line 2915 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1532; /* neon_vhsubsv2si */

    case 5:
      if (!
#line 2915 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1534; /* neon_vhsubsv4si */

    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 (pattern67 (x1))
    {
    case 0:
      if (!
#line 2191 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1360; /* neon_vhadduv8qi */

    case 1:
      if (!
#line 2191 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1364; /* neon_vhadduv16qi */

    case 2:
      if (!
#line 2191 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1368; /* neon_vhadduv4hi */

    case 3:
      if (!
#line 2191 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1372; /* neon_vhadduv8hi */

    case 4:
      if (!
#line 2191 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1376; /* neon_vhadduv2si */

    case 5:
      if (!
#line 2191 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1380; /* neon_vhadduv4si */

    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 (pattern67 (x1))
    {
    case 0:
      if (!
#line 2191 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1359; /* neon_vhaddsv8qi */

    case 1:
      if (!
#line 2191 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1363; /* neon_vhaddsv16qi */

    case 2:
      if (!
#line 2191 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1367; /* neon_vhaddsv4hi */

    case 3:
      if (!
#line 2191 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1371; /* neon_vhaddsv8hi */

    case 4:
      if (!
#line 2191 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1375; /* neon_vhaddsv2si */

    case 5:
      if (!
#line 2191 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1379; /* neon_vhaddsv4si */

    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];
  int res ATTRIBUTE_UNUSED;
  switch (pattern67 (x1))
    {
    case 0:
      if (!
#line 2191 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1358; /* neon_vrhadduv8qi */

    case 1:
      if (!
#line 2191 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1362; /* neon_vrhadduv16qi */

    case 2:
      if (!
#line 2191 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1366; /* neon_vrhadduv4hi */

    case 3:
      if (!
#line 2191 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1370; /* neon_vrhadduv8hi */

    case 4:
      if (!
#line 2191 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1374; /* neon_vrhadduv2si */

    case 5:
      if (!
#line 2191 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1378; /* neon_vrhadduv4si */

    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 (pattern67 (x1))
    {
    case 0:
      if (!
#line 2191 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1357; /* neon_vrhaddsv8qi */

    case 1:
      if (!
#line 2191 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1361; /* neon_vrhaddsv16qi */

    case 2:
      if (!
#line 2191 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1365; /* neon_vrhaddsv4hi */

    case 3:
      if (!
#line 2191 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1369; /* neon_vrhaddsv8hi */

    case 4:
      if (!
#line 2191 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1373; /* neon_vrhaddsv2si */

    case 5:
      if (!
#line 2191 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1377; /* neon_vrhaddsv4si */

    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];
  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 1866 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
    return -1;
  *pnum_clobbers = 2;
  return 868; /* thumb1_casesi_dispatch */
}

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];
  int res ATTRIBUTE_UNUSED;
  switch (pattern89 (x1, E_XImode, E_OImode))
    {
    case 0:
      if (!
#line 6422 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2571; /* neon_vst4qbv16qi */

    case 1:
      if (!
#line 6422 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2572; /* neon_vst4qbv8hi */

    case 2:
      if (!
#line 6422 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2573; /* neon_vst4qbv8hf */

    case 3:
      if (!
#line 6422 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2574; /* neon_vst4qbv4si */

    case 4:
      if (!
#line 6422 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2575; /* neon_vst4qbv4sf */

    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 (pattern89 (x1, E_XImode, E_OImode))
    {
    case 0:
      if (!
#line 6402 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2566; /* neon_vst4qav16qi */

    case 1:
      if (!
#line 6402 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2567; /* neon_vst4qav8hi */

    case 2:
      if (!
#line 6402 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2568; /* neon_vst4qav8hf */

    case 3:
      if (!
#line 6402 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2569; /* neon_vst4qav4si */

    case 4:
      if (!
#line 6402 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2570; /* neon_vst4qav4sf */

    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 (pattern87 (x1, E_OImode, E_XImode))
    {
    case 0:
      if (!
#line 6222 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2535; /* neon_vld4qav16qi */

    case 1:
      if (!
#line 6222 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2536; /* neon_vld4qav8hi */

    case 2:
      if (!
#line 6222 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2537; /* neon_vld4qav8hf */

    case 3:
      if (!
#line 6222 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2538; /* neon_vld4qav4si */

    case 4:
      if (!
#line 6222 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2539; /* neon_vld4qav4sf */

    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 (pattern89 (x1, E_CImode, E_EImode))
    {
    case 0:
      if (!
#line 6095 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2515; /* neon_vst3qbv16qi */

    case 1:
      if (!
#line 6095 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2516; /* neon_vst3qbv8hi */

    case 2:
      if (!
#line 6095 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2517; /* neon_vst3qbv8hf */

    case 3:
      if (!
#line 6095 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2518; /* neon_vst3qbv4si */

    case 4:
      if (!
#line 6095 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2519; /* neon_vst3qbv4sf */

    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 (pattern89 (x1, E_CImode, E_EImode))
    {
    case 0:
      if (!
#line 6076 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2510; /* neon_vst3qav16qi */

    case 1:
      if (!
#line 6076 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2511; /* neon_vst3qav8hi */

    case 2:
      if (!
#line 6076 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2512; /* neon_vst3qav8hf */

    case 3:
      if (!
#line 6076 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2513; /* neon_vst3qav4si */

    case 4:
      if (!
#line 6076 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2514; /* neon_vst3qav4sf */

    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 (pattern87 (x1, E_EImode, E_CImode))
    {
    case 0:
      if (!
#line 5904 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2479; /* neon_vld3qav16qi */

    case 1:
      if (!
#line 5904 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2480; /* neon_vld3qav8hi */

    case 2:
      if (!
#line 5904 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2481; /* neon_vld3qav8hf */

    case 3:
      if (!
#line 5904 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2482; /* neon_vld3qav4si */

    case 4:
      if (!
#line 5904 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2483; /* neon_vld3qav4sf */

    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];
  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 307; /* stack_tie */
}

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];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != E_OImode)
    return -1;
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  if (!s_register_operand (operands[0], E_OImode))
    return -1;
  x4 = XVECEXP (x2, 0, 0);
  operands[1] = x4;
  if (!s_register_operand (operands[1], E_V16QImode))
    return -1;
  x5 = XVECEXP (x2, 0, 1);
  operands[2] = x5;
  if (!s_register_operand (operands[2], E_V16QImode)
      || !
#line 5298 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
    return -1;
  return 2333; /* neon_vcombinev16qi */
}

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 (pattern79 (x1))
    {
    case 0:
      if (!(
#line 3474 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 123 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
        return -1;
      return 1800; /* neon_vcadd270v4hf */

    case 1:
      if (!(
#line 3474 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 124 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
        return -1;
      return 1802; /* neon_vcadd270v8hf */

    case 2:
      if (!
#line 3474 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
        return -1;
      return 1804; /* neon_vcadd270v2sf */

    case 3:
      if (!
#line 3474 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
        return -1;
      return 1806; /* neon_vcadd270v4sf */

    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 (pattern79 (x1))
    {
    case 0:
      if (!(
#line 3474 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 123 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
        return -1;
      return 1799; /* neon_vcadd90v4hf */

    case 1:
      if (!(
#line 3474 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX) && 
#line 124 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
        return -1;
      return 1801; /* neon_vcadd90v8hf */

    case 2:
      if (!
#line 3474 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
        return -1;
      return 1803; /* neon_vcadd90v2sf */

    case 3:
      if (!
#line 3474 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_COMPLEX))
        return -1;
      return 1805; /* neon_vcadd90v4sf */

    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 (pattern73 (x1))
    {
    case 0:
      if (!
#line 3128 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1629; /* neon_vcagtv2sf_insn_unspec */

    case 1:
      if (!
#line 3128 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1631; /* neon_vcagtv4sf_insn_unspec */

    case 2:
      if (!
#line 3169 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1641; /* neon_vcagtv8hf_fp16insn_unspec */

    case 3:
      if (!
#line 3169 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1645; /* neon_vcagtv4hf_fp16insn_unspec */

    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 (pattern73 (x1))
    {
    case 0:
      if (!
#line 3128 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1628; /* neon_vcagev2sf_insn_unspec */

    case 1:
      if (!
#line 3128 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1630; /* neon_vcagev4sf_insn_unspec */

    case 2:
      if (!
#line 3169 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1640; /* neon_vcagev8hf_fp16insn_unspec */

    case 3:
      if (!
#line 3169 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1644; /* neon_vcagev4hf_fp16insn_unspec */

    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 (pattern72 (x1))
    {
    case 0:
      if (!
#line 3003 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1586; /* neon_vclev2sf_insn_unspec */

    case 1:
      if (!
#line 3003 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1591; /* neon_vclev4sf_insn_unspec */

    case 2:
      if (!
#line 3070 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1606; /* neon_vclev8hf_fp16insn_unspec */

    case 3:
      if (!
#line 3070 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1611; /* neon_vclev4hf_fp16insn_unspec */

    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 (pattern72 (x1))
    {
    case 0:
      if (!
#line 3003 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1585; /* neon_vcltv2sf_insn_unspec */

    case 1:
      if (!
#line 3003 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1590; /* neon_vcltv4sf_insn_unspec */

    case 2:
      if (!
#line 3070 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1605; /* neon_vcltv8hf_fp16insn_unspec */

    case 3:
      if (!
#line 3070 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1610; /* neon_vcltv4hf_fp16insn_unspec */

    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 (pattern72 (x1))
    {
    case 0:
      if (!
#line 3003 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1584; /* neon_vcgev2sf_insn_unspec */

    case 1:
      if (!
#line 3003 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1589; /* neon_vcgev4sf_insn_unspec */

    case 2:
      if (!
#line 3070 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1604; /* neon_vcgev8hf_fp16insn_unspec */

    case 3:
      if (!
#line 3070 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1609; /* neon_vcgev4hf_fp16insn_unspec */

    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 (pattern72 (x1))
    {
    case 0:
      if (!
#line 3003 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1583; /* neon_vcgtv2sf_insn_unspec */

    case 1:
      if (!
#line 3003 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1588; /* neon_vcgtv4sf_insn_unspec */

    case 2:
      if (!
#line 3070 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1603; /* neon_vcgtv8hf_fp16insn_unspec */

    case 3:
      if (!
#line 3070 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1608; /* neon_vcgtv4hf_fp16insn_unspec */

    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 (pattern72 (x1))
    {
    case 0:
      if (!
#line 3003 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1582; /* neon_vceqv2sf_insn_unspec */

    case 1:
      if (!
#line 3003 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1587; /* neon_vceqv4sf_insn_unspec */

    case 2:
      if (!
#line 3070 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1602; /* neon_vceqv8hf_fp16insn_unspec */

    case 3:
      if (!
#line 3070 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 1607; /* neon_vceqv4hf_fp16insn_unspec */

    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];
  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:
      if (pattern63 (x3, E_V4HImode, E_V4SImode) != 0
          || !
#line 2846 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1492; /* neon_vqdmullv4hi */

    case E_V2DImode:
      if (pattern63 (x3, E_V2SImode, E_V2DImode) != 0
          || !
#line 2846 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1493; /* neon_vqdmullv2si */

    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 (pattern70 (x1))
    {
    case 0:
      if (!
#line 2792 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1464; /* neon_vqrdmulhv4hi */

    case 1:
      if (!
#line 2792 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1466; /* neon_vqrdmulhv2si */

    case 2:
      if (!
#line 2792 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1468; /* neon_vqrdmulhv8hi */

    case 3:
      if (!
#line 2792 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1470; /* neon_vqrdmulhv4si */

    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];
  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 (pattern281 (x3, E_V8QImode, E_QImode) != 0
          || !
#line 5491 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2380; /* neon_vld1_lanev8qi */

    case E_V4HImode:
      if (pattern281 (x3, E_V4HImode, E_HImode) != 0
          || !
#line 5491 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2381; /* neon_vld1_lanev4hi */

    case E_V4HFmode:
      if (pattern281 (x3, E_V4HFmode, E_HFmode) != 0
          || !
#line 5491 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2382; /* neon_vld1_lanev4hf */

    case E_V2SImode:
      if (pattern281 (x3, E_V2SImode, E_SImode) != 0
          || !
#line 5491 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2383; /* neon_vld1_lanev2si */

    case E_V2SFmode:
      if (pattern281 (x3, E_V2SFmode, E_SFmode) != 0
          || !
#line 5491 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2384; /* 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 5491 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2385; /* neon_vld1_lanedi */

    case E_V16QImode:
      if (pattern281 (x3, E_V16QImode, E_QImode) != 0
          || !
#line 5512 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2386; /* neon_vld1_lanev16qi */

    case E_V8HImode:
      if (pattern281 (x3, E_V8HImode, E_HImode) != 0
          || !
#line 5512 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2387; /* neon_vld1_lanev8hi */

    case E_V8HFmode:
      if (pattern281 (x3, E_V8HFmode, E_HFmode) != 0
          || !
#line 5512 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2388; /* neon_vld1_lanev8hf */

    case E_V4SImode:
      if (pattern281 (x3, E_V4SImode, E_SImode) != 0
          || !
#line 5512 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2389; /* neon_vld1_lanev4si */

    case E_V4SFmode:
      if (pattern281 (x3, E_V4SFmode, E_SFmode) != 0
          || !
#line 5512 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2390; /* neon_vld1_lanev4sf */

    case E_V2DImode:
      if (pattern281 (x3, E_V2DImode, E_DImode) != 0
          || !
#line 5512 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2391; /* neon_vld1_lanev2di */

    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];
  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 (pattern57 (x3, E_V8QImode) != 0
          || !
#line 4907 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2080; /* neon_vextv8qi */

    case E_V16QImode:
      if (pattern57 (x3, E_V16QImode) != 0
          || !
#line 4907 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2081; /* neon_vextv16qi */

    case E_V4HImode:
      if (pattern57 (x3, E_V4HImode) != 0
          || !
#line 4907 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2082; /* neon_vextv4hi */

    case E_V8HImode:
      if (pattern57 (x3, E_V8HImode) != 0
          || !
#line 4907 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2083; /* neon_vextv8hi */

    case E_V2SImode:
      if (pattern57 (x3, E_V2SImode) != 0
          || !
#line 4907 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2084; /* neon_vextv2si */

    case E_V4SImode:
      if (pattern57 (x3, E_V4SImode) != 0
          || !
#line 4907 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2085; /* neon_vextv4si */

    case E_V4HFmode:
      if (pattern57 (x3, E_V4HFmode) != 0
          || !
#line 4907 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2086; /* neon_vextv4hf */

    case E_V8HFmode:
      if (pattern57 (x3, E_V8HFmode) != 0
          || !
#line 4907 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2087; /* neon_vextv8hf */

    case E_V2SFmode:
      if (pattern57 (x3, E_V2SFmode) != 0
          || !
#line 4907 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2088; /* neon_vextv2sf */

    case E_V4SFmode:
      if (pattern57 (x3, E_V4SFmode) != 0
          || !
#line 4907 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2089; /* neon_vextv4sf */

    case E_DImode:
      if (pattern57 (x3, E_DImode) != 0
          || !
#line 4907 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2090; /* neon_vextdi */

    case E_V2DImode:
      if (pattern57 (x3, E_V2DImode) != 0
          || !
#line 4907 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2091; /* neon_vextv2di */

    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];
  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 (pattern91 (x3, E_V8QImode) != 0
          || !
#line 4956 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2109; /* neon_vbslv8qi_internal */

    case E_V16QImode:
      if (pattern91 (x3, E_V16QImode) != 0
          || !
#line 4956 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2110; /* neon_vbslv16qi_internal */

    case E_V4HImode:
      if (pattern91 (x3, E_V4HImode) != 0
          || !
#line 4956 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2111; /* neon_vbslv4hi_internal */

    case E_V8HImode:
      if (pattern91 (x3, E_V8HImode) != 0
          || !
#line 4956 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2112; /* neon_vbslv8hi_internal */

    case E_V2SImode:
      if (pattern91 (x3, E_V2SImode) != 0
          || !
#line 4956 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2113; /* neon_vbslv2si_internal */

    case E_V4SImode:
      if (pattern91 (x3, E_V4SImode) != 0
          || !
#line 4956 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2114; /* neon_vbslv4si_internal */

    case E_V4HFmode:
      if (pattern91 (x3, E_V4HFmode) != 0
          || !
#line 4956 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2115; /* neon_vbslv4hf_internal */

    case E_V8HFmode:
      if (pattern91 (x3, E_V8HFmode) != 0
          || !
#line 4956 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2116; /* neon_vbslv8hf_internal */

    case E_V2SFmode:
      if (pattern91 (x3, E_V2SFmode) != 0
          || !
#line 4956 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2117; /* neon_vbslv2sf_internal */

    case E_V4SFmode:
      if (pattern91 (x3, E_V4SFmode) != 0
          || !
#line 4956 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2118; /* neon_vbslv4sf_internal */

    case E_DImode:
      if (pattern91 (x3, E_DImode) != 0
          || !
#line 4956 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2119; /* neon_vbsldi_internal */

    case E_V2DImode:
      if (pattern91 (x3, E_V2DImode) != 0
          || !
#line 4956 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2120; /* neon_vbslv2di_internal */

    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];
  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) != 254)
    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 6118 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2520; /* neon_vst3_lanev8qi */

        case E_V4HImode:
          if (!
#line 6118 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2521; /* neon_vst3_lanev4hi */

        case E_V4HFmode:
          if (!
#line 6118 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2522; /* neon_vst3_lanev4hf */

        case E_V2SImode:
          if (!
#line 6118 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2523; /* neon_vst3_lanev2si */

        case E_V2SFmode:
          if (!
#line 6118 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2524; /* 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 6144 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2525; /* neon_vst3_lanev8hi */

        case E_V8HFmode:
          if (!
#line 6144 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2526; /* neon_vst3_lanev8hf */

        case E_V4SImode:
          if (!
#line 6144 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2527; /* neon_vst3_lanev4si */

        case E_V4SFmode:
          if (!
#line 6144 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2528; /* neon_vst3_lanev4sf */

        default:
          return -1;
        }

    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];
  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 (pattern57 (x3, E_V4HImode) != 0
          || !
#line 4364 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2026; /* neon_vmul_lanev4hi */

    case E_V2SImode:
      if (pattern57 (x3, E_V2SImode) != 0
          || !
#line 4364 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2027; /* neon_vmul_lanev2si */

    case E_V2SFmode:
      if (pattern57 (x3, E_V2SFmode) != 0
          || !
#line 4364 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2028; /* neon_vmul_lanev2sf */

    case E_V8HImode:
      if (pattern65 (x3, E_V4HImode, E_V8HImode) != 0
          || !
#line 4381 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2029; /* neon_vmul_lanev8hi */

    case E_V4SImode:
      if (pattern65 (x3, E_V2SImode, E_V4SImode) != 0
          || !
#line 4381 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2030; /* neon_vmul_lanev4si */

    case E_V4SFmode:
      if (pattern65 (x3, E_V2SFmode, E_V4SFmode) != 0
          || !
#line 4381 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2031; /* neon_vmul_lanev4sf */

    case E_V8HFmode:
      if (pattern65 (x3, E_V4HFmode, E_V8HFmode) != 0
          || !
#line 4398 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2032; /* neon_vmul_lanev8hf */

    case E_V4HFmode:
      if (pattern57 (x3, E_V4HFmode) != 0
          || !
#line 4398 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
        return -1;
      return 2033; /* neon_vmul_lanev4hf */

    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];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (pattern100 (x1) != 0)
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_SImode:
      x2 = XEXP (x1, 1);
      if (pattern337 (x2, E_OImode, E_SImode) != 0
          || !
#line 6446 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2576; /* neon_vst4_lanev8qi */

    case E_V4HImode:
      x2 = XEXP (x1, 1);
      switch (pattern342 (x2, E_V4HImode, E_V8HImode))
        {
        case 0:
          if (!
#line 6446 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2577; /* neon_vst4_lanev4hi */

        case 1:
          if (!
#line 6473 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2581; /* neon_vst4_lanev8hi */

        default:
          return -1;
        }

    case E_V4HFmode:
      x2 = XEXP (x1, 1);
      switch (pattern342 (x2, E_V4HFmode, E_V8HFmode))
        {
        case 0:
          if (!
#line 6446 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2578; /* neon_vst4_lanev4hf */

        case 1:
          if (!
#line 6473 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2582; /* neon_vst4_lanev8hf */

        default:
          return -1;
        }

    case E_V4SImode:
      x2 = XEXP (x1, 1);
      switch (pattern343 (x2, E_V2SImode, E_V4SImode))
        {
        case 0:
          if (!
#line 6446 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2579; /* neon_vst4_lanev2si */

        case 1:
          if (!
#line 6473 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2583; /* neon_vst4_lanev4si */

        default:
          return -1;
        }

    case E_V4SFmode:
      x2 = XEXP (x1, 1);
      switch (pattern343 (x2, E_V2SFmode, E_V4SFmode))
        {
        case 0:
          if (!
#line 6446 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2580; /* neon_vst4_lanev2sf */

        case 1:
          if (!
#line 6473 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2584; /* neon_vst4_lanev4sf */

        default:
          return -1;
        }

    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];
  rtx x2;
  int res ATTRIBUTE_UNUSED;
  if (pattern100 (x1) != 0)
    return -1;
  switch (GET_MODE (operands[0]))
    {
    case E_HImode:
      x2 = XEXP (x1, 1);
      if (pattern337 (x2, E_TImode, E_HImode) != 0
          || !
#line 5804 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 2464; /* neon_vst2_lanev8qi */

    case E_SImode:
      x2 = XEXP (x1, 1);
      switch (pattern339 (x2, E_V4HImode, E_V8HImode, E_SImode))
        {
        case 0:
          if (!
#line 5804 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2465; /* neon_vst2_lanev4hi */

        case 1:
          if (!
#line 5828 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2469; /* neon_vst2_lanev8hi */

        default:
          return -1;
        }

    case E_SFmode:
      x2 = XEXP (x1, 1);
      switch (pattern339 (x2, E_V4HFmode, E_V8HFmode, E_SFmode))
        {
        case 0:
          if (!
#line 5804 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2466; /* neon_vst2_lanev4hf */

        case 1:
          if (!
#line 5828 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2470; /* neon_vst2_lanev8hf */

        default:
          return -1;
        }

    case E_V2SImode:
      x2 = XEXP (x1, 1);
      switch (pattern340 (x2, E_V2SImode, E_V4SImode))
        {
        case 0:
          if (!
#line 5804 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2467; /* neon_vst2_lanev2si */

        case 1:
          if (!
#line 5828 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2471; /* neon_vst2_lanev4si */

        default:
          return -1;
        }

    case E_V2SFmode:
      x2 = XEXP (x1, 1);
      switch (pattern340 (x2, E_V2SFmode, E_V4SFmode))
        {
        case 0:
          if (!
#line 5804 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2468; /* neon_vst2_lanev2sf */

        case 1:
          if (!
#line 5828 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2472; /* neon_vst2_lanev4sf */

        default:
          return -1;
        }

    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];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (XINT (x2, 1))
    {
    case 25:
      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 (!memory_operand (operands[1], E_SImode)
          || !
#line 4489 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(unaligned_access))
        return -1;
      return 137; /* unaligned_loadsi */

    case 26:
      return recog_93 (x1, insn, pnum_clobbers);

    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 6236 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && flag_pic))
        return 183; /* pic_load_addr_32bit */
      if (!
#line 6252 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_THUMB1 && flag_pic))
        return -1;
      return 184; /* pic_load_addr_thumb1 */

    case 35:
      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 8730 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 230; /* probe_stack */

    case 37:
      if (pnum_clobbers == NULL
          || GET_MODE (x2) != E_SImode)
        return -1;
      x4 = XVECEXP (x2, 0, 0);
      if (GET_CODE (x4) != MEM
          || GET_MODE (x4) != E_SImode)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      if (!memory_operand (operands[0], E_SImode))
        return -1;
      x5 = XEXP (x4, 0);
      operands[1] = x5;
      if (!guard_addr_operand (operands[1], E_SImode))
        return -1;
      *pnum_clobbers = 2;
      return 232; /* *stack_protect_combined_set_insn */

    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 11574 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch_thumb2))
        return -1;
      return 322; /* rbitsi2 */

    case 17:
      return recog_92 (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 569 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 474; /* iwmmxt_clrdi */

    case 8:
      switch (pattern38 (x1, E_SImode))
        {
        case 0:
          if (!
#line 1588 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 568; /* iwmmxt_tmovmskb */

        case 1:
          if (!
#line 1597 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 569; /* iwmmxt_tmovmskh */

        case 2:
          if (!
#line 1606 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 570; /* iwmmxt_tmovmskw */

        default:
          return -1;
        }

    case 7:
      switch (pattern38 (x1, E_DImode))
        {
        case 0:
          if (!
#line 1615 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 571; /* iwmmxt_waccb */

        case 1:
          if (!
#line 1624 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 572; /* iwmmxt_wacch */

        case 2:
          if (!
#line 1633 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 573; /* iwmmxt_waccw */

        default:
          return -1;
        }

    case 16:
      return recog_85 (x1, insn, pnum_clobbers);

    case 40:
      return recog_87 (x1, insn, pnum_clobbers);

    case 39:
      x4 = XVECEXP (x2, 0, 0);
      if (GET_CODE (x4) != PLUS)
        return -1;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x5 = XEXP (x4, 0);
      operands[1] = x5;
      x6 = XEXP (x4, 1);
      operands[2] = x6;
      switch (GET_MODE (operands[0]))
        {
        case E_V4HImode:
          if (pattern256 (x2, E_V4HImode) != 0
              || !
#line 111 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 592; /* addcv4hi3 */

        case E_V2SImode:
          if (pattern256 (x2, E_V2SImode) != 0
              || !
#line 111 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 593; /* addcv2si3 */

        default:
          return -1;
        }

    case 282:
      switch (pattern39 (x1))
        {
        case 0:
          if (!
#line 932 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 674; /* neon_vrndhf */

        case 1:
          if (!
#line 1006 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1188; /* neon_vrndv8hf */

        case 2:
          if (!
#line 1006 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1194; /* neon_vrndv4hf */

        default:
          return -1;
        }

    case 283:
      switch (pattern39 (x1))
        {
        case 0:
          if (!
#line 932 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 675; /* neon_vrndahf */

        case 1:
          if (!
#line 1006 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1189; /* neon_vrndav8hf */

        case 2:
          if (!
#line 1006 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1195; /* neon_vrndav4hf */

        default:
          return -1;
        }

    case 285:
      switch (pattern39 (x1))
        {
        case 0:
          if (!
#line 932 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 676; /* neon_vrndmhf */

        case 1:
          if (!
#line 1006 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1190; /* neon_vrndmv8hf */

        case 2:
          if (!
#line 1006 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1196; /* neon_vrndmv4hf */

        default:
          return -1;
        }

    case 286:
      switch (pattern39 (x1))
        {
        case 0:
          if (!
#line 932 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 677; /* neon_vrndnhf */

        case 1:
          if (!
#line 1006 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1191; /* neon_vrndnv8hf */

        case 2:
          if (!
#line 1006 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1197; /* neon_vrndnv4hf */

        default:
          return -1;
        }

    case 287:
      switch (pattern39 (x1))
        {
        case 0:
          if (!
#line 932 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 678; /* neon_vrndphf */

        case 1:
          if (!
#line 1006 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1192; /* neon_vrndpv8hf */

        case 2:
          if (!
#line 1006 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1198; /* neon_vrndpv4hf */

        default:
          return -1;
        }

    case 288:
      switch (pattern39 (x1))
        {
        case 0:
          if (!
#line 932 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 679; /* neon_vrndxhf */

        case 1:
          if (!
#line 1006 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1193; /* neon_vrndxv8hf */

        case 2:
          if (!
#line 1006 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1199; /* neon_vrndxv4hf */

        default:
          return -1;
        }

    case 284:
      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 943 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
        return -1;
      return 680; /* neon_vrndihf */

    case 108:
      switch (pattern40 (x1))
        {
        case 0:
          if (!
#line 1766 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 755; /* neon_vcvthshf */

        case 1:
          if (!
#line 1777 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 757; /* neon_vcvthssi */

        default:
          return -1;
        }

    case 109:
      switch (pattern40 (x1))
        {
        case 0:
          if (!
#line 1766 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 756; /* neon_vcvthuhf */

        case 1:
          if (!
#line 1777 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 758; /* neon_vcvthusi */

        default:
          return -1;
        }

    case 110:
      switch (pattern41 (x1))
        {
        case 0:
          if (!
#line 1873 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 763; /* neon_vcvtahssi */

        case 1:
          if (!
#line 4316 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1992; /* neon_vcvtasv8hf */

        case 2:
          if (!
#line 4316 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2000; /* neon_vcvtasv4hf */

        default:
          return -1;
        }

    case 111:
      switch (pattern41 (x1))
        {
        case 0:
          if (!
#line 1873 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 764; /* neon_vcvtahusi */

        case 1:
          if (!
#line 4316 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1993; /* neon_vcvtauv8hf */

        case 2:
          if (!
#line 4316 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2001; /* neon_vcvtauv4hf */

        default:
          return -1;
        }

    case 112:
      switch (pattern41 (x1))
        {
        case 0:
          if (!
#line 1873 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 765; /* neon_vcvtmhssi */

        case 1:
          if (!
#line 4316 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1994; /* neon_vcvtmsv8hf */

        case 2:
          if (!
#line 4316 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2002; /* neon_vcvtmsv4hf */

        default:
          return -1;
        }

    case 113:
      switch (pattern41 (x1))
        {
        case 0:
          if (!
#line 1873 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 766; /* neon_vcvtmhusi */

        case 1:
          if (!
#line 4316 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1995; /* neon_vcvtmuv8hf */

        case 2:
          if (!
#line 4316 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2003; /* neon_vcvtmuv4hf */

        default:
          return -1;
        }

    case 114:
      switch (pattern41 (x1))
        {
        case 0:
          if (!
#line 1873 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 767; /* neon_vcvtnhssi */

        case 1:
          if (!
#line 4316 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1996; /* neon_vcvtnsv8hf */

        case 2:
          if (!
#line 4316 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2004; /* neon_vcvtnsv4hf */

        default:
          return -1;
        }

    case 115:
      switch (pattern41 (x1))
        {
        case 0:
          if (!
#line 1873 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 768; /* neon_vcvtnhusi */

        case 1:
          if (!
#line 4316 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1997; /* neon_vcvtnuv8hf */

        case 2:
          if (!
#line 4316 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2005; /* neon_vcvtnuv4hf */

        default:
          return -1;
        }

    case 116:
      switch (pattern41 (x1))
        {
        case 0:
          if (!
#line 1873 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 769; /* neon_vcvtphssi */

        case 1:
          if (!
#line 4316 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1998; /* neon_vcvtpsv8hf */

        case 2:
          if (!
#line 4316 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2006; /* neon_vcvtpsv4hf */

        default:
          return -1;
        }

    case 117:
      switch (pattern41 (x1))
        {
        case 0:
          if (!
#line 1873 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 770; /* neon_vcvtphusi */

        case 1:
          if (!
#line 4316 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1999; /* neon_vcvtpuv8hf */

        case 2:
          if (!
#line 4316 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 2007; /* neon_vcvtpuv4hf */

        default:
          return -1;
        }

    case 29:
      switch (pattern42 (x1))
        {
        case 0:
          if (!
#line 1899 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
            return -1;
          return 772; /* btruncsf2 */

        case 1:
          if (!(
#line 1899 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 52 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
            return -1;
          return 778; /* btruncdf2 */

        default:
          return -1;
        }

    case 30:
      switch (pattern42 (x1))
        {
        case 0:
          if (!
#line 1899 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
            return -1;
          return 773; /* ceilsf2 */

        case 1:
          if (!(
#line 1899 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 52 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
            return -1;
          return 779; /* ceildf2 */

        default:
          return -1;
        }

    case 31:
      switch (pattern42 (x1))
        {
        case 0:
          if (!
#line 1899 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
            return -1;
          return 774; /* floorsf2 */

        case 1:
          if (!(
#line 1899 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 52 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
            return -1;
          return 780; /* floordf2 */

        default:
          return -1;
        }

    case 32:
      switch (pattern42 (x1))
        {
        case 0:
          if (!
#line 1899 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
            return -1;
          return 775; /* nearbyintsf2 */

        case 1:
          if (!(
#line 1899 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 52 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
            return -1;
          return 781; /* nearbyintdf2 */

        default:
          return -1;
        }

    case 33:
      switch (pattern42 (x1))
        {
        case 0:
          if (!
#line 1899 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
            return -1;
          return 776; /* rintsf2 */

        case 1:
          if (!(
#line 1899 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 52 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
            return -1;
          return 782; /* rintdf2 */

        default:
          return -1;
        }

    case 34:
      switch (pattern42 (x1))
        {
        case 0:
          if (!
#line 1899 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
            return -1;
          return 777; /* roundsf2 */

        case 1:
          if (!(
#line 1899 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 52 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
            return -1;
          return 783; /* rounddf2 */

        default:
          return -1;
        }

    case 271:
      return recog_81 (x1, insn, pnum_clobbers);

    case 275:
      switch (pattern43 (x1))
        {
        case 0:
          if (!
#line 777 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1075; /* neon_vrintpv2sf */

        case 1:
          if (!
#line 777 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1081; /* neon_vrintpv4sf */

        default:
          return -1;
        }

    case 274:
      switch (pattern43 (x1))
        {
        case 0:
          if (!
#line 777 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1076; /* neon_vrintzv2sf */

        case 1:
          if (!
#line 777 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1082; /* neon_vrintzv4sf */

        default:
          return -1;
        }

    case 276:
      switch (pattern43 (x1))
        {
        case 0:
          if (!
#line 777 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1077; /* neon_vrintmv2sf */

        case 1:
          if (!
#line 777 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1083; /* neon_vrintmv4sf */

        default:
          return -1;
        }

    case 277:
      switch (pattern43 (x1))
        {
        case 0:
          if (!
#line 777 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1078; /* neon_vrintxv2sf */

        case 1:
          if (!
#line 777 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1084; /* neon_vrintxv4sf */

        default:
          return -1;
        }

    case 278:
      switch (pattern43 (x1))
        {
        case 0:
          if (!
#line 777 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1079; /* neon_vrintav2sf */

        case 1:
          if (!
#line 777 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1085; /* neon_vrintav4sf */

        default:
          return -1;
        }

    case 279:
      switch (pattern43 (x1))
        {
        case 0:
          if (!
#line 777 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1080; /* neon_vrintnv2sf */

        case 1:
          if (!
#line 777 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1086; /* neon_vrintnv4sf */

        default:
          return -1;
        }

    case 221:
      switch (pattern44 (x1))
        {
        case 0:
          if (!
#line 1016 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1200; /* neon_vrsqrtev8hf */

        case 1:
          if (!
#line 1016 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1201; /* neon_vrsqrtev4hf */

        case 2:
          if (!
#line 3702 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1889; /* neon_vrsqrtev2si */

        case 3:
          if (!
#line 3702 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1890; /* neon_vrsqrtev2sf */

        case 4:
          if (!
#line 3702 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1891; /* neon_vrsqrtev4si */

        case 5:
          if (!
#line 3702 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1892; /* neon_vrsqrtev4sf */

        default:
          return -1;
        }

    case 74:
      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 1185 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1262; /* neon_load_count */

    case 173:
      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 1634 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
        return -1;
      return 1307; /* arm_reduc_plus_internal_v2di */

    case 174:
      switch (pattern45 (x1))
        {
        case 0:
          if (!
#line 3350 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1740; /* neon_vpaddlsv8qi */

        case 1:
          if (!
#line 3350 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1742; /* neon_vpaddlsv16qi */

        case 2:
          if (!
#line 3350 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1744; /* neon_vpaddlsv4hi */

        case 3:
          if (!
#line 3350 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1746; /* neon_vpaddlsv8hi */

        case 4:
          if (!
#line 3350 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1748; /* neon_vpaddlsv2si */

        case 5:
          if (!
#line 3350 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1750; /* neon_vpaddlsv4si */

        default:
          return -1;
        }

    case 175:
      return recog_98 (x1, insn, pnum_clobbers);

    case 184:
      return recog_97 (x1, insn, pnum_clobbers);

    case 200:
      return recog_96 (x1, insn, pnum_clobbers);

    case 97:
      return recog_95 (x1, insn, pnum_clobbers);

    case 216:
      return recog_94 (x1, insn, pnum_clobbers);

    case 100:
      return recog_91 (x1, insn, pnum_clobbers);

    case 101:
      return recog_90 (x1, insn, pnum_clobbers);

    case 99:
      return recog_89 (x1, insn, pnum_clobbers);

    case 163:
      switch (pattern49 (x1))
        {
        case 0:
          if (!
#line 4325 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2008; /* neon_vmovnv8hi */

        case 1:
          if (!
#line 4325 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2009; /* neon_vmovnv4si */

        case 2:
          if (!
#line 4325 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2010; /* neon_vmovnv2di */

        default:
          return -1;
        }

    case 197:
      switch (pattern49 (x1))
        {
        case 0:
          if (!
#line 4334 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2011; /* neon_vqmovnsv8hi */

        case 1:
          if (!
#line 4334 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2013; /* neon_vqmovnsv4si */

        case 2:
          if (!
#line 4334 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2015; /* neon_vqmovnsv2di */

        default:
          return -1;
        }

    case 198:
      switch (pattern49 (x1))
        {
        case 0:
          if (!
#line 4334 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2012; /* neon_vqmovnuv8hi */

        case 1:
          if (!
#line 4334 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2014; /* neon_vqmovnuv4si */

        case 2:
          if (!
#line 4334 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2016; /* neon_vqmovnuv2di */

        default:
          return -1;
        }

    case 199:
      switch (pattern49 (x1))
        {
        case 0:
          if (!
#line 4343 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2017; /* neon_vqmovunv8hi */

        case 1:
          if (!
#line 4343 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2018; /* neon_vqmovunv4si */

        case 2:
          if (!
#line 4343 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2019; /* neon_vqmovunv2di */

        default:
          return -1;
        }

    case 161:
      switch (pattern51 (x1))
        {
        case 0:
          if (!
#line 4352 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2020; /* neon_vmovlsv8qi */

        case 1:
          if (!
#line 4352 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2022; /* neon_vmovlsv4hi */

        case 2:
          if (!
#line 4352 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2024; /* neon_vmovlsv2si */

        default:
          return -1;
        }

    case 162:
      switch (pattern51 (x1))
        {
        case 0:
          if (!
#line 4352 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2021; /* neon_vmovluv8qi */

        case 1:
          if (!
#line 4352 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2023; /* neon_vmovluv4hi */

        case 2:
          if (!
#line 4352 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2025; /* neon_vmovluv2si */

        default:
          return -1;
        }

    case 220:
      return recog_84 (x1, insn, pnum_clobbers);

    case 219:
      return recog_86 (x1, insn, pnum_clobbers);

    case 218:
      return recog_88 (x1, insn, pnum_clobbers);

    case 125:
      return recog_83 (x1, insn, pnum_clobbers);

    case 242:
      return recog_82 (x1, insn, pnum_clobbers);

    case 62:
      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);
      operands[1] = x4;
      if (!register_operand (operands[1], E_V16QImode)
          || !
#line 33 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/crypto.md"
(TARGET_CRYPTO))
        return -1;
      return 2641; /* crypto_aesmc */

    case 61:
      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);
      operands[1] = x4;
      if (!register_operand (operands[1], E_V16QImode)
          || !
#line 33 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/crypto.md"
(TARGET_CRYPTO))
        return -1;
      return 2642; /* crypto_aesimc */

    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_MEMORY_BARRIER))
        return -1;
      return 2656; /* *memory_barrier */

    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];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (XINT (x2, 1))
    {
    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 6215 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(flag_pic))
        return -1;
      return 182; /* pic_load_addr_unified */

    case 3:
      return recog_166 (x1, insn, pnum_clobbers);

    case 53:
      if (pattern52 (x1, E_QImode) != 0
          || !
#line 12066 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_CRC32))
        return -1;
      return 342; /* crc32b */

    case 54:
      if (pattern52 (x1, E_HImode) != 0
          || !
#line 12066 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_CRC32))
        return -1;
      return 343; /* crc32h */

    case 55:
      if (pattern53 (x1) != 0
          || !
#line 12066 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_CRC32))
        return -1;
      return 344; /* crc32w */

    case 56:
      if (pattern52 (x1, E_QImode) != 0
          || !
#line 12066 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_CRC32))
        return -1;
      return 345; /* crc32cb */

    case 57:
      if (pattern52 (x1, E_HImode) != 0
          || !
#line 12066 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_CRC32))
        return -1;
      return 346; /* crc32ch */

    case 58:
      if (pattern53 (x1) != 0
          || !
#line 12066 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_CRC32))
        return -1;
      return 347; /* crc32cw */

    case 13:
      if (pattern54 (x1, E_V4HImode, E_DImode) != 0
          || !
#line 537 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 471; /* iwmmxt_wmacsz */

    case 14:
      if (pattern54 (x1, E_V4HImode, E_DImode) != 0
          || !
#line 558 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 473; /* iwmmxt_wmacuz */

    case 6:
      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 789 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 490; /* iwmmxt_wshufh */

    case 10:
      return recog_137 (x1, insn, pnum_clobbers);

    case 44:
      if (pattern55 (x1, E_V4HImode) != 0
          || !
#line 371 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 607; /* iwmmxt_wqmulm */

    case 43:
      if (pattern55 (x1, E_V2SImode) != 0
          || !
#line 381 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 608; /* iwmmxt_wqmulwm */

    case 42:
      if (pattern55 (x1, E_V4HImode) != 0
          || !
#line 391 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 609; /* iwmmxt_wqmulmr */

    case 41:
      if (pattern55 (x1, E_V2SImode) != 0
          || !
#line 401 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 610; /* iwmmxt_wqmulwmr */

    case 222:
      return recog_109 (x1, insn, pnum_clobbers);

    case 106:
      if (pattern56 (x1) != 0
          || !
#line 1841 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
        return -1;
      return 761; /* neon_vcvths_nsi_unspec */

    case 107:
      if (pattern56 (x1) != 0
          || !
#line 1841 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
        return -1;
      return 762; /* neon_vcvthu_nsi_unspec */

    case 142:
      return recog_139 (x1, insn, pnum_clobbers);

    case 145:
      return recog_138 (x1, insn, pnum_clobbers);

    case 21:
      return recog_159 (x1, insn, pnum_clobbers);

    case 51:
      return recog_136 (x1, insn, pnum_clobbers);

    case 52:
      return recog_135 (x1, insn, pnum_clobbers);

    case 173:
      return recog_108 (x1, insn, pnum_clobbers);

    case 181:
      switch (pattern60 (x1))
        {
        case 0:
          if (!
#line 1776 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1313; /* neon_vpsminv8qi */

        case 1:
          if (!
#line 1776 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1314; /* neon_vpsminv4hi */

        case 2:
          if (!
#line 1776 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1315; /* neon_vpsminv2si */

        case 3:
          if (!
#line 1776 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1316; /* neon_vpsminv2sf */

        default:
          return -1;
        }

    case 180:
      switch (pattern60 (x1))
        {
        case 0:
          if (!
#line 1789 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1317; /* neon_vpsmaxv8qi */

        case 1:
          if (!
#line 1789 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1318; /* neon_vpsmaxv4hi */

        case 2:
          if (!
#line 1789 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1319; /* neon_vpsmaxv2si */

        case 3:
          if (!
#line 1789 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1320; /* neon_vpsmaxv2sf */

        default:
          return -1;
        }

    case 183:
      switch (pattern61 (x1))
        {
        case 0:
          if (!
#line 1802 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1321; /* neon_vpuminv8qi */

        case 1:
          if (!
#line 1802 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1322; /* neon_vpuminv4hi */

        case 2:
          if (!
#line 1802 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1323; /* neon_vpuminv2si */

        default:
          return -1;
        }

    case 182:
      switch (pattern61 (x1))
        {
        case 0:
          if (!
#line 1812 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1324; /* neon_vpumaxv8qi */

        case 1:
          if (!
#line 1812 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1325; /* neon_vpumaxv4hi */

        case 2:
          if (!
#line 1812 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1326; /* neon_vpumaxv2si */

        default:
          return -1;
        }

    case 80:
      switch (pattern62 (x1))
        {
        case 0:
          if (!
#line 2156 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1343; /* neon_vaddv2sf_unspec */

        case 1:
          if (!
#line 2156 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1344; /* neon_vaddv4sf_unspec */

        default:
          return -1;
        }

    case 83:
      switch (pattern64 (x1))
        {
        case 0:
          if (!
#line 2169 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1345; /* neon_vaddlsv8qi */

        case 1:
          if (!
#line 2169 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1347; /* neon_vaddlsv4hi */

        case 2:
          if (!
#line 2169 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1349; /* neon_vaddlsv2si */

        default:
          return -1;
        }

    case 84:
      switch (pattern64 (x1))
        {
        case 0:
          if (!
#line 2169 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1346; /* neon_vaddluv8qi */

        case 1:
          if (!
#line 2169 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1348; /* neon_vaddluv4hi */

        case 2:
          if (!
#line 2169 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1350; /* neon_vaddluv2si */

        default:
          return -1;
        }

    case 85:
      switch (pattern66 (x1))
        {
        case 0:
          if (!
#line 2179 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1351; /* neon_vaddwsv8qi */

        case 1:
          if (!
#line 2179 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1353; /* neon_vaddwsv4hi */

        case 2:
          if (!
#line 2179 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1355; /* neon_vaddwsv2si */

        default:
          return -1;
        }

    case 86:
      switch (pattern66 (x1))
        {
        case 0:
          if (!
#line 2179 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1352; /* neon_vaddwuv8qi */

        case 1:
          if (!
#line 2179 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1354; /* neon_vaddwuv4hi */

        case 2:
          if (!
#line 2179 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1356; /* neon_vaddwuv2si */

        default:
          return -1;
        }

    case 121:
      return recog_158 (x1, insn, pnum_clobbers);

    case 122:
      return recog_157 (x1, insn, pnum_clobbers);

    case 119:
      return recog_156 (x1, insn, pnum_clobbers);

    case 120:
      return recog_155 (x1, insn, pnum_clobbers);

    case 185:
      return recog_134 (x1, insn, pnum_clobbers);

    case 186:
      return recog_133 (x1, insn, pnum_clobbers);

    case 81:
      switch (pattern69 (x1))
        {
        case 0:
          if (!
#line 2211 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1397; /* neon_vaddhnv8hi */

        case 1:
          if (!
#line 2211 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1399; /* neon_vaddhnv4si */

        case 2:
          if (!
#line 2211 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1401; /* neon_vaddhnv2di */

        default:
          return -1;
        }

    case 82:
      switch (pattern69 (x1))
        {
        case 0:
          if (!
#line 2211 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1398; /* neon_vraddhnv8hi */

        case 1:
          if (!
#line 2211 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1400; /* neon_vraddhnv4si */

        case 2:
          if (!
#line 2211 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1402; /* neon_vraddhnv2di */

        default:
          return -1;
        }

    case 164:
      return recog_132 (x1, insn, pnum_clobbers);

    case 191:
      switch (pattern70 (x1))
        {
        case 0:
          if (!
#line 2792 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1463; /* neon_vqdmulhv4hi */

        case 1:
          if (!
#line 2792 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1465; /* neon_vqdmulhv2si */

        case 2:
          if (!
#line 2792 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1467; /* neon_vqdmulhv8hi */

        case 3:
          if (!
#line 2792 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1469; /* neon_vqdmulhv4si */

        default:
          return -1;
        }

    case 193:
      return recog_178 (x1, insn, pnum_clobbers);

    case 166:
      switch (pattern64 (x1))
        {
        case 0:
          if (!
#line 2836 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1483; /* neon_vmullsv8qi */

        case 1:
          if (!
#line 2836 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1486; /* neon_vmullsv4hi */

        case 2:
          if (!
#line 2836 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1489; /* neon_vmullsv2si */

        default:
          return -1;
        }

    case 167:
      switch (pattern64 (x1))
        {
        case 0:
          if (!
#line 2836 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1484; /* neon_vmulluv8qi */

        case 1:
          if (!
#line 2836 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1487; /* neon_vmulluv4hi */

        case 2:
          if (!
#line 2836 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1490; /* neon_vmulluv2si */

        default:
          return -1;
        }

    case 165:
      switch (pattern64 (x1))
        {
        case 0:
          if (!
#line 2836 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1485; /* neon_vmullpv8qi */

        case 1:
          if (!
#line 2836 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1488; /* neon_vmullpv4hi */

        case 2:
          if (!
#line 2836 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1491; /* neon_vmullpv2si */

        default:
          return -1;
        }

    case 195:
      return recog_177 (x1, insn, pnum_clobbers);

    case 255:
      switch (pattern62 (x1))
        {
        case 0:
          if (!
#line 2872 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1494; /* neon_vsubv2sf_unspec */

        case 1:
          if (!
#line 2872 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1495; /* neon_vsubv4sf_unspec */

        default:
          return -1;
        }

    case 258:
      switch (pattern64 (x1))
        {
        case 0:
          if (!
#line 2885 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1496; /* neon_vsublsv8qi */

        case 1:
          if (!
#line 2885 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1498; /* neon_vsublsv4hi */

        case 2:
          if (!
#line 2885 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1500; /* neon_vsublsv2si */

        default:
          return -1;
        }

    case 259:
      switch (pattern64 (x1))
        {
        case 0:
          if (!
#line 2885 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1497; /* neon_vsubluv8qi */

        case 1:
          if (!
#line 2885 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1499; /* neon_vsubluv4hi */

        case 2:
          if (!
#line 2885 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1501; /* neon_vsubluv2si */

        default:
          return -1;
        }

    case 260:
      switch (pattern66 (x1))
        {
        case 0:
          if (!
#line 2895 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1502; /* neon_vsubwsv8qi */

        case 1:
          if (!
#line 2895 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1504; /* neon_vsubwsv4hi */

        case 2:
          if (!
#line 2895 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1506; /* neon_vsubwsv2si */

        default:
          return -1;
        }

    case 261:
      switch (pattern66 (x1))
        {
        case 0:
          if (!
#line 2895 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1503; /* neon_vsubwuv8qi */

        case 1:
          if (!
#line 2895 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1505; /* neon_vsubwuv4hi */

        case 2:
          if (!
#line 2895 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1507; /* neon_vsubwuv2si */

        default:
          return -1;
        }

    case 214:
      return recog_131 (x1, insn, pnum_clobbers);

    case 215:
      return recog_130 (x1, insn, pnum_clobbers);

    case 123:
      return recog_154 (x1, insn, pnum_clobbers);

    case 124:
      return recog_153 (x1, insn, pnum_clobbers);

    case 256:
      switch (pattern69 (x1))
        {
        case 0:
          if (!
#line 2925 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1536; /* neon_vsubhnv8hi */

        case 1:
          if (!
#line 2925 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1538; /* neon_vsubhnv4si */

        case 2:
          if (!
#line 2925 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1540; /* neon_vsubhnv2di */

        default:
          return -1;
        }

    case 257:
      switch (pattern69 (x1))
        {
        case 0:
          if (!
#line 2925 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1537; /* neon_vrsubhnv8hi */

        case 1:
          if (!
#line 2925 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1539; /* neon_vrsubhnv4si */

        case 2:
          if (!
#line 2925 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1541; /* neon_vrsubhnv2di */

        default:
          return -1;
        }

    case 92:
      return recog_176 (x1, insn, pnum_clobbers);

    case 95:
      return recog_175 (x1, insn, pnum_clobbers);

    case 93:
      return recog_174 (x1, insn, pnum_clobbers);

    case 273:
      return recog_173 (x1, insn, pnum_clobbers);

    case 272:
      return recog_172 (x1, insn, pnum_clobbers);

    case 88:
      return recog_171 (x1, insn, pnum_clobbers);

    case 89:
      return recog_170 (x1, insn, pnum_clobbers);

    case 90:
      switch (pattern74 (x1))
        {
        case 0:
          if (!
#line 3169 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1642; /* neon_vcalev8hf_fp16insn_unspec */

        case 1:
          if (!
#line 3169 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1646; /* neon_vcalev4hf_fp16insn_unspec */

        default:
          return -1;
        }

    case 91:
      switch (pattern74 (x1))
        {
        case 0:
          if (!
#line 3169 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1643; /* neon_vcaltv8hf_fp16insn_unspec */

        case 1:
          if (!
#line 3169 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1647; /* neon_vcaltv4hf_fp16insn_unspec */

        default:
          return -1;
        }

    case 266:
      return recog_152 (x1, insn, pnum_clobbers);

    case 76:
      return recog_151 (x1, insn, pnum_clobbers);

    case 77:
      return recog_150 (x1, insn, pnum_clobbers);

    case 75:
      return recog_129 (x1, insn, pnum_clobbers);

    case 78:
      switch (pattern64 (x1))
        {
        case 0:
          if (!
#line 3232 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1670; /* neon_vabdlsv8qi */

        case 1:
          if (!
#line 3232 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1672; /* neon_vabdlsv4hi */

        case 2:
          if (!
#line 3232 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1674; /* neon_vabdlsv2si */

        default:
          return -1;
        }

    case 79:
      switch (pattern64 (x1))
        {
        case 0:
          if (!
#line 3232 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1671; /* neon_vabdluv8qi */

        case 1:
          if (!
#line 3232 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1673; /* neon_vabdluv4hi */

        case 2:
          if (!
#line 3232 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1675; /* neon_vabdluv2si */

        default:
          return -1;
        }

    case 140:
      return recog_107 (x1, insn, pnum_clobbers);

    case 141:
      return recog_149 (x1, insn, pnum_clobbers);

    case 143:
      return recog_106 (x1, insn, pnum_clobbers);

    case 144:
      return recog_148 (x1, insn, pnum_clobbers);

    case 176:
      return recog_147 (x1, insn, pnum_clobbers);

    case 178:
      return recog_145 (x1, insn, pnum_clobbers);

    case 171:
      return recog_146 (x1, insn, pnum_clobbers);

    case 172:
      return recog_144 (x1, insn, pnum_clobbers);

    case 177:
      switch (pattern61 (x1))
        {
        case 0:
          if (!
#line 3370 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1765; /* neon_vpmaxuv8qi */

        case 1:
          if (!
#line 3370 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1769; /* neon_vpmaxuv4hi */

        case 2:
          if (!
#line 3370 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1773; /* neon_vpmaxuv2si */

        default:
          return -1;
        }

    case 179:
      switch (pattern61 (x1))
        {
        case 0:
          if (!
#line 3370 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1767; /* neon_vpminuv8qi */

        case 1:
          if (!
#line 3370 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1771; /* neon_vpminuv4hi */

        case 2:
          if (!
#line 3370 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1775; /* neon_vpminuv2si */

        default:
          return -1;
        }

    case 217:
      return recog_128 (x1, insn, pnum_clobbers);

    case 293:
      return recog_169 (x1, insn, pnum_clobbers);

    case 294:
      return recog_168 (x1, insn, pnum_clobbers);

    case 102:
      return recog_127 (x1, insn, pnum_clobbers);

    case 103:
      return recog_126 (x1, insn, pnum_clobbers);

    case 223:
      return recog_125 (x1, insn, pnum_clobbers);

    case 224:
      return recog_124 (x1, insn, pnum_clobbers);

    case 225:
      return recog_123 (x1, insn, pnum_clobbers);

    case 226:
      return recog_122 (x1, insn, pnum_clobbers);

    case 201:
      return recog_121 (x1, insn, pnum_clobbers);

    case 202:
      return recog_120 (x1, insn, pnum_clobbers);

    case 203:
      return recog_119 (x1, insn, pnum_clobbers);

    case 204:
      return recog_118 (x1, insn, pnum_clobbers);

    case 230:
      return recog_117 (x1, insn, pnum_clobbers);

    case 231:
      return recog_116 (x1, insn, pnum_clobbers);

    case 232:
      return recog_115 (x1, insn, pnum_clobbers);

    case 233:
      return recog_114 (x1, insn, pnum_clobbers);

    case 234:
      switch (pattern82 (x1))
        {
        case 0:
          if (!
#line 5018 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2217; /* neon_vshrn_nv8hi */

        case 1:
          if (!
#line 5018 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2219; /* neon_vshrn_nv4si */

        case 2:
          if (!
#line 5018 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2221; /* neon_vshrn_nv2di */

        default:
          return -1;
        }

    case 235:
      switch (pattern82 (x1))
        {
        case 0:
          if (!
#line 5018 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2218; /* neon_vrshrn_nv8hi */

        case 1:
          if (!
#line 5018 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2220; /* neon_vrshrn_nv4si */

        case 2:
          if (!
#line 5018 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2222; /* neon_vrshrn_nv2di */

        default:
          return -1;
        }

    case 208:
      switch (pattern82 (x1))
        {
        case 0:
          if (!
#line 5032 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2223; /* neon_vqshrns_nv8hi */

        case 1:
          if (!
#line 5032 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2227; /* neon_vqshrns_nv4si */

        case 2:
          if (!
#line 5032 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2231; /* neon_vqshrns_nv2di */

        default:
          return -1;
        }

    case 209:
      switch (pattern82 (x1))
        {
        case 0:
          if (!
#line 5032 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2224; /* neon_vqshrnu_nv8hi */

        case 1:
          if (!
#line 5032 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2228; /* neon_vqshrnu_nv4si */

        case 2:
          if (!
#line 5032 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2232; /* neon_vqshrnu_nv2di */

        default:
          return -1;
        }

    case 210:
      switch (pattern82 (x1))
        {
        case 0:
          if (!
#line 5032 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2225; /* neon_vqrshrns_nv8hi */

        case 1:
          if (!
#line 5032 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2229; /* neon_vqrshrns_nv4si */

        case 2:
          if (!
#line 5032 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2233; /* neon_vqrshrns_nv2di */

        default:
          return -1;
        }

    case 211:
      switch (pattern82 (x1))
        {
        case 0:
          if (!
#line 5032 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2226; /* neon_vqrshrnu_nv8hi */

        case 1:
          if (!
#line 5032 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2230; /* neon_vqrshrnu_nv4si */

        case 2:
          if (!
#line 5032 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2234; /* neon_vqrshrnu_nv2di */

        default:
          return -1;
        }

    case 212:
      switch (pattern82 (x1))
        {
        case 0:
          if (!
#line 5046 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2235; /* neon_vqshrun_nv8hi */

        case 1:
          if (!
#line 5046 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2237; /* neon_vqshrun_nv4si */

        case 2:
          if (!
#line 5046 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2239; /* neon_vqshrun_nv2di */

        default:
          return -1;
        }

    case 213:
      switch (pattern82 (x1))
        {
        case 0:
          if (!
#line 5046 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2236; /* neon_vqrshrun_nv8hi */

        case 1:
          if (!
#line 5046 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2238; /* neon_vqrshrun_nv4si */

        case 2:
          if (!
#line 5046 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2240; /* neon_vqrshrun_nv2di */

        default:
          return -1;
        }

    case 229:
      return recog_113 (x1, insn, pnum_clobbers);

    case 205:
      return recog_111 (x1, insn, pnum_clobbers);

    case 206:
      return recog_112 (x1, insn, pnum_clobbers);

    case 207:
      return recog_110 (x1, insn, pnum_clobbers);

    case 227:
      switch (pattern83 (x1))
        {
        case 0:
          if (!
#line 5098 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2273; /* neon_vshlls_nv8qi */

        case 1:
          if (!
#line 5098 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2275; /* neon_vshlls_nv4hi */

        case 2:
          if (!
#line 5098 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2277; /* neon_vshlls_nv2si */

        default:
          return -1;
        }

    case 228:
      switch (pattern83 (x1))
        {
        case 0:
          if (!
#line 5098 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2274; /* neon_vshllu_nv8qi */

        case 1:
          if (!
#line 5098 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2276; /* neon_vshllu_nv4hi */

        case 2:
          if (!
#line 5098 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2278; /* neon_vshllu_nv2si */

        default:
          return -1;
        }

    case 262:
      return recog_104 (x1, insn, pnum_clobbers);

    case 98:
      return recog_167 (x1, insn, pnum_clobbers);

    case 243:
      return recog_99 (x1, insn, pnum_clobbers);

    case 127:
      return recog_102 (x1, insn, pnum_clobbers);

    case 128:
      return recog_101 (x1, insn, pnum_clobbers);

    case 244:
      return recog_103 (x1, insn, pnum_clobbers);

    case 130:
      return recog_143 (x1, insn, pnum_clobbers);

    case 131:
      return recog_165 (x1, insn, pnum_clobbers);

    case 133:
      return recog_105 (x1, insn, pnum_clobbers);

    case 246:
      return recog_142 (x1, insn, pnum_clobbers);

    case 247:
      return recog_164 (x1, insn, pnum_clobbers);

    case 248:
      return recog_163 (x1, insn, pnum_clobbers);

    case 135:
      return recog_141 (x1, insn, pnum_clobbers);

    case 136:
      return recog_162 (x1, insn, pnum_clobbers);

    case 138:
      return recog_100 (x1, insn, pnum_clobbers);

    case 250:
      return recog_140 (x1, insn, pnum_clobbers);

    case 251:
      return recog_161 (x1, insn, pnum_clobbers);

    case 252:
      return recog_160 (x1, insn, pnum_clobbers);

    case 59:
      if (pattern55 (x1, E_V16QImode) != 0
          || !
#line 49 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/crypto.md"
(TARGET_CRYPTO))
        return -1;
      return 2643; /* crypto_aesd */

    case 60:
      if (pattern55 (x1, E_V16QImode) != 0
          || !
#line 49 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/crypto.md"
(TARGET_CRYPTO))
        return -1;
      return 2644; /* crypto_aese */

    case 68:
      if (pattern55 (x1, E_V4SImode) != 0
          || !
#line 49 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/crypto.md"
(TARGET_CRYPTO))
        return -1;
      return 2645; /* crypto_sha1su1 */

    case 71:
      if (pattern55 (x1, E_V4SImode) != 0
          || !
#line 49 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/crypto.md"
(TARGET_CRYPTO))
        return -1;
      return 2646; /* crypto_sha256su0 */

    case 73:
      if (pattern54 (x1, E_DImode, E_TImode) != 0
          || !
#line 82 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/crypto.md"
(TARGET_CRYPTO))
        return -1;
      return 2652; /* crypto_vmullp64 */

    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];
  rtx x2, x3, x4, x5, x6;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (XINT (x2, 1))
    {
    case 2:
      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 6264 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_THUMB))
            return -1;
          return 185; /* pic_add_dot_plus_four */

        case 8L:
          if (!
#line 6280 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 186; /* pic_add_dot_plus_eight */

        default:
          return -1;
        }

    case 17:
      if (pnum_clobbers == NULL
          || GET_MODE (x2) != E_SImode)
        return -1;
      x5 = XVECEXP (x2, 0, 0);
      if (GET_CODE (x5) != REG
          || REGNO (x5) != 0
          || GET_MODE (x5) != E_SImode)
        return -1;
      x4 = XEXP (x1, 0);
      if (GET_CODE (x4) != REG
          || REGNO (x4) != 0
          || GET_MODE (x4) != E_SImode)
        return -1;
      x3 = XVECEXP (x2, 0, 1);
      operands[0] = x3;
      x6 = XVECEXP (x2, 0, 2);
      operands[1] = x6;
      if (!
#line 11692 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_GNU2_TLS))
        return -1;
      *pnum_clobbers = 3;
      return 329; /* tlscall */

    case 11:
      if (pattern90 (x1) != 0
          || !
#line 527 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 470; /* iwmmxt_wmacs */

    case 12:
      if (pattern90 (x1) != 0
          || !
#line 548 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 472; /* iwmmxt_wmacu */

    case 9:
      if (GET_MODE (x2) != E_V2SImode)
        return -1;
      x4 = XEXP (x1, 0);
      operands[0] = x4;
      if (!register_operand (operands[0], E_V2SImode))
        return -1;
      x5 = XVECEXP (x2, 0, 0);
      operands[1] = x5;
      if (!register_operand (operands[1], E_V2SImode))
        return -1;
      x3 = XVECEXP (x2, 0, 1);
      operands[2] = x3;
      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 1737 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 580; /* iwmmxt_wsadb */

        case E_V4HImode:
          if (!register_operand (operands[2], E_V4HImode)
              || !register_operand (operands[3], E_V4HImode)
              || !
#line 1749 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 581; /* iwmmxt_wsadh */

        default:
          return -1;
        }

    case 146:
      switch (pattern92 (x1))
        {
        case 0:
          if (!
#line 2724 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1435; /* neon_vmlav8qi_unspec */

        case 1:
          if (!
#line 2724 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1436; /* neon_vmlav16qi_unspec */

        case 2:
          if (!
#line 2724 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1437; /* neon_vmlav4hi_unspec */

        case 3:
          if (!
#line 2724 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1438; /* neon_vmlav8hi_unspec */

        case 4:
          if (!
#line 2724 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1439; /* neon_vmlav2si_unspec */

        case 5:
          if (!
#line 2724 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1440; /* neon_vmlav4si_unspec */

        case 6:
          if (!
#line 2724 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1441; /* neon_vmlav2sf_unspec */

        case 7:
          if (!
#line 2724 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1442; /* neon_vmlav4sf_unspec */

        default:
          return -1;
        }

    case 148:
      switch (pattern94 (x1))
        {
        case 0:
          if (!
#line 2738 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1443; /* neon_vmlalsv8qi */

        case 1:
          if (!
#line 2738 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1445; /* neon_vmlalsv4hi */

        case 2:
          if (!
#line 2738 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1447; /* neon_vmlalsv2si */

        default:
          return -1;
        }

    case 149:
      switch (pattern94 (x1))
        {
        case 0:
          if (!
#line 2738 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1444; /* neon_vmlaluv8qi */

        case 1:
          if (!
#line 2738 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1446; /* neon_vmlaluv4hi */

        case 2:
          if (!
#line 2738 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1448; /* neon_vmlaluv2si */

        default:
          return -1;
        }

    case 152:
      switch (pattern92 (x1))
        {
        case 0:
          if (!
#line 2767 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1449; /* neon_vmlsv8qi_unspec */

        case 1:
          if (!
#line 2767 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1450; /* neon_vmlsv16qi_unspec */

        case 2:
          if (!
#line 2767 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1451; /* neon_vmlsv4hi_unspec */

        case 3:
          if (!
#line 2767 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1452; /* neon_vmlsv8hi_unspec */

        case 4:
          if (!
#line 2767 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1453; /* neon_vmlsv2si_unspec */

        case 5:
          if (!
#line 2767 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1454; /* neon_vmlsv4si_unspec */

        case 6:
          if (!
#line 2767 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1455; /* neon_vmlsv2sf_unspec */

        case 7:
          if (!
#line 2767 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1456; /* neon_vmlsv4sf_unspec */

        default:
          return -1;
        }

    case 154:
      switch (pattern94 (x1))
        {
        case 0:
          if (!
#line 2781 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1457; /* neon_vmlslsv8qi */

        case 1:
          if (!
#line 2781 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1459; /* neon_vmlslsv4hi */

        case 2:
          if (!
#line 2781 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1461; /* neon_vmlslsv2si */

        default:
          return -1;
        }

    case 155:
      switch (pattern94 (x1))
        {
        case 0:
          if (!
#line 2781 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1458; /* neon_vmlsluv8qi */

        case 1:
          if (!
#line 2781 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1460; /* neon_vmlsluv4hi */

        case 2:
          if (!
#line 2781 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1462; /* neon_vmlsluv2si */

        default:
          return -1;
        }

    case 280:
      switch (pattern95 (x1))
        {
        case 0:
          if (!
#line 2804 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
            return -1;
          return 1471; /* neon_vqrdmlahv4hi */

        case 1:
          if (!
#line 2804 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
            return -1;
          return 1473; /* neon_vqrdmlahv2si */

        case 2:
          if (!
#line 2804 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
            return -1;
          return 1475; /* neon_vqrdmlahv8hi */

        case 3:
          if (!
#line 2804 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
            return -1;
          return 1477; /* neon_vqrdmlahv4si */

        default:
          return -1;
        }

    case 281:
      switch (pattern95 (x1))
        {
        case 0:
          if (!
#line 2804 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
            return -1;
          return 1472; /* neon_vqrdmlshv4hi */

        case 1:
          if (!
#line 2804 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
            return -1;
          return 1474; /* neon_vqrdmlshv2si */

        case 2:
          if (!
#line 2804 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
            return -1;
          return 1476; /* neon_vqrdmlshv8hi */

        case 3:
          if (!
#line 2804 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
            return -1;
          return 1478; /* neon_vqrdmlshv4si */

        default:
          return -1;
        }

    case 187:
      switch (pattern96 (x1))
        {
        case 0:
          if (!
#line 2815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1479; /* neon_vqdmlalv4hi */

        case 1:
          if (!
#line 2815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1480; /* neon_vqdmlalv2si */

        default:
          return -1;
        }

    case 189:
      switch (pattern96 (x1))
        {
        case 0:
          if (!
#line 2826 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1481; /* neon_vqdmlslv4hi */

        case 1:
          if (!
#line 2826 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1482; /* neon_vqdmlslv2si */

        default:
          return -1;
        }

    case 168:
      return recog_183 (x1, insn, pnum_clobbers);

    case 169:
      switch (pattern97 (x1))
        {
        case 0:
          if (!
#line 4410 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2034; /* neon_vmulls_lanev4hi */

        case 1:
          if (!
#line 4410 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2036; /* neon_vmulls_lanev2si */

        default:
          return -1;
        }

    case 170:
      switch (pattern97 (x1))
        {
        case 0:
          if (!
#line 4410 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2035; /* neon_vmullu_lanev4hi */

        case 1:
          if (!
#line 4410 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2037; /* neon_vmullu_lanev2si */

        default:
          return -1;
        }

    case 196:
      switch (pattern97 (x1))
        {
        case 0:
          if (!
#line 4424 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2038; /* neon_vqdmull_lanev4hi */

        case 1:
          if (!
#line 4424 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2039; /* neon_vqdmull_lanev2si */

        default:
          return -1;
        }

    case 192:
      switch (pattern98 (x1))
        {
        case 0:
          if (!
#line 4438 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2040; /* neon_vqdmulh_lanev8hi */

        case 1:
          if (!
#line 4438 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2042; /* neon_vqdmulh_lanev4si */

        case 2:
          if (!
#line 4452 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2044; /* neon_vqdmulh_lanev4hi */

        case 3:
          if (!
#line 4452 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2046; /* neon_vqdmulh_lanev2si */

        default:
          return -1;
        }

    case 194:
      switch (pattern98 (x1))
        {
        case 0:
          if (!
#line 4438 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2041; /* neon_vqrdmulh_lanev8hi */

        case 1:
          if (!
#line 4438 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2043; /* neon_vqrdmulh_lanev4si */

        case 2:
          if (!
#line 4452 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2045; /* neon_vqrdmulh_lanev4hi */

        case 3:
          if (!
#line 4452 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2047; /* neon_vqrdmulh_lanev2si */

        default:
          return -1;
        }

    case 118:
      return recog_180 (x1, insn, pnum_clobbers);

    case 87:
      return recog_181 (x1, insn, pnum_clobbers);

    case 237:
      switch (pattern99 (x1))
        {
        case 0:
          if (!
#line 5114 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2279; /* neon_vsras_nv8qi */

        case 1:
          if (!
#line 5114 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2283; /* neon_vsras_nv16qi */

        case 2:
          if (!
#line 5114 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2287; /* neon_vsras_nv4hi */

        case 3:
          if (!
#line 5114 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2291; /* neon_vsras_nv8hi */

        case 4:
          if (!
#line 5114 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2295; /* neon_vsras_nv2si */

        case 5:
          if (!
#line 5114 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2299; /* neon_vsras_nv4si */

        case 6:
          if (!
#line 5114 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2303; /* neon_vsras_ndi */

        case 7:
          if (!
#line 5114 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2307; /* neon_vsras_nv2di */

        default:
          return -1;
        }

    case 238:
      switch (pattern99 (x1))
        {
        case 0:
          if (!
#line 5114 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2280; /* neon_vsrau_nv8qi */

        case 1:
          if (!
#line 5114 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2284; /* neon_vsrau_nv16qi */

        case 2:
          if (!
#line 5114 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2288; /* neon_vsrau_nv4hi */

        case 3:
          if (!
#line 5114 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2292; /* neon_vsrau_nv8hi */

        case 4:
          if (!
#line 5114 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2296; /* neon_vsrau_nv2si */

        case 5:
          if (!
#line 5114 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2300; /* neon_vsrau_nv4si */

        case 6:
          if (!
#line 5114 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2304; /* neon_vsrau_ndi */

        case 7:
          if (!
#line 5114 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2308; /* neon_vsrau_nv2di */

        default:
          return -1;
        }

    case 239:
      switch (pattern99 (x1))
        {
        case 0:
          if (!
#line 5114 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2281; /* neon_vrsras_nv8qi */

        case 1:
          if (!
#line 5114 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2285; /* neon_vrsras_nv16qi */

        case 2:
          if (!
#line 5114 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2289; /* neon_vrsras_nv4hi */

        case 3:
          if (!
#line 5114 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2293; /* neon_vrsras_nv8hi */

        case 4:
          if (!
#line 5114 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2297; /* neon_vrsras_nv2si */

        case 5:
          if (!
#line 5114 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2301; /* neon_vrsras_nv4si */

        case 6:
          if (!
#line 5114 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2305; /* neon_vrsras_ndi */

        case 7:
          if (!
#line 5114 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2309; /* neon_vrsras_nv2di */

        default:
          return -1;
        }

    case 240:
      switch (pattern99 (x1))
        {
        case 0:
          if (!
#line 5114 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2282; /* neon_vrsrau_nv8qi */

        case 1:
          if (!
#line 5114 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2286; /* neon_vrsrau_nv16qi */

        case 2:
          if (!
#line 5114 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2290; /* neon_vrsrau_nv4hi */

        case 3:
          if (!
#line 5114 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2294; /* neon_vrsrau_nv8hi */

        case 4:
          if (!
#line 5114 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2298; /* neon_vrsrau_nv2si */

        case 5:
          if (!
#line 5114 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2302; /* neon_vrsrau_nv4si */

        case 6:
          if (!
#line 5114 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2306; /* neon_vrsrau_ndi */

        case 7:
          if (!
#line 5114 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2310; /* neon_vrsrau_nv2di */

        default:
          return -1;
        }

    case 241:
      switch (pattern99 (x1))
        {
        case 0:
          if (!
#line 5128 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2311; /* neon_vsri_nv8qi */

        case 1:
          if (!
#line 5128 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2312; /* neon_vsri_nv16qi */

        case 2:
          if (!
#line 5128 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2313; /* neon_vsri_nv4hi */

        case 3:
          if (!
#line 5128 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2314; /* neon_vsri_nv8hi */

        case 4:
          if (!
#line 5128 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2315; /* neon_vsri_nv2si */

        case 5:
          if (!
#line 5128 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2316; /* neon_vsri_nv4si */

        case 6:
          if (!
#line 5128 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2317; /* neon_vsri_ndi */

        case 7:
          if (!
#line 5128 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2318; /* neon_vsri_nv2di */

        default:
          return -1;
        }

    case 236:
      switch (pattern99 (x1))
        {
        case 0:
          if (!
#line 5142 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2319; /* neon_vsli_nv8qi */

        case 1:
          if (!
#line 5142 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2320; /* neon_vsli_nv16qi */

        case 2:
          if (!
#line 5142 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2321; /* neon_vsli_nv4hi */

        case 3:
          if (!
#line 5142 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2322; /* neon_vsli_nv8hi */

        case 4:
          if (!
#line 5142 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2323; /* neon_vsli_nv2si */

        case 5:
          if (!
#line 5142 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2324; /* neon_vsli_nv4si */

        case 6:
          if (!
#line 5142 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2325; /* neon_vsli_ndi */

        case 7:
          if (!
#line 5142 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2326; /* neon_vsli_nv2di */

        default:
          return -1;
        }

    case 263:
      if (GET_MODE (x2) != E_V8QImode)
        return -1;
      x4 = XEXP (x1, 0);
      operands[0] = x4;
      if (!s_register_operand (operands[0], E_V8QImode))
        return -1;
      x5 = XVECEXP (x2, 0, 0);
      operands[1] = x5;
      if (!s_register_operand (operands[1], E_V8QImode))
        return -1;
      x3 = XVECEXP (x2, 0, 1);
      operands[2] = x3;
      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 5315 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2334; /* neon_vtbx1v8qi */

        case E_TImode:
          if (!s_register_operand (operands[2], E_TImode)
              || !
#line 5326 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2335; /* neon_vtbx2v8qi */

        case E_EImode:
          if (!s_register_operand (operands[2], E_EImode)
              || !
#line 5348 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2336; /* neon_vtbx3v8qi */

        case E_OImode:
          if (!s_register_operand (operands[2], E_OImode)
              || !
#line 5371 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2337; /* neon_vtbx4v8qi */

        default:
          return -1;
        }

    case 126:
      return recog_179 (x1, insn, pnum_clobbers);

    case 245:
      return recog_185 (x1, insn, pnum_clobbers);

    case 132:
      switch (pattern101 (x1, E_CImode, E_EImode))
        {
        case 0:
          if (!
#line 5924 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2484; /* neon_vld3qbv16qi */

        case 1:
          if (!
#line 5924 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2485; /* neon_vld3qbv8hi */

        case 2:
          if (!
#line 5924 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2486; /* neon_vld3qbv8hf */

        case 3:
          if (!
#line 5924 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2487; /* neon_vld3qbv4si */

        case 4:
          if (!
#line 5924 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2488; /* neon_vld3qbv4sf */

        default:
          return -1;
        }

    case 249:
      return recog_182 (x1, insn, pnum_clobbers);

    case 137:
      switch (pattern101 (x1, E_XImode, E_OImode))
        {
        case 0:
          if (!
#line 6243 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2540; /* neon_vld4qbv16qi */

        case 1:
          if (!
#line 6243 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2541; /* neon_vld4qbv8hi */

        case 2:
          if (!
#line 6243 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2542; /* neon_vld4qbv8hf */

        case 3:
          if (!
#line 6243 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2543; /* neon_vld4qbv4si */

        case 4:
          if (!
#line 6243 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2544; /* neon_vld4qbv4sf */

        default:
          return -1;
        }

    case 253:
      return recog_184 (x1, insn, pnum_clobbers);

    case 67:
      if (pattern102 (x1) != 0
          || !
#line 60 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/crypto.md"
(TARGET_CRYPTO))
        return -1;
      return 2647; /* crypto_sha1su0 */

    case 69:
      if (pattern102 (x1) != 0
          || !
#line 60 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/crypto.md"
(TARGET_CRYPTO))
        return -1;
      return 2648; /* crypto_sha256h */

    case 70:
      if (pattern102 (x1) != 0
          || !
#line 60 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/crypto.md"
(TARGET_CRYPTO))
        return -1;
      return 2649; /* crypto_sha256h2 */

    case 72:
      if (pattern102 (x1) != 0
          || !
#line 60 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/crypto.md"
(TARGET_CRYPTO))
        return -1;
      return 2650; /* crypto_sha256su1 */

    case 63:
      if (pattern103 (x1) != 0
          || !
#line 96 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/crypto.md"
(TARGET_CRYPTO))
        return -1;
      return 2653; /* crypto_sha1c */

    case 64:
      if (pattern103 (x1) != 0
          || !
#line 96 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/crypto.md"
(TARGET_CRYPTO))
        return -1;
      return 2654; /* crypto_sha1m */

    case 65:
      if (pattern103 (x1) != 0
          || !
#line 96 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/crypto.md"
(TARGET_CRYPTO))
        return -1;
      return 2655; /* crypto_sha1p */

    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;
  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 745 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 486; /* iwmmxt_textrmsb */
          break;

        case E_HImode:
          if (register_operand (operands[1], E_V4HImode)
              && 
#line 767 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 488; /* iwmmxt_textrmsh */
          break;

        default:
          break;
        }
    }
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  switch (pattern299 (x3))
    {
    case 0:
      if (!
#line 3722 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1893; /* neon_vget_lanev8qi_sext_internal */

    case 1:
      if (!
#line 3760 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1901; /* neon_vget_lanev16qi_sext_internal */

    case 2:
      if (!
#line 3722 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1894; /* neon_vget_lanev4hi_sext_internal */

    case 3:
      if (!
#line 3760 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1902; /* neon_vget_lanev8hi_sext_internal */

    case 4:
      if (!
#line 3722 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1895; /* neon_vget_lanev2si_sext_internal */

    case 5:
      if (!
#line 3760 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1904; /* neon_vget_lanev4si_sext_internal */

    case 6:
      if (!
#line 3722 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1896; /* neon_vget_lanev2sf_sext_internal */

    case 7:
      if (!
#line 3760 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1905; /* neon_vget_lanev4sf_sext_internal */

    case 8:
      if (!
#line 3760 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1903; /* neon_vget_lanev8hf_sext_internal */

    default:
      return -1;
    }
}

static int
recog_190 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  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 734 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 485; /* iwmmxt_textrmub */
          break;

        case E_HImode:
          if (register_operand (operands[1], E_V4HImode)
              && 
#line 756 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 487; /* iwmmxt_textrmuh */
          break;

        default:
          break;
        }
    }
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  switch (pattern299 (x3))
    {
    case 0:
      if (!
#line 3741 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1897; /* neon_vget_lanev8qi_zext_internal */

    case 1:
      if (!
#line 3787 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1906; /* neon_vget_lanev16qi_zext_internal */

    case 2:
      if (!
#line 3741 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1898; /* neon_vget_lanev4hi_zext_internal */

    case 3:
      if (!
#line 3787 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1907; /* neon_vget_lanev8hi_zext_internal */

    case 4:
      if (!
#line 3741 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1899; /* neon_vget_lanev2si_zext_internal */

    case 5:
      if (!
#line 3787 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1909; /* neon_vget_lanev4si_zext_internal */

    case 6:
      if (!
#line 3741 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1900; /* neon_vget_lanev2sf_zext_internal */

    case 7:
      if (!
#line 3787 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1910; /* neon_vget_lanev4sf_zext_internal */

    case 8:
      if (!
#line 3787 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1908; /* neon_vget_lanev8hf_zext_internal */

    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];
  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 2948 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(arm_arch_thumb2))
        return -1;
      return 93; /* 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 7134 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && TARGET_SOFT_FLOAT
   && (   register_operand (operands[0], DFmode)
       || register_operand (operands[1], DFmode))))
        return -1;
      return 194; /* *movdf_soft_insn */

    case PC:
      x6 = XEXP (x1, 1);
      operands[0] = x6;
      if (s_register_operand (operands[0], E_SImode)
          && 
#line 9008 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
        return 237; /* *arm_indirect_jump */
      if (memory_operand (operands[0], E_SImode)
          && 
#line 9017 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
        return 238; /* *load_indirect_jump */
      if (!register_operand (operands[0], E_SImode))
        return -1;
      if (
#line 1876 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return 869; /* *thumb1_indirect_jump */
      if (!
#line 604 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return -1;
      return 900; /* *thumb2_indirect_jump */

    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];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (XVECLEN (x2, 0))
    {
    case 8:
      if (pattern153 (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 583 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 475; /* iwmmxt_clrv8qi */

    case 4:
      if (pattern153 (x2, E_V4HImode) != 0
          || !s_register_operand (operands[0], E_V4HImode)
          || !
#line 593 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 476; /* 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 602 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 477; /* iwmmxt_clrv2si */

    default:
      return -1;
    }
}

static int
recog_193 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, 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 1665 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
    return 575; /* iwmmxt_walignr */
  if (GET_CODE (x13) != REG
      || GET_MODE (x13) != E_SImode)
    return -1;
  switch (REGNO (x13))
    {
    case 96:
      if (!
#line 1680 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 576; /* iwmmxt_walignr0 */

    case 97:
      if (!
#line 1695 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 577; /* iwmmxt_walignr1 */

    case 98:
      if (!
#line 1710 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 578; /* iwmmxt_walignr2 */

    case 99:
      if (!
#line 1725 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 579; /* iwmmxt_walignr3 */

    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];
  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_DImode:
          if (pnum_clobbers == NULL
              || GET_MODE (x3) != E_DImode)
            return -1;
          if (s_register_operand (operands[0], E_DImode)
              && s_register_operand (operands[1], E_DImode)
              && 
#line 4698 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            {
              *pnum_clobbers = 1;
              return 147; /* *negdi2_insn */
            }
          if (register_operand (operands[0], E_DImode)
              && register_operand (operands[1], E_DImode)
              && 
#line 315 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            {
              *pnum_clobbers = 1;
              return 824; /* *thumb1_negdi2 */
            }
          if (!s_register_operand (operands[0], E_DImode)
              || !s_register_operand (operands[1], E_DImode)
              || !
#line 948 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          *pnum_clobbers = 2;
          return 1183; /* negdi2_neon */

        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 4742 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return 149; /* *arm_negsi2 */
          if (register_operand (operands[0], E_SImode)
              && register_operand (operands[1], E_SImode)
              && 
#line 324 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return 825; /* *thumb1_negsi2 */
          if (pnum_clobbers == NULL
              || !low_register_operand (operands[0], E_SImode)
              || !low_register_operand (operands[1], E_SImode)
              || !
#line 1474 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
            return -1;
          *pnum_clobbers = 1;
          return 933; /* *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 851 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
            return -1;
          return 670; /* *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 862 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
            return -1;
          return 671; /* *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 910 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 673; /* neghf2 */

        case E_V8QImode:
          if (!s_register_operand (operands[0], E_V8QImode)
              || GET_MODE (x3) != E_V8QImode
              || !s_register_operand (operands[1], E_V8QImode)
              || !
#line 935 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1175; /* negv8qi2 */

        case E_V16QImode:
          if (!s_register_operand (operands[0], E_V16QImode)
              || GET_MODE (x3) != E_V16QImode
              || !s_register_operand (operands[1], E_V16QImode)
              || !
#line 935 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1176; /* negv16qi2 */

        case E_V4HImode:
          if (!s_register_operand (operands[0], E_V4HImode)
              || GET_MODE (x3) != E_V4HImode
              || !s_register_operand (operands[1], E_V4HImode)
              || !
#line 935 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1177; /* negv4hi2 */

        case E_V8HImode:
          if (!s_register_operand (operands[0], E_V8HImode)
              || GET_MODE (x3) != E_V8HImode
              || !s_register_operand (operands[1], E_V8HImode)
              || !
#line 935 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1178; /* negv8hi2 */

        case E_V2SImode:
          if (!s_register_operand (operands[0], E_V2SImode)
              || GET_MODE (x3) != E_V2SImode
              || !s_register_operand (operands[1], E_V2SImode)
              || !
#line 935 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1179; /* negv2si2 */

        case E_V4SImode:
          if (!s_register_operand (operands[0], E_V4SImode)
              || GET_MODE (x3) != E_V4SImode
              || !s_register_operand (operands[1], E_V4SImode)
              || !
#line 935 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1180; /* negv4si2 */

        case E_V2SFmode:
          if (!s_register_operand (operands[0], E_V2SFmode)
              || GET_MODE (x3) != E_V2SFmode
              || !s_register_operand (operands[1], E_V2SFmode)
              || !
#line 935 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1181; /* negv2sf2 */

        case E_V4SFmode:
          if (!s_register_operand (operands[0], E_V4SFmode)
              || GET_MODE (x3) != E_V4SFmode
              || !s_register_operand (operands[1], E_V4SFmode)
              || !
#line 935 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1182; /* negv4sf2 */

        case E_V8HFmode:
          if (!s_register_operand (operands[0], E_V8HFmode)
              || GET_MODE (x3) != E_V8HFmode
              || !s_register_operand (operands[1], E_V8HFmode)
              || !
#line 986 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1185; /* negv8hf2 */

        case E_V4HFmode:
          if (!s_register_operand (operands[0], E_V4HFmode)
              || GET_MODE (x3) != E_V4HFmode
              || !s_register_operand (operands[1], E_V4HFmode)
              || !
#line 986 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1187; /* negv4hf2 */

        default:
          return -1;
        }

    case SIGN_EXTEND:
      if (pnum_clobbers == NULL
          || pattern143 (x3, E_DImode) != 0
          || !
#line 4788 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      *pnum_clobbers = 1;
      return 151; /* *negdi_extendsidi */

    case ZERO_EXTEND:
      if (pnum_clobbers == NULL
          || pattern143 (x3, E_DImode) != 0
          || !
#line 4858 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      *pnum_clobbers = 1;
      return 152; /* *negdi_zero_extendsidi */

    case ABS:
      if (pnum_clobbers == NULL
          || pattern143 (x3, E_SImode) != 0)
        return -1;
      if (
#line 4963 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
        {
          *pnum_clobbers = 1;
          return 154; /* *arm_neg_abssi2 */
        }
      if (
#line 349 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        {
          *pnum_clobbers = 1;
          return 827; /* *thumb1_neg_abssi2 */
        }
      if (!
#line 184 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return -1;
      *pnum_clobbers = 1;
      return 882; /* *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:
      operands[1] = x4;
      if (arm_comparison_operator_mode (operands[1], E_SImode))
        {
          x5 = XEXP (x4, 1);
          if (x5 == const_int_rtx[MAX_SAVED_CONST_INT + 0]
              && s_register_operand (operands[0], E_SImode)
              && GET_MODE (x3) == E_SImode)
            {
              x6 = XEXP (x4, 0);
              operands[2] = x6;
              if (cc_register (operands[2], E_VOIDmode)
                  && 
#line 7641 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
                return 206; /* *mov_negscc */
            }
        }
      if (pnum_clobbers != NULL
          && pattern144 (x3) == 0
          && 
#line 10067 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
        {
          *pnum_clobbers = 1;
          return 271; /* *negscc */
        }
      switch (GET_CODE (x4))
        {
        case LTU:
          if (pattern143 (x3, E_SImode) == 0)
            {
              x5 = XEXP (x4, 1);
              operands[2] = x5;
              if (thumb1_cmp_operand (operands[2], E_SImode)
                  && 
#line 1665 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                return 856; /* cstoresi_nltu_thumb1 */
            }
          break;

        case EQ:
          switch (pattern146 (x3))
            {
            case 0:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V8QImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1542; /* neon_vceqv8qi_insn */
              break;

            case 1:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V16QImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1547; /* neon_vceqv16qi_insn */
              break;

            case 2:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4HImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1552; /* neon_vceqv4hi_insn */
              break;

            case 3:
              if (
#line 3044 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST
  && !(GET_MODE_CLASS (V4HFmode) == MODE_VECTOR_FLOAT
  && !flag_unsafe_math_optimizations)))
                return 1597; /* neon_vceqv4hf_fp16insn */
              break;

            case 4:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V8HImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1557; /* neon_vceqv8hi_insn */
              break;

            case 5:
              if (
#line 3044 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST
  && !(GET_MODE_CLASS (V8HFmode) == MODE_VECTOR_FLOAT
  && !flag_unsafe_math_optimizations)))
                return 1592; /* neon_vceqv8hf_fp16insn */
              break;

            case 6:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V2SImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1562; /* neon_vceqv2si_insn */
              break;

            case 7:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V2SFmode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1572; /* neon_vceqv2sf_insn */
              break;

            case 8:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4SImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1567; /* neon_vceqv4si_insn */
              break;

            case 9:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4SFmode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1577; /* neon_vceqv4sf_insn */
              break;

            default:
              break;
            }
          break;

        case GT:
          switch (pattern148 (x3))
            {
            case 0:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V8QImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1543; /* neon_vcgtv8qi_insn */
              break;

            case 1:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V16QImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1548; /* neon_vcgtv16qi_insn */
              break;

            case 2:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4HImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1553; /* neon_vcgtv4hi_insn */
              break;

            case 3:
              if (
#line 3044 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST
  && !(GET_MODE_CLASS (V4HFmode) == MODE_VECTOR_FLOAT
  && !flag_unsafe_math_optimizations)))
                return 1598; /* neon_vcgtv4hf_fp16insn */
              break;

            case 4:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V8HImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1558; /* neon_vcgtv8hi_insn */
              break;

            case 5:
              if (
#line 3044 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST
  && !(GET_MODE_CLASS (V8HFmode) == MODE_VECTOR_FLOAT
  && !flag_unsafe_math_optimizations)))
                return 1593; /* neon_vcgtv8hf_fp16insn */
              break;

            case 6:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V2SImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1563; /* neon_vcgtv2si_insn */
              break;

            case 7:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V2SFmode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1573; /* neon_vcgtv2sf_insn */
              break;

            case 8:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4SImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1568; /* neon_vcgtv4si_insn */
              break;

            case 9:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4SFmode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1578; /* neon_vcgtv4sf_insn */
              break;

            case 10:
              if (
#line 3118 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && flag_unsafe_math_optimizations))
                return 1624; /* neon_vcagtv2sf_insn */
              break;

            case 11:
              if (
#line 3118 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && flag_unsafe_math_optimizations))
                return 1626; /* neon_vcagtv4sf_insn */
              break;

            case 12:
              if (
#line 3158 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST && flag_unsafe_math_optimizations))
                return 1632; /* neon_vcagtv8hf_fp16insn */
              break;

            case 13:
              if (
#line 3158 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST && flag_unsafe_math_optimizations))
                return 1636; /* neon_vcagtv4hf_fp16insn */
              break;

            default:
              break;
            }
          break;

        case GE:
          switch (pattern148 (x3))
            {
            case 0:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V8QImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1544; /* neon_vcgev8qi_insn */
              break;

            case 1:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V16QImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1549; /* neon_vcgev16qi_insn */
              break;

            case 2:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4HImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1554; /* neon_vcgev4hi_insn */
              break;

            case 3:
              if (
#line 3044 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST
  && !(GET_MODE_CLASS (V4HFmode) == MODE_VECTOR_FLOAT
  && !flag_unsafe_math_optimizations)))
                return 1599; /* neon_vcgev4hf_fp16insn */
              break;

            case 4:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V8HImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1559; /* neon_vcgev8hi_insn */
              break;

            case 5:
              if (
#line 3044 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST
  && !(GET_MODE_CLASS (V8HFmode) == MODE_VECTOR_FLOAT
  && !flag_unsafe_math_optimizations)))
                return 1594; /* neon_vcgev8hf_fp16insn */
              break;

            case 6:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V2SImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1564; /* neon_vcgev2si_insn */
              break;

            case 7:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V2SFmode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1574; /* neon_vcgev2sf_insn */
              break;

            case 8:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4SImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1569; /* neon_vcgev4si_insn */
              break;

            case 9:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4SFmode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1579; /* neon_vcgev4sf_insn */
              break;

            case 10:
              if (
#line 3118 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && flag_unsafe_math_optimizations))
                return 1625; /* neon_vcagev2sf_insn */
              break;

            case 11:
              if (
#line 3118 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && flag_unsafe_math_optimizations))
                return 1627; /* neon_vcagev4sf_insn */
              break;

            case 12:
              if (
#line 3158 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST && flag_unsafe_math_optimizations))
                return 1633; /* neon_vcagev8hf_fp16insn */
              break;

            case 13:
              if (
#line 3158 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST && flag_unsafe_math_optimizations))
                return 1637; /* neon_vcagev4hf_fp16insn */
              break;

            default:
              break;
            }
          break;

        case LE:
          switch (pattern149 (x3))
            {
            case 0:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V8QImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1545; /* neon_vclev8qi_insn */
              break;

            case 1:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V16QImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1550; /* neon_vclev16qi_insn */
              break;

            case 2:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4HImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1555; /* neon_vclev4hi_insn */
              break;

            case 3:
              if (
#line 3044 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST
  && !(GET_MODE_CLASS (V4HFmode) == MODE_VECTOR_FLOAT
  && !flag_unsafe_math_optimizations)))
                return 1600; /* neon_vclev4hf_fp16insn */
              break;

            case 4:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V8HImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1560; /* neon_vclev8hi_insn */
              break;

            case 5:
              if (
#line 3044 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST
  && !(GET_MODE_CLASS (V8HFmode) == MODE_VECTOR_FLOAT
  && !flag_unsafe_math_optimizations)))
                return 1595; /* neon_vclev8hf_fp16insn */
              break;

            case 6:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V2SImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1565; /* neon_vclev2si_insn */
              break;

            case 7:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V2SFmode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1575; /* neon_vclev2sf_insn */
              break;

            case 8:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4SImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1570; /* neon_vclev4si_insn */
              break;

            case 9:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4SFmode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1580; /* neon_vclev4sf_insn */
              break;

            case 10:
              if (
#line 3158 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST && flag_unsafe_math_optimizations))
                return 1635; /* neon_vcalev8hf_fp16insn */
              break;

            case 11:
              if (
#line 3158 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST && flag_unsafe_math_optimizations))
                return 1639; /* neon_vcalev4hf_fp16insn */
              break;

            default:
              break;
            }
          break;

        case LT:
          switch (pattern149 (x3))
            {
            case 0:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V8QImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1546; /* neon_vcltv8qi_insn */
              break;

            case 1:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V16QImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1551; /* neon_vcltv16qi_insn */
              break;

            case 2:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4HImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1556; /* neon_vcltv4hi_insn */
              break;

            case 3:
              if (
#line 3044 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST
  && !(GET_MODE_CLASS (V4HFmode) == MODE_VECTOR_FLOAT
  && !flag_unsafe_math_optimizations)))
                return 1601; /* neon_vcltv4hf_fp16insn */
              break;

            case 4:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V8HImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1561; /* neon_vcltv8hi_insn */
              break;

            case 5:
              if (
#line 3044 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST
  && !(GET_MODE_CLASS (V8HFmode) == MODE_VECTOR_FLOAT
  && !flag_unsafe_math_optimizations)))
                return 1596; /* neon_vcltv8hf_fp16insn */
              break;

            case 6:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V2SImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1566; /* neon_vcltv2si_insn */
              break;

            case 7:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V2SFmode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1576; /* neon_vcltv2sf_insn */
              break;

            case 8:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4SImode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1571; /* neon_vcltv4si_insn */
              break;

            case 9:
              if (
#line 2978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !(GET_MODE_CLASS (V4SFmode) == MODE_VECTOR_FLOAT
                    && !flag_unsafe_math_optimizations)))
                return 1581; /* neon_vcltv4sf_insn */
              break;

            case 10:
              if (
#line 3158 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST && flag_unsafe_math_optimizations))
                return 1634; /* neon_vcaltv8hf_fp16insn */
              break;

            case 11:
              if (
#line 3158 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST && flag_unsafe_math_optimizations))
                return 1638; /* neon_vcaltv4hf_fp16insn */
              break;

            default:
              break;
            }
          break;

        case GTU:
          switch (pattern151 (x3))
            {
            case 0:
              if (
#line 3088 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1612; /* neon_vcgtuv8qi */
              break;

            case 1:
              if (
#line 3088 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1614; /* neon_vcgtuv16qi */
              break;

            case 2:
              if (
#line 3088 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1616; /* neon_vcgtuv4hi */
              break;

            case 3:
              if (
#line 3088 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1618; /* neon_vcgtuv8hi */
              break;

            case 4:
              if (
#line 3088 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1620; /* neon_vcgtuv2si */
              break;

            case 5:
              if (
#line 3088 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1622; /* neon_vcgtuv4si */
              break;

            default:
              break;
            }
          break;

        case GEU:
          switch (pattern151 (x3))
            {
            case 0:
              if (
#line 3088 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1613; /* neon_vcgeuv8qi */
              break;

            case 1:
              if (
#line 3088 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1615; /* neon_vcgeuv16qi */
              break;

            case 2:
              if (
#line 3088 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1617; /* neon_vcgeuv4hi */
              break;

            case 3:
              if (
#line 3088 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1619; /* neon_vcgeuv8hi */
              break;

            case 4:
              if (
#line 3088 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1621; /* neon_vcgeuv2si */
              break;

            case 5:
              if (
#line 3088 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return 1623; /* neon_vcgeuv4si */
              break;

            default:
              break;
            }
          break;

        default:
          break;
        }
      operands[1] = x4;
      if (pattern152 (x3) == 0)
        {
          if (s_register_operand (operands[0], E_SImode)
              && 
#line 373 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !arm_restrict_it))
            return 890; /* *thumb2_mov_negscc */
          if (low_register_operand (operands[0], E_SImode)
              && 
#line 392 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_restrict_it))
            return 891; /* *thumb2_mov_negscc_strict_it */
        }
      if (pnum_clobbers == NULL
          || pattern144 (x3) != 0
          || !
#line 895 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return -1;
      *pnum_clobbers = 1;
      return 908; /* *thumb2_negscc */

    case MULT:
      x6 = XEXP (x4, 0);
      operands[1] = x6;
      x5 = XEXP (x4, 1);
      operands[2] = x5;
      switch (GET_MODE (operands[0]))
        {
        case E_HFmode:
          if (pattern150 (x3, E_HFmode) != 0
              || !
#line 1104 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 694; /* *negmulhf3_vfp */

        case E_SFmode:
          if (pattern150 (x3, E_SFmode) != 0
              || !
#line 1124 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
            return -1;
          return 696; /* *negmulsf3_vfp */

        case E_DFmode:
          if (pattern150 (x3, E_DFmode) != 0
              || !
#line 1145 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
            return -1;
          return 698; /* *negmuldf3_vfp */

        default:
          return -1;
        }

    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];
  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 2936 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(arm_arch_thumb2))
                        return 92; /* 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 11722 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_HAVE_MOVT))
                        return 330; /* *arm_movtas_ze */
                    }
                }
            }
        }
      break;

    case CONST_DOUBLE:
    case REG:
    case SUBREG:
    case MEM:
      res = recog_191 (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 8113 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return 213; /* *arm_jump */
          if (
#line 1703 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return 859; /* *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 5873 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && !(TARGET_HARD_FLOAT)
   && !TARGET_IWMMXT
   && (   register_operand (operands[0], DImode)
       || register_operand (operands[1], DImode))))
        return 179; /* *arm_movdi */
      break;

    case E_SImode:
      if (nonimmediate_operand (operands[0], E_SImode)
          && general_operand (operands[1], E_SImode)
          && 
#line 6082 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && !TARGET_IWMMXT && !TARGET_HARD_FLOAT
   && (   register_operand (operands[0], SImode)
       || register_operand (operands[1], SImode))))
        return 181; /* *arm_movsi_insn */
      break;

    case E_HImode:
      if (nonimmediate_operand (operands[0], E_HImode)
          && general_operand (operands[1], E_HImode)
          && 
#line 6730 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM
   && arm_arch4 && !TARGET_HARD_FLOAT
   && (register_operand (operands[0], HImode)
       || register_operand (operands[1], HImode))))
        return 189; /* *movhi_insn_arch4 */
      if (s_register_operand (operands[0], E_HImode)
          && arm_rhs_operand (operands[1], E_HImode)
          && 
#line 6757 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && !TARGET_HARD_FLOAT))
        return 190; /* *movhi_bytes */
      break;

    case E_QImode:
      if (nonimmediate_operand (operands[0], E_QImode)
          && general_operand (operands[1], E_QImode)
          && 
#line 6872 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (   register_operand (operands[0], QImode)
       || register_operand (operands[1], QImode))))
        return 191; /* *arm_movqi_insn */
      break;

    case E_HFmode:
      if (nonimmediate_operand (operands[0], E_HFmode)
          && general_operand (operands[1], E_HFmode)
          && 
#line 6917 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && !TARGET_HARD_FLOAT
   && (	  s_register_operand (operands[0], HFmode)
       || s_register_operand (operands[1], HFmode))))
        return 192; /* *arm32_movhf */
      break;

    case E_SFmode:
      if (nonimmediate_operand (operands[0], E_SFmode)
          && general_operand (operands[1], E_SFmode)
          && 
#line 7012 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && TARGET_SOFT_FLOAT
   && (!MEM_P (operands[0])
       || register_operand (operands[1], SFmode))))
        return 193; /* *arm_movsf_soft_insn */
      break;

    default:
      break;
    }
  operands[0] = x3;
  if (cc_register (operands[0], E_VOIDmode)
      && rtx_equal_p (x2, operands[0])
      && 
#line 7528 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
    return 202; /* *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 112 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT
   && (   register_operand (operands[0], DImode)
       || register_operand (operands[1], DImode))))
            return 434; /* *iwmmxt_arm_movdi */
          if (
#line 312 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT
   && (   register_operand (operands[0], DImode)
       || register_operand (operands[1], DImode))
   && !(TARGET_NEON && CONST_INT_P (operands[1])
        && neon_immediate_valid_for_move (operands[1], DImode, NULL, NULL))))
            return 656; /* *movdi_vfp */
        }
      break;

    case E_V2SImode:
      if (nonimmediate_operand (operands[0], E_V2SImode)
          && general_operand (operands[1], E_V2SImode)
          && 
#line 238 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 437; /* movv2si_internal */
      break;

    case E_V4HImode:
      if (nonimmediate_operand (operands[0], E_V4HImode)
          && general_operand (operands[1], E_V4HImode)
          && 
#line 238 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 438; /* movv4hi_internal */
      break;

    case E_V8QImode:
      if (nonimmediate_operand (operands[0], E_V8QImode)
          && general_operand (operands[1], E_V8QImode)
          && 
#line 238 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 439; /* 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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_ARM && TARGET_HARD_FLOAT
  && !TARGET_VFP_FP16INST
  && (register_operand (operands[0], HImode)
       || register_operand (operands[1], HImode))))
            return 650; /* *arm_movhi_vfp */
          if (
#line 80 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && TARGET_HARD_FLOAT
  && !TARGET_VFP_FP16INST
  && (register_operand (operands[0], HImode)
       || register_operand (operands[1], HImode))))
            return 651; /* *thumb2_movhi_vfp */
          if (
#line 126 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_ARM && TARGET_VFP_FP16INST
  && (register_operand (operands[0], HImode)
       || register_operand (operands[1], HImode))))
            return 652; /* *arm_movhi_fp16 */
          if (
#line 176 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && TARGET_VFP_FP16INST
  && (register_operand (operands[0], HImode)
       || register_operand (operands[1], HImode))))
            return 653; /* *thumb2_movhi_fp16 */
        }
      break;

    case E_HFmode:
      if (nonimmediate_operand (operands[0], E_HFmode)
          && general_operand (operands[1], E_HFmode))
        {
          if (
#line 375 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT
   && TARGET_VFP_FP16INST
   && (s_register_operand (operands[0], HFmode)
       || s_register_operand (operands[1], HFmode))))
            return 657; /* *movhf_vfp_fp16 */
          if (
#line 450 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 658; /* *movhf_vfp_neon */
          if (
#line 506 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 659; /* *movhf_vfp */
        }
      break;

    case E_SFmode:
      if (nonimmediate_operand (operands[0], E_SFmode))
        {
          if (general_operand (operands[1], E_SFmode)
              && 
#line 562 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_ARM && TARGET_HARD_FLOAT
   && (   s_register_operand (operands[0], SFmode)
       || s_register_operand (operands[1], SFmode))))
            return 660; /* *movsf_vfp */
          if (hard_sf_operand (operands[1], E_SFmode)
              && 
#line 598 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && TARGET_HARD_FLOAT
   && (   s_register_operand (operands[0], SFmode)
       || s_register_operand (operands[1], SFmode))))
            return 661; /* *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 636 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_ARM && TARGET_HARD_FLOAT
   && (   register_operand (operands[0], DFmode)
       || register_operand (operands[1], DFmode))))
            return 662; /* *movdf_vfp */
          if (hard_df_operand (operands[1], E_DFmode)
              && 
#line 687 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && TARGET_HARD_FLOAT
   && (   register_operand (operands[0], DFmode)
       || register_operand (operands[1], DFmode))))
            return 663; /* *thumb2_movdf_vfp */
        }
      break;

    default:
      break;
    }
  switch (GET_CODE (x2))
    {
    case MEM:
      if (pattern107 (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 6296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
                return 187; /* tls_load_dot_plus_eight */
            }
        }
      break;

    case CONST_VECTOR:
      res = recog_192 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    case SUBREG:
      res = recog_193 (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 167 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT
   && (   register_operand (operands[0], SImode)
       || register_operand (operands[1], SImode))))
            return 435; /* *iwmmxt_movsi_insn */
          if (
#line 220 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_ARM && TARGET_HARD_FLOAT
   && (   s_register_operand (operands[0], SImode)
       || s_register_operand (operands[1], SImode))))
            return 654; /* *arm_movsi_vfp */
          if (
#line 263 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && TARGET_HARD_FLOAT
   && (   s_register_operand (operands[0], SImode)
       || s_register_operand (operands[1], SImode))))
            return 655; /* *thumb2_movsi_vfp */
        }
    }
  if (GET_CODE (x2) == REG
      && REGNO (x2) == 101
      && GET_CODE (x3) == REG
      && REGNO (x3) == 100
      && 
#line 1598 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
    return 741; /* *movcc_vfp */
  operands[1] = x2;
  operands[0] = x3;
  switch (GET_MODE (operands[0]))
    {
    case E_DImode:
      if (nonimmediate_operand (operands[0], E_DImode)
          && general_operand (operands[1], E_DImode))
        {
          if (
#line 615 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1
   && (   register_operand (operands[0], DImode)
       || register_operand (operands[1], DImode))))
            return 834; /* *thumb1_movdi_insn */
          if (
#line 31 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], DImode)
       || register_operand (operands[1], DImode))))
            return 945; /* *neon_movdi */
        }
      break;

    case E_SImode:
      if (nonimmediate_operand (operands[0], E_SImode)
          && general_operand (operands[1], E_SImode)
          && 
#line 661 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1
   && (   register_operand (operands[0], SImode)
       || register_operand (operands[1], SImode))))
        return 835; /* *thumb1_movsi_insn */
      break;

    case E_HImode:
      if (nonimmediate_operand (operands[0], E_HImode)
          && general_operand (operands[1], E_HImode))
        {
          if (
#line 759 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1
   && (   register_operand (operands[0], HImode)
       || register_operand (operands[1], HImode))))
            return 836; /* *thumb1_movhi_insn */
          if (
#line 305 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2
  && (register_operand (operands[0], HImode)
     || register_operand (operands[1], HImode))))
            return 886; /* *thumb2_movhi_insn */
        }
      if (pnum_clobbers != NULL
          && low_register_operand (operands[0], E_HImode)
          && const_int_operand (operands[1], E_HImode)
          && 
#line 1240 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
        {
          *pnum_clobbers = 1;
          return 921; /* *thumb2_movhi_shortim */
        }
      break;

    case E_QImode:
      if (nonimmediate_operand (operands[0], E_QImode)
          && general_operand (operands[1], E_QImode)
          && 
#line 816 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1
   && (   register_operand (operands[0], QImode)
       || register_operand (operands[1], QImode))))
        return 837; /* *thumb1_movqi_insn */
      if (pnum_clobbers != NULL
          && low_register_operand (operands[0], E_QImode)
          && const_int_operand (operands[1], E_QImode)
          && 
#line 1240 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
        {
          *pnum_clobbers = 1;
          return 920; /* *thumb2_movqi_shortim */
        }
      break;

    case E_HFmode:
      if (nonimmediate_operand (operands[0], E_HFmode)
          && general_operand (operands[1], E_HFmode)
          && 
#line 834 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1
   && (	  s_register_operand (operands[0], HFmode)
       || s_register_operand (operands[1], HFmode))))
        return 838; /* *thumb1_movhf */
      break;

    case E_SFmode:
      if (nonimmediate_operand (operands[0], E_SFmode)
          && general_operand (operands[1], E_SFmode)
          && 
#line 870 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1
   && (   register_operand (operands[0], SFmode)
       || register_operand (operands[1], SFmode))))
        return 839; /* *thumb1_movsf_insn */
      break;

    case E_DFmode:
      if (nonimmediate_operand (operands[0], E_DFmode)
          && general_operand (operands[1], E_DFmode)
          && 
#line 894 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1
   && (   register_operand (operands[0], DFmode)
       || register_operand (operands[1], DFmode))))
        return 840; /* *thumb_movdf_insn */
      break;

    case E_V8QImode:
      if (nonimmediate_operand (operands[0], E_V8QImode)
          && general_operand (operands[1], E_V8QImode)
          && 
#line 31 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], V8QImode)
       || register_operand (operands[1], V8QImode))))
        return 940; /* *neon_movv8qi */
      break;

    case E_V4HImode:
      if (nonimmediate_operand (operands[0], E_V4HImode)
          && general_operand (operands[1], E_V4HImode)
          && 
#line 31 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], V4HImode)
       || register_operand (operands[1], V4HImode))))
        return 941; /* *neon_movv4hi */
      break;

    case E_V4HFmode:
      if (nonimmediate_operand (operands[0], E_V4HFmode)
          && general_operand (operands[1], E_V4HFmode)
          && 
#line 31 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], V4HFmode)
       || register_operand (operands[1], V4HFmode))))
        return 942; /* *neon_movv4hf */
      break;

    case E_V2SImode:
      if (nonimmediate_operand (operands[0], E_V2SImode)
          && general_operand (operands[1], E_V2SImode)
          && 
#line 31 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], V2SImode)
       || register_operand (operands[1], V2SImode))))
        return 943; /* *neon_movv2si */
      break;

    case E_V2SFmode:
      if (nonimmediate_operand (operands[0], E_V2SFmode)
          && general_operand (operands[1], E_V2SFmode)
          && 
#line 31 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], V2SFmode)
       || register_operand (operands[1], V2SFmode))))
        return 944; /* *neon_movv2sf */
      break;

    case E_V16QImode:
      if (nonimmediate_operand (operands[0], E_V16QImode)
          && general_operand (operands[1], E_V16QImode)
          && 
#line 78 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], V16QImode)
       || register_operand (operands[1], V16QImode))))
        return 946; /* *neon_movv16qi */
      break;

    case E_V8HImode:
      if (nonimmediate_operand (operands[0], E_V8HImode)
          && general_operand (operands[1], E_V8HImode)
          && 
#line 78 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], V8HImode)
       || register_operand (operands[1], V8HImode))))
        return 947; /* *neon_movv8hi */
      break;

    case E_V8HFmode:
      if (nonimmediate_operand (operands[0], E_V8HFmode)
          && general_operand (operands[1], E_V8HFmode)
          && 
#line 78 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], V8HFmode)
       || register_operand (operands[1], V8HFmode))))
        return 948; /* *neon_movv8hf */
      break;

    case E_V4SImode:
      if (nonimmediate_operand (operands[0], E_V4SImode)
          && general_operand (operands[1], E_V4SImode)
          && 
#line 78 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], V4SImode)
       || register_operand (operands[1], V4SImode))))
        return 949; /* *neon_movv4si */
      break;

    case E_V4SFmode:
      if (nonimmediate_operand (operands[0], E_V4SFmode)
          && general_operand (operands[1], E_V4SFmode)
          && 
#line 78 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], V4SFmode)
       || register_operand (operands[1], V4SFmode))))
        return 950; /* *neon_movv4sf */
      break;

    case E_V2DImode:
      if (nonimmediate_operand (operands[0], E_V2DImode)
          && general_operand (operands[1], E_V2DImode)
          && 
#line 78 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], V2DImode)
       || register_operand (operands[1], V2DImode))))
        return 951; /* *neon_movv2di */
      break;

    case E_TImode:
      if (nonimmediate_operand (operands[0], E_TImode)
          && general_operand (operands[1], E_TImode)
          && 
#line 78 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], TImode)
       || register_operand (operands[1], TImode))))
        return 952; /* *neon_movti */
      break;

    case E_EImode:
      if (nonimmediate_operand (operands[0], E_EImode)
          && general_operand (operands[1], E_EImode)
          && 
#line 164 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], EImode)
       || register_operand (operands[1], EImode))))
        return 953; /* *neon_movei */
      break;

    case E_OImode:
      if (nonimmediate_operand (operands[0], E_OImode)
          && general_operand (operands[1], E_OImode)
          && 
#line 164 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], OImode)
       || register_operand (operands[1], OImode))))
        return 954; /* *neon_movoi */
      break;

    case E_CImode:
      if (nonimmediate_operand (operands[0], E_CImode)
          && general_operand (operands[1], E_CImode)
          && 
#line 164 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], CImode)
       || register_operand (operands[1], CImode))))
        return 955; /* *neon_movci */
      break;

    case E_XImode:
      if (nonimmediate_operand (operands[0], E_XImode)
          && general_operand (operands[1], E_XImode)
          && 
#line 164 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON
   && (register_operand (operands[0], XImode)
       || register_operand (operands[1], XImode))))
        return 956; /* *neon_movxi */
      break;

    default:
      break;
    }
  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 1933 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return 872; /* *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 237 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && (reload_in_progress || reload_completed)))
                return 883; /* *thumb2_pop_single */
            }
          break;

        default:
          break;
        }
    }
  operands[1] = x2;
  if (general_operand (operands[1], E_SImode)
      && nonimmediate_operand (operands[0], E_SImode)
      && 
#line 252 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !TARGET_IWMMXT && !TARGET_HARD_FLOAT
   && (   register_operand (operands[0], SImode)
       || register_operand (operands[1], SImode))))
    return 884; /* *thumb2_movsi_insn */
  if (pnum_clobbers != NULL
      && const_int_operand (operands[1], E_SImode)
      && low_register_operand (operands[0], E_SImode)
      && 
#line 1240 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
    {
      *pnum_clobbers = 1;
      return 922; /* *thumb2_movsi_shortim */
    }
  if (pnum_clobbers == NULL
      || !register_operand (operands[0], E_SImode)
      || GET_CODE (x2) != MEM
      || pattern107 (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 290 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
    return -1;
  *pnum_clobbers = 1;
  return 885; /* tls_load_dot_plus_four */
}

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, 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 (pattern204 (x3, SIGN_EXTEND))
                {
                case 0:
                  if (pattern294 (x3, pnum_clobbers) != 0)
                    return -1;
                  if (
#line 1948 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && !arm_arch6))
                    {
                      *pnum_clobbers = 1;
                      return 67; /* *smulsi3_highpart_nov6 */
                    }
                  if (!
#line 1963 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6))
                    return -1;
                  *pnum_clobbers = 1;
                  return 68; /* *smulsi3_highpart_v6 */

                case 1:
                  if (!
#line 503 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                    return -1;
                  return 468; /* smulv4hi3_highpart */

                default:
                  return -1;
                }

            case ZERO_EXTEND:
              switch (pattern204 (x3, ZERO_EXTEND))
                {
                case 0:
                  switch (GET_MODE (operands[0]))
                    {
                    case E_SImode:
                      if (pattern294 (x3, pnum_clobbers) != 0)
                        return -1;
                      if (
#line 1992 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && !arm_arch6))
                        {
                          *pnum_clobbers = 1;
                          return 69; /* *umulsi3_highpart_nov6 */
                        }
                      if (!
#line 2007 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6))
                        return -1;
                      *pnum_clobbers = 1;
                      return 70; /* *umulsi3_highpart_v6 */

                    case E_V2SImode:
                      if (pattern203 (x3, E_V2SImode, E_V2DImode) != 0
                          || !
#line 279 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                        return -1;
                      return 601; /* iwmmxt_wmulwum */

                    default:
                      return -1;
                    }

                case 1:
                  if (!
#line 516 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                    return -1;
                  return 469; /* 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 (pattern358 (x10, 1) != 0
                      || pattern335 (x3, E_V8QImode, E_V8HImode) != 0
                      || !
#line 626 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                    return -1;
                  return 478; /* 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]
                      || pattern335 (x3, E_V4HImode, E_V4SImode) != 0
                      || !
#line 644 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                    return -1;
                  return 479; /* 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 (pattern203 (x3, E_V8QImode, E_V8HImode) != 0
                      || !
#line 657 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                    return -1;
                  return 480; /* iwmmxt_uavgv8qi3 */

                case E_V4HImode:
                  if (pattern203 (x3, E_V4HImode, E_V4SImode) != 0
                      || !
#line 670 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                    return -1;
                  return 481; /* 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 (pattern334 (x10) != 0)
                    return -1;
                  x16 = XVECEXP (x10, 0, 3);
                  if (GET_CODE (x16) != CONST_INT
                      || XWINT (x16, 0) != 32768L
                      || XWINT (x5, 0) != 16L
                      || pattern335 (x3, E_V4HImode, E_V4SImode) != 0
                      || !
#line 316 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                    return -1;
                  return 603; /* iwmmxt_wmulumr */

                case 2:
                  if (pattern336 (x3) != 0
                      || !
#line 350 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                    return -1;
                  return 605; /* 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 (pattern203 (x3, E_V8QImode, E_V8HImode) != 0
              || !
#line 37 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 587; /* iwmmxt_wabsdiffb */

        case E_V4HImode:
          if (pattern203 (x3, E_V4HImode, E_V4SImode) != 0
              || !
#line 50 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 588; /* iwmmxt_wabsdiffh */

        case E_V2SImode:
          if (pattern203 (x3, E_V2SImode, E_V2DImode) != 0
              || !
#line 63 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 589; /* 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
          || pattern358 (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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 594; /* 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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 595; /* 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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 600; /* 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 (pattern334 (x10) != 0
                  || XWINT (x5, 0) != 16L
                  || pattern335 (x3, E_V4HImode, E_V4SImode) != 0
                  || !
#line 297 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 602; /* iwmmxt_wmulsmr */

            case 2:
              if (pattern336 (x3) != 0
                  || !
#line 333 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 604; /* 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 6786 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return -1;
          return 2630; /* 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 6786 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return -1;
          return 2631; /* 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 6786 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return -1;
          return 2632; /* neon_vec_pack_trunc_v2di */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_197 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  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, 1);
  switch (XVECLEN (x2, 0))
    {
    case 1:
      return recog_186 (x1, insn, pnum_clobbers);

    case 2:
      return recog_187 (x1, insn, pnum_clobbers);

    case 3:
      return recog_188 (x1, insn, pnum_clobbers);

    case 5:
      x3 = XVECEXP (x2, 0, 1);
      if (GET_CODE (x3) != ZERO_EXTRACT
          || GET_MODE (x3) != E_V4HImode)
        return -1;
      x4 = XEXP (x3, 1);
      if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
        return -1;
      x5 = XEXP (x3, 2);
      if (GET_CODE (x5) != CONST_INT)
        return -1;
      x6 = XVECEXP (x2, 0, 2);
      if (GET_CODE (x6) != ZERO_EXTRACT
          || GET_MODE (x6) != E_V4HImode)
        return -1;
      x7 = XEXP (x6, 1);
      if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
        return -1;
      x8 = XEXP (x6, 2);
      if (GET_CODE (x8) != CONST_INT)
        return -1;
      x9 = XVECEXP (x2, 0, 3);
      if (GET_CODE (x9) != ZERO_EXTRACT
          || GET_MODE (x9) != E_V4HImode)
        return -1;
      x10 = XEXP (x9, 1);
      if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
        return -1;
      x11 = XEXP (x9, 2);
      if (GET_CODE (x11) != CONST_INT)
        return -1;
      x12 = XVECEXP (x2, 0, 4);
      if (GET_CODE (x12) != ZERO_EXTRACT
          || GET_MODE (x12) != E_V4HImode)
        return -1;
      x13 = XEXP (x12, 1);
      if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
        return -1;
      x14 = XEXP (x12, 2);
      if (GET_CODE (x14) != CONST_INT)
        return -1;
      x15 = XEXP (x1, 0);
      operands[0] = x15;
      if (!register_operand (operands[0], E_V2SImode)
          || GET_MODE (x2) != E_V2SImode)
        return -1;
      x16 = XVECEXP (x2, 0, 0);
      operands[1] = x16;
      if (!register_operand (operands[1], E_V2SImode))
        return -1;
      x17 = XEXP (x3, 0);
      operands[2] = x17;
      if (!register_operand (operands[2], E_V4HImode))
        return -1;
      x18 = XEXP (x9, 0);
      operands[3] = x18;
      if (!register_operand (operands[3], E_V4HImode))
        return -1;
      x19 = XEXP (x6, 0);
      if (!rtx_equal_p (x19, operands[2]))
        return -1;
      x20 = XEXP (x12, 0);
      if (!rtx_equal_p (x20, operands[3]))
        return -1;
      switch (XINT (x2, 1))
        {
        case 46:
          switch (pattern440 (x2))
            {
            case 0:
              if (!
#line 446 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 613; /* iwmmxt_wqmiabb */

            case 1:
              if (!
#line 459 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 614; /* iwmmxt_wqmiabt */

            case 2:
              if (!
#line 472 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 615; /* iwmmxt_wqmiatb */

            case 3:
              if (!
#line 485 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 616; /* iwmmxt_wqmiatt */

            default:
              return -1;
            }

        case 45:
          switch (pattern440 (x2))
            {
            case 0:
              if (!
#line 498 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 617; /* iwmmxt_wqmiabbn */

            case 1:
              if (!
#line 511 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 618; /* iwmmxt_wqmiabtn */

            case 2:
              if (!
#line 524 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 619; /* iwmmxt_wqmiatbn */

            case 3:
              if (!
#line 537 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 620; /* iwmmxt_wqmiattn */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 4:
      x15 = XEXP (x1, 0);
      operands[0] = x15;
      x16 = XVECEXP (x2, 0, 0);
      operands[1] = x16;
      x3 = XVECEXP (x2, 0, 1);
      operands[2] = x3;
      x6 = XVECEXP (x2, 0, 2);
      operands[3] = x6;
      switch (XINT (x2, 1))
        {
        case 280:
          switch (pattern226 (x2))
            {
            case 0:
              if (!
#line 4468 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
                return -1;
              return 2048; /* neon_vqrdmlah_lanev8hi */

            case 1:
              if (!
#line 4468 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
                return -1;
              return 2050; /* neon_vqrdmlah_lanev4si */

            case 2:
              if (!
#line 4484 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
                return -1;
              return 2052; /* neon_vqrdmlah_lanev4hi */

            case 3:
              if (!
#line 4484 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
                return -1;
              return 2054; /* neon_vqrdmlah_lanev2si */

            default:
              return -1;
            }

        case 281:
          switch (pattern226 (x2))
            {
            case 0:
              if (!
#line 4468 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
                return -1;
              return 2049; /* neon_vqrdmlsh_lanev8hi */

            case 1:
              if (!
#line 4468 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
                return -1;
              return 2051; /* neon_vqrdmlsh_lanev4si */

            case 2:
              if (!
#line 4484 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
                return -1;
              return 2053; /* neon_vqrdmlsh_lanev4hi */

            case 3:
              if (!
#line 4484 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_RDMA))
                return -1;
              return 2055; /* neon_vqrdmlsh_lanev2si */

            default:
              return -1;
            }

        case 147:
          switch (pattern227 (x2))
            {
            case 0:
              if (!
#line 4500 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2056; /* neon_vmla_lanev4hi */

            case 1:
              if (!
#line 4500 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2057; /* neon_vmla_lanev2si */

            case 2:
              if (!
#line 4500 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2058; /* neon_vmla_lanev2sf */

            case 3:
              if (!
#line 4518 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2059; /* neon_vmla_lanev8hi */

            case 4:
              if (!
#line 4518 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2060; /* neon_vmla_lanev4si */

            case 5:
              if (!
#line 4518 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2061; /* neon_vmla_lanev4sf */

            default:
              return -1;
            }

        case 150:
          switch (pattern228 (x2))
            {
            case 0:
              if (!
#line 4536 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2062; /* neon_vmlals_lanev4hi */

            case 1:
              if (!
#line 4536 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2064; /* neon_vmlals_lanev2si */

            default:
              return -1;
            }

        case 151:
          switch (pattern228 (x2))
            {
            case 0:
              if (!
#line 4536 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2063; /* neon_vmlalu_lanev4hi */

            case 1:
              if (!
#line 4536 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2065; /* neon_vmlalu_lanev2si */

            default:
              return -1;
            }

        case 188:
          switch (pattern228 (x2))
            {
            case 0:
              if (!
#line 4551 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2066; /* neon_vqdmlal_lanev4hi */

            case 1:
              if (!
#line 4551 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2067; /* neon_vqdmlal_lanev2si */

            default:
              return -1;
            }

        case 153:
          switch (pattern227 (x2))
            {
            case 0:
              if (!
#line 4566 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2068; /* neon_vmls_lanev4hi */

            case 1:
              if (!
#line 4566 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2069; /* neon_vmls_lanev2si */

            case 2:
              if (!
#line 4566 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2070; /* neon_vmls_lanev2sf */

            case 3:
              if (!
#line 4584 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2071; /* neon_vmls_lanev8hi */

            case 4:
              if (!
#line 4584 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2072; /* neon_vmls_lanev4si */

            case 5:
              if (!
#line 4584 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2073; /* neon_vmls_lanev4sf */

            default:
              return -1;
            }

        case 156:
          switch (pattern228 (x2))
            {
            case 0:
              if (!
#line 4602 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2074; /* neon_vmlsls_lanev4hi */

            case 1:
              if (!
#line 4602 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2076; /* neon_vmlsls_lanev2si */

            default:
              return -1;
            }

        case 157:
          switch (pattern228 (x2))
            {
            case 0:
              if (!
#line 4602 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2075; /* neon_vmlslu_lanev4hi */

            case 1:
              if (!
#line 4602 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2077; /* neon_vmlslu_lanev2si */

            default:
              return -1;
            }

        case 190:
          switch (pattern228 (x2))
            {
            case 0:
              if (!
#line 4617 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2078; /* neon_vqdmlsl_lanev4hi */

            case 1:
              if (!
#line 4617 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 2079; /* neon_vqdmlsl_lanev2si */

            default:
              return -1;
            }

        case 129:
          x9 = XVECEXP (x2, 0, 3);
          if (pattern229 (x9) != 0)
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case E_TImode:
              if (!s_register_operand (operands[0], E_TImode)
                  || 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)
                      || GET_MODE (x9) != E_V8QImode
                      || !
#line 5690 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 2438; /* neon_vld2_lanev8qi */

                case E_SImode:
                  if (!neon_struct_operand (operands[1], E_SImode)
                      || GET_MODE (x9) != E_V4HImode
                      || !
#line 5690 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 2439; /* neon_vld2_lanev4hi */

                case E_SFmode:
                  if (!neon_struct_operand (operands[1], E_SFmode)
                      || GET_MODE (x9) != E_V4HFmode
                      || !
#line 5690 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 2440; /* neon_vld2_lanev4hf */

                case E_V2SImode:
                  if (!neon_struct_operand (operands[1], E_V2SImode)
                      || GET_MODE (x9) != E_V2SImode
                      || !
#line 5690 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 2441; /* neon_vld2_lanev2si */

                case E_V2SFmode:
                  if (!neon_struct_operand (operands[1], E_V2SFmode)
                      || GET_MODE (x9) != E_V2SFmode
                      || !
#line 5690 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 2442; /* neon_vld2_lanev2sf */

                default:
                  return -1;
                }

            case E_OImode:
              if (!s_register_operand (operands[0], E_OImode)
                  || 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)
                      || GET_MODE (x9) != E_V8HImode
                      || !
#line 5714 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 2443; /* neon_vld2_lanev8hi */

                case E_SFmode:
                  if (!neon_struct_operand (operands[1], E_SFmode)
                      || GET_MODE (x9) != E_V8HFmode
                      || !
#line 5714 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 2444; /* neon_vld2_lanev8hf */

                case E_V2SImode:
                  if (!neon_struct_operand (operands[1], E_V2SImode)
                      || GET_MODE (x9) != E_V4SImode
                      || !
#line 5714 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 2445; /* neon_vld2_lanev4si */

                case E_V2SFmode:
                  if (!neon_struct_operand (operands[1], E_V2SFmode)
                      || GET_MODE (x9) != E_V4SFmode
                      || !
#line 5714 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 2446; /* neon_vld2_lanev4sf */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case 134:
          x9 = XVECEXP (x2, 0, 3);
          if (GET_CODE (x9) != UNSPEC
              || XVECLEN (x9, 0) != 1
              || XINT (x9, 1) != 254)
            return -1;
          x21 = XVECEXP (x9, 0, 0);
          if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
              || !neon_struct_operand (operands[1], E_BLKmode)
              || !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 (x9))
                {
                case E_V8QImode:
                  if (!
#line 5947 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 2489; /* neon_vld3_lanev8qi */

                case E_V4HImode:
                  if (!
#line 5947 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 2490; /* neon_vld3_lanev4hi */

                case E_V4HFmode:
                  if (!
#line 5947 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 2491; /* neon_vld3_lanev4hf */

                case E_V2SImode:
                  if (!
#line 5947 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 2492; /* neon_vld3_lanev2si */

                case E_V2SFmode:
                  if (!
#line 5947 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 2493; /* 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 (x9))
                {
                case E_V8HImode:
                  if (!
#line 5973 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 2494; /* neon_vld3_lanev8hi */

                case E_V8HFmode:
                  if (!
#line 5973 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 2495; /* neon_vld3_lanev8hf */

                case E_V4SImode:
                  if (!
#line 5973 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 2496; /* neon_vld3_lanev4si */

                case E_V4SFmode:
                  if (!
#line 5973 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 2497; /* neon_vld3_lanev4sf */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case 139:
          x9 = XVECEXP (x2, 0, 3);
          if (pattern229 (x9) != 0)
            return -1;
          switch (GET_MODE (operands[0]))
            {
            case E_OImode:
              if (!s_register_operand (operands[0], E_OImode)
                  || 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)
                      || GET_MODE (x9) != E_V8QImode
                      || !
#line 6267 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 2545; /* neon_vld4_lanev8qi */

                case E_V4HImode:
                  if (!neon_struct_operand (operands[1], E_V4HImode)
                      || GET_MODE (x9) != E_V4HImode
                      || !
#line 6267 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 2546; /* neon_vld4_lanev4hi */

                case E_V4HFmode:
                  if (!neon_struct_operand (operands[1], E_V4HFmode)
                      || GET_MODE (x9) != E_V4HFmode
                      || !
#line 6267 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 2547; /* neon_vld4_lanev4hf */

                case E_V4SImode:
                  if (!neon_struct_operand (operands[1], E_V4SImode)
                      || GET_MODE (x9) != E_V2SImode
                      || !
#line 6267 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 2548; /* neon_vld4_lanev2si */

                case E_V4SFmode:
                  if (!neon_struct_operand (operands[1], E_V4SFmode)
                      || GET_MODE (x9) != E_V2SFmode
                      || !
#line 6267 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 2549; /* neon_vld4_lanev2sf */

                default:
                  return -1;
                }

            case E_XImode:
              if (!s_register_operand (operands[0], E_XImode)
                  || 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)
                      || GET_MODE (x9) != E_V8HImode
                      || !
#line 6294 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 2550; /* neon_vld4_lanev8hi */

                case E_V4HFmode:
                  if (!neon_struct_operand (operands[1], E_V4HFmode)
                      || GET_MODE (x9) != E_V8HFmode
                      || !
#line 6294 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 2551; /* neon_vld4_lanev8hf */

                case E_V4SImode:
                  if (!neon_struct_operand (operands[1], E_V4SImode)
                      || GET_MODE (x9) != E_V4SImode
                      || !
#line 6294 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 2552; /* neon_vld4_lanev4si */

                case E_V4SFmode:
                  if (!neon_struct_operand (operands[1], E_V4SFmode)
                      || GET_MODE (x9) != E_V4SFmode
                      || !
#line 6294 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                    return -1;
                  return 2553; /* neon_vld4_lanev4sf */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_198 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  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 (pattern260 (x3, E_HFmode) != 0
                  || !
#line 1303 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
                return -1;
              return 711; /* fmahf4 */

            case E_SFmode:
              if (pattern260 (x3, E_SFmode) != 0
                  || !
#line 1326 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA))
                return -1;
              return 712; /* fmasf4 */

            case E_DFmode:
              if (pattern260 (x3, E_DFmode) != 0
                  || !(
#line 1326 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA) && 
#line 52 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
                return -1;
              return 713; /* fmadf4 */

            case E_V2SFmode:
              if (pattern260 (x3, E_V2SFmode) != 0)
                return -1;
              if (
#line 703 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_FMA && flag_unsafe_math_optimizations))
                return 1061; /* fmav2sf4 */
              if (!
#line 713 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_FMA))
                return -1;
              return 1063; /* fmav2sf4_intrinsic */

            case E_V4SFmode:
              if (pattern260 (x3, E_V4SFmode) != 0)
                return -1;
              if (
#line 703 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_FMA && flag_unsafe_math_optimizations))
                return 1062; /* fmav4sf4 */
              if (!
#line 713 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_FMA))
                return -1;
              return 1064; /* fmav4sf4_intrinsic */

            case E_V8HFmode:
              if (pattern260 (x3, E_V8HFmode) != 0)
                return -1;
              if (
#line 724 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST && flag_unsafe_math_optimizations))
                return 1065; /* fmav8hf4 */
              if (!
#line 735 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
                return -1;
              return 1067; /* fmav8hf4_intrinsic */

            case E_V4HFmode:
              if (pattern260 (x3, E_V4HFmode) != 0)
                return -1;
              if (
#line 724 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST && flag_unsafe_math_optimizations))
                return 1066; /* fmav4hf4 */
              if (!
#line 735 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
                return -1;
              return 1068; /* fmav4hf4_intrinsic */

            default:
              return -1;
            }

        case NEG:
          x7 = XEXP (x6, 0);
          operands[3] = x7;
          switch (GET_MODE (operands[0]))
            {
            case E_HFmode:
              if (pattern261 (x3, E_HFmode) != 0
                  || !
#line 1373 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
                return -1;
              return 717; /* *fnmsubhf4 */

            case E_SFmode:
              if (pattern261 (x3, E_SFmode) != 0
                  || !
#line 1384 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA))
                return -1;
              return 718; /* *fnmsubsf4 */

            case E_DFmode:
              if (pattern261 (x3, E_DFmode) != 0
                  || !(
#line 1384 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA) && 
#line 52 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
                return -1;
              return 719; /* *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 (pattern262 (x3, E_HFmode) != 0
                  || !
#line 1338 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
                return -1;
              return 714; /* fmsubhf4_fp16 */

            case E_SFmode:
              if (pattern262 (x3, E_SFmode) != 0
                  || !
#line 1362 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA))
                return -1;
              return 715; /* *fmsubsf4 */

            case E_DFmode:
              if (pattern262 (x3, E_DFmode) != 0
                  || !(
#line 1362 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA) && 
#line 52 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
                return -1;
              return 716; /* *fmsubdf4 */

            case E_V2SFmode:
              if (pattern262 (x3, E_V2SFmode) != 0)
                return -1;
              if (
#line 745 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_FMA && flag_unsafe_math_optimizations))
                return 1069; /* *fmsubv2sf4 */
              if (!
#line 756 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_FMA))
                return -1;
              return 1071; /* fmsubv2sf4_intrinsic */

            case E_V4SFmode:
              if (pattern262 (x3, E_V4SFmode) != 0)
                return -1;
              if (
#line 745 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_FMA && flag_unsafe_math_optimizations))
                return 1070; /* *fmsubv4sf4 */
              if (!
#line 756 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_FMA))
                return -1;
              return 1072; /* fmsubv4sf4_intrinsic */

            case E_V8HFmode:
              if (pattern262 (x3, E_V8HFmode) != 0
                  || !
#line 767 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
                return -1;
              return 1073; /* fmsubv8hf4_intrinsic */

            case E_V4HFmode:
              if (pattern262 (x3, E_V4HFmode) != 0
                  || !
#line 767 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
                return -1;
              return 1074; /* fmsubv4hf4_intrinsic */

            default:
              return -1;
            }

        case NEG:
          x7 = XEXP (x6, 0);
          operands[3] = x7;
          switch (GET_MODE (operands[0]))
            {
            case E_HFmode:
              if (pattern263 (x3, E_HFmode) != 0
                  || !
#line 1395 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
                return -1;
              return 720; /* *fnmaddhf4 */

            case E_SFmode:
              if (pattern263 (x3, E_SFmode) != 0
                  || !
#line 1407 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA))
                return -1;
              return 721; /* *fnmaddsf4 */

            case E_DFmode:
              if (pattern263 (x3, E_DFmode) != 0
                  || !(
#line 1407 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA) && 
#line 52 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
                return -1;
              return 722; /* *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 (pattern264 (x11))
            {
            case 0:
              if (pattern346 (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 2350 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                return 1411; /* vfmal_lowv2sf_intrinsic */
              if (!vect_par_constant_high (operands[4], E_V4HFmode)
                  || !vect_par_constant_high (operands[5], E_V4HFmode)
                  || !
#line 2385 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                return -1;
              return 1415; /* vfmal_highv2sf_intrinsic */

            case 1:
              if (pattern346 (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 2350 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                return 1412; /* vfmal_lowv4sf_intrinsic */
              if (!vect_par_constant_high (operands[4], E_V8HFmode)
                  || !vect_par_constant_high (operands[5], E_V8HFmode)
                  || !
#line 2385 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                return -1;
              return 1416; /* vfmal_highv4sf_intrinsic */

            case 2:
              if (pattern403 (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 2440 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                        return 1419; /* vfmal_lane_lowv2sf_intrinsic */
                      break;

                    case E_V8HFmode:
                      if (s_register_operand (operands[3], E_V8HFmode)
                          && 
#line 2496 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                        return 1421; /* 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 2533 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                    return -1;
                  return 1423; /* vfmal_lane_highv8hfv2sf_intrinsic */

                case E_V4HFmode:
                  if (!s_register_operand (operands[3], E_V4HFmode)
                      || !
#line 2562 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                    return -1;
                  return 1425; /* vfmal_lane_highv2sf_intrinsic */

                default:
                  return -1;
                }

            case 3:
              if (pattern403 (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 2440 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                        return 1420; /* vfmal_lane_lowv4sf_intrinsic */
                      break;

                    case E_V4HFmode:
                      if (s_register_operand (operands[3], E_V4HFmode)
                          && 
#line 2496 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                        return 1422; /* 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 2533 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                    return -1;
                  return 1424; /* vfmal_lane_highv4hfv4sf_intrinsic */

                case E_V8HFmode:
                  if (!s_register_operand (operands[3], E_V8HFmode)
                      || !
#line 2562 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                    return -1;
                  return 1426; /* 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 (pattern264 (x11))
            {
            case 0:
              if (pattern360 (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 2368 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                return 1413; /* vfmsl_highv2sf_intrinsic */
              if (!vect_par_constant_low (operands[4], E_V4HFmode)
                  || !vect_par_constant_low (operands[5], E_V4HFmode)
                  || !
#line 2403 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                return -1;
              return 1417; /* vfmsl_lowv2sf_intrinsic */

            case 1:
              if (pattern360 (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 2368 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                return 1414; /* vfmsl_highv4sf_intrinsic */
              if (!vect_par_constant_low (operands[4], E_V8HFmode)
                  || !vect_par_constant_low (operands[5], E_V8HFmode)
                  || !
#line 2403 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                return -1;
              return 1418; /* vfmsl_lowv4sf_intrinsic */

            case 2:
              if (pattern409 (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 2593 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                        return 1427; /* vfmsl_lane_lowv2sf_intrinsic */
                      break;

                    case E_V8HFmode:
                      if (s_register_operand (operands[3], E_V8HFmode)
                          && 
#line 2631 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                        return 1429; /* 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 2669 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                    return -1;
                  return 1431; /* vfmsl_lane_highv8hfv2sf_intrinsic */

                case E_V4HFmode:
                  if (!s_register_operand (operands[3], E_V4HFmode)
                      || !
#line 2699 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                    return -1;
                  return 1433; /* vfmsl_lane_highv2sf_intrinsic */

                default:
                  return -1;
                }

            case 3:
              if (pattern409 (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 2593 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                        return 1428; /* vfmsl_lane_lowv4sf_intrinsic */
                      break;

                    case E_V4HFmode:
                      if (s_register_operand (operands[3], E_V4HFmode)
                          && 
#line 2631 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                        return 1430; /* 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 2669 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                    return -1;
                  return 1432; /* vfmsl_lane_highv4hfv4sf_intrinsic */

                case E_V8HFmode:
                  if (!s_register_operand (operands[3], E_V8HFmode)
                      || !
#line 2699 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_FP16FML))
                    return -1;
                  return 1434; /* vfmsl_lane_highv4sf_intrinsic */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_199 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  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 (pattern300 (x3, E_V8QImode, E_QImode) != 0
                  || !
#line 685 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 482; /* iwmmxt_tinsrb */

            case E_V4HImode:
              if (pattern300 (x3, E_V4HImode, E_HImode) != 0
                  || !
#line 702 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 483; /* 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 719 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                        return 484; /* 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 329 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 984; /* vec_setv2si_internal */

            case E_V8QImode:
              if (pattern209 (x3, E_V8QImode, E_QImode) != 0
                  || !
#line 329 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 981; /* vec_setv8qi_internal */

            case E_V4HImode:
              if (pattern209 (x3, E_V4HImode, E_HImode) != 0
                  || !
#line 329 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 982; /* vec_setv4hi_internal */

            case E_V4HFmode:
              if (pattern209 (x3, E_V4HFmode, E_HFmode) != 0
                  || !
#line 329 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 983; /* vec_setv4hf_internal */

            case E_V2SFmode:
              if (pattern209 (x3, E_V2SFmode, E_SFmode) != 0
                  || !
#line 329 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 985; /* vec_setv2sf_internal */

            case E_V16QImode:
              if (pattern209 (x3, E_V16QImode, E_QImode) != 0
                  || !
#line 350 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 986; /* vec_setv16qi_internal */

            case E_V8HImode:
              if (pattern209 (x3, E_V8HImode, E_HImode) != 0
                  || !
#line 350 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 987; /* vec_setv8hi_internal */

            case E_V8HFmode:
              if (pattern209 (x3, E_V8HFmode, E_HFmode) != 0
                  || !
#line 350 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 988; /* vec_setv8hf_internal */

            case E_V4SImode:
              if (pattern209 (x3, E_V4SImode, E_SImode) != 0
                  || !
#line 350 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 989; /* vec_setv4si_internal */

            case E_V4SFmode:
              if (pattern209 (x3, E_V4SFmode, E_SFmode) != 0
                  || !
#line 350 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 990; /* vec_setv4sf_internal */

            case E_V2DImode:
              if (pattern209 (x3, E_V2DImode, E_DImode) != 0
                  || !
#line 379 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 991; /* 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 (pattern301 (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
              || pattern372 (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
              || pattern399 (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 1038 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 518; /* 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 1102 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 521; /* iwmmxt_wunpckilb */

            default:
              return -1;
            }

        case 4:
          if (pattern301 (x9) != 0
              || pattern372 (x10, 4) != 0
              || XWINT (x5, 0) != 5L
              || pattern399 (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 1058 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 519; /* 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 1122 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 522; /* 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
              || pattern399 (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 1074 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 520; /* iwmmxt_wunpckihw */

            case 0L:
              if (XWINT (x21, 0) != 1L
                  || XWINT (x24, 0) != 1L
                  || XWINT (x25, 0) != 0L
                  || !
#line 1138 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 523; /* iwmmxt_wunpckilw */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case SS_MINUS:
      if (pattern109 (x3, SS_PLUS) != 0
          || !
#line 81 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 590; /* iwmmxt_waddsubhx */

    case SS_PLUS:
      if (pattern109 (x3, SS_MINUS) != 0
          || !
#line 99 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 591; /* iwmmxt_wsubaddhx */

    default:
      return -1;
    }
}

static int
recog_200 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, 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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 427; /* tbcstv8qi */
          if (!s_register_operand (operands[0], E_V8QImode)
              || !
#line 3954 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1911; /* 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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 428; /* tbcstv4hi */
          if (!s_register_operand (operands[0], E_V4HImode)
              || !
#line 3954 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1912; /* 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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 429; /* tbcstv2si */
          if (!s_register_operand (operands[0], E_V2SImode)
              || !
#line 3978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1917; /* 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)
              || !
#line 3954 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1913; /* neon_vdup_nv16qi */

        case E_V8HImode:
          if (!s_register_operand (operands[0], E_V8HImode)
              || GET_MODE (x3) != E_V8HImode
              || !s_register_operand (operands[1], E_HImode)
              || !
#line 3954 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1914; /* neon_vdup_nv8hi */

        case E_V4HFmode:
          if (!s_register_operand (operands[0], E_V4HFmode)
              || GET_MODE (x3) != E_V4HFmode
              || !s_register_operand (operands[1], E_HFmode)
              || !
#line 3962 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1915; /* 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)
              || !
#line 3970 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1916; /* neon_vdup_nv8hf */

        case E_V2SFmode:
          if (!s_register_operand (operands[0], E_V2SFmode)
              || GET_MODE (x3) != E_V2SFmode
              || !s_register_operand (operands[1], E_SFmode)
              || !
#line 3978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1918; /* 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)
              || !
#line 3978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1919; /* neon_vdup_nv4si */

        case E_V4SFmode:
          if (!s_register_operand (operands[0], E_V4SFmode)
              || GET_MODE (x3) != E_V4SFmode
              || !s_register_operand (operands[1], E_SFmode)
              || !
#line 3978 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1920; /* neon_vdup_nv4sf */

        case E_V2DImode:
          if (!s_register_operand (operands[0], E_V2DImode)
              || GET_MODE (x3) != E_V2DImode
              || !s_register_operand (operands[1], E_DImode)
              || !
#line 3998 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1921; /* neon_vdup_nv2di */

        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 (pattern282 (x3, E_V8QImode, E_QImode) != 0
              || !
#line 4012 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1922; /* neon_vdup_lanev8qi_internal */

        case E_V16QImode:
          if (pattern283 (x3, E_V16QImode, E_V8QImode, E_QImode) != 0
              || !
#line 4012 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1923; /* neon_vdup_lanev16qi_internal */

        case E_V4HImode:
          if (pattern282 (x3, E_V4HImode, E_HImode) != 0
              || !
#line 4012 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1924; /* neon_vdup_lanev4hi_internal */

        case E_V8HImode:
          if (pattern283 (x3, E_V8HImode, E_V4HImode, E_HImode) != 0
              || !
#line 4012 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1925; /* neon_vdup_lanev8hi_internal */

        case E_V2SImode:
          if (pattern282 (x3, E_V2SImode, E_SImode) != 0
              || !
#line 4012 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1926; /* neon_vdup_lanev2si_internal */

        case E_V4SImode:
          if (pattern283 (x3, E_V4SImode, E_V2SImode, E_SImode) != 0
              || !
#line 4012 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1927; /* neon_vdup_lanev4si_internal */

        case E_V2SFmode:
          if (pattern283 (x3, E_V2SFmode, E_V2SFmode, E_SFmode) != 0
              || !
#line 4012 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1928; /* neon_vdup_lanev2sf_internal */

        case E_V4SFmode:
          if (pattern283 (x3, E_V4SFmode, E_V2SFmode, E_SFmode) != 0
              || !
#line 4012 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1929; /* neon_vdup_lanev4sf_internal */

        case E_V8HFmode:
          if (pattern284 (x3, E_V8HFmode) != 0
              || !
#line 4034 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_FP16))
            return -1;
          return 1930; /* neon_vdup_lanev8hf_internal */

        case E_V4HFmode:
          if (pattern284 (x3, E_V4HFmode) != 0
              || !
#line 4034 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_FP16))
            return -1;
          return 1931; /* neon_vdup_lanev4hf_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 5536 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2392; /* 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 5536 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2393; /* 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 5536 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2394; /* neon_vld1_dupv4hf */

        case E_V2SImode:
          if (!s_register_operand (operands[0], E_V2SImode)
              || GET_MODE (x3) != E_V2SImode
              || !neon_struct_operand (operands[1], E_SImode)
              || !
#line 5536 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2395; /* 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 5536 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2396; /* 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 5553 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2397; /* 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 5553 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2398; /* 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 5553 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2399; /* 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 5553 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2400; /* 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 5553 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2401; /* 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 5563 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2402; /* neon_vld1_dupv2di */

        default:
          return -1;
        }

    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];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  switch (XVECLEN (x3, 0))
    {
    case 2:
      x4 = XVECEXP (x3, 0, 1);
      operands[2] = x4;
      switch (XINT (x3, 1))
        {
        case 29:
          if (GET_MODE (x3) != E_SImode
              || !register_operand (operands[0], E_SImode))
            return -1;
          x5 = XVECEXP (x3, 0, 0);
          operands[1] = x5;
          if (!register_operand (operands[1], E_SImode)
              || !register_operand (operands[2], E_SImode)
              || !
#line 8741 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 231; /* probe_stack_range */

        case 13:
          switch (pattern178 (x3))
            {
            case 0:
              if (!
#line 811 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 491; /* eqv8qi3 */

            case 1:
              if (!
#line 822 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 492; /* eqv4hi3 */

            case 2:
              if (!
#line 834 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 493; /* eqv2si3 */

            default:
              return -1;
            }

        case 14:
          switch (pattern178 (x3))
            {
            case 0:
              if (!
#line 845 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 494; /* gtuv8qi3 */

            case 1:
              if (!
#line 856 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 495; /* gtuv4hi3 */

            case 2:
              if (!
#line 867 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 496; /* gtuv2si3 */

            default:
              return -1;
            }

        case 15:
          switch (pattern178 (x3))
            {
            case 0:
              if (!
#line 878 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 497; /* gtv8qi3 */

            case 1:
              if (!
#line 889 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 498; /* gtv4hi3 */

            case 2:
              if (!
#line 900 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 499; /* gtv2si3 */

            default:
              return -1;
            }

        case 25:
          x5 = XVECEXP (x3, 0, 0);
          operands[1] = x5;
          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 71 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ))
                return -1;
              return 2657; /* 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 71 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ))
                return -1;
              return 2658; /* 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 71 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ))
                return -1;
              return 2659; /* atomic_loadsi */

            default:
              return -1;
            }

        case 26:
          x5 = XVECEXP (x3, 0, 0);
          operands[1] = x5;
          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 97 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ))
                return -1;
              return 2660; /* atomic_storeqi */

            case E_HImode:
              if (!memory_operand (operands[0], E_HImode)
                  || GET_MODE (x3) != E_HImode
                  || !general_operand (operands[1], E_HImode)
                  || !
#line 97 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ))
                return -1;
              return 2661; /* atomic_storehi */

            case E_SImode:
              if (!memory_operand (operands[0], E_SImode)
                  || GET_MODE (x3) != E_SImode
                  || !general_operand (operands[1], E_SImode)
                  || !
#line 97 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ))
                return -1;
              return 2662; /* atomic_storesi */

            default:
              return -1;
            }

        case 19:
          if (pnum_clobbers == NULL
              || !const_int_operand (operands[2], E_SImode))
            return -1;
          x5 = XVECEXP (x3, 0, 0);
          switch (GET_CODE (x5))
            {
            case PLUS:
              switch (pattern259 (x3))
                {
                case 0:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2676; /* atomic_addqi */

                case 1:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2681; /* atomic_addhi */

                case 2:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2686; /* atomic_addsi */

                case 3:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2691; /* atomic_adddi */

                default:
                  return -1;
                }

            case MINUS:
              switch (pattern259 (x3))
                {
                case 0:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2677; /* atomic_subqi */

                case 1:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2682; /* atomic_subhi */

                case 2:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2687; /* atomic_subsi */

                case 3:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2692; /* atomic_subdi */

                default:
                  return -1;
                }

            case IOR:
              switch (pattern259 (x3))
                {
                case 0:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2678; /* atomic_orqi */

                case 1:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2683; /* atomic_orhi */

                case 2:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2688; /* atomic_orsi */

                case 3:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2693; /* atomic_ordi */

                default:
                  return -1;
                }

            case XOR:
              switch (pattern259 (x3))
                {
                case 0:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2679; /* atomic_xorqi */

                case 1:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2684; /* atomic_xorhi */

                case 2:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2689; /* atomic_xorsi */

                case 3:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2694; /* atomic_xordi */

                default:
                  return -1;
                }

            case AND:
              switch (pattern259 (x3))
                {
                case 0:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2680; /* atomic_andqi */

                case 1:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2685; /* atomic_andhi */

                case 2:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2690; /* atomic_andsi */

                case 3:
                  if (!
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2695; /* atomic_anddi */

                default:
                  return -1;
                }

            case NOT:
              x6 = XEXP (x5, 0);
              if (GET_CODE (x6) != AND)
                return -1;
              x7 = XEXP (x6, 1);
              operands[1] = x7;
              x8 = XEXP (x6, 0);
              if (!rtx_equal_p (x8, operands[0]))
                return -1;
              switch (GET_MODE (operands[0]))
                {
                case E_QImode:
                  if (pattern344 (x3, E_QImode) != 0
                      || !
#line 320 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2696; /* atomic_nandqi */

                case E_HImode:
                  if (pattern344 (x3, E_HImode) != 0
                      || !
#line 320 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2697; /* atomic_nandhi */

                case E_SImode:
                  if (pattern344 (x3, E_SImode) != 0
                      || !
#line 320 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2698; /* atomic_nandsi */

                case E_DImode:
                  if (!mem_noofs_operand (operands[0], E_DImode)
                      || GET_MODE (x3) != E_DImode
                      || GET_MODE (x5) != E_DImode
                      || GET_MODE (x6) != E_DImode
                      || !s_register_operand (operands[1], E_DImode)
                      || !
#line 320 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2699; /* atomic_nanddi */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 5:
      if (pattern108 (x3, E_SImode) != 0)
        return -1;
      x9 = XVECEXP (x3, 0, 3);
      operands[4] = x9;
      if (!immediate_operand (operands[4], E_SImode))
        return -1;
      x10 = XVECEXP (x3, 0, 4);
      operands[5] = x10;
      if (!immediate_operand (operands[5], E_SImode))
        return -1;
      switch (XINT (x3, 1))
        {
        case 42:
          if (!
#line 12262 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_MRC)))
            return -1;
          return 420; /* mrc */

        case 43:
          if (!
#line 12262 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_MRC2)))
            return -1;
          return 421; /* mrc2 */

        default:
          return -1;
        }

    case 3:
      if (pattern108 (x3, E_DImode) != 0)
        return -1;
      switch (XINT (x3, 1))
        {
        case 46:
          if (!
#line 12295 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_MRRC)))
            return -1;
          return 424; /* mrrc */

        case 47:
          if (!
#line 12295 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_MRRC2)))
            return -1;
          return 425; /* mrrc2 */

        default:
          return -1;
        }

    case 1:
      switch (XINT (x3, 1))
        {
        case 27:
          if (GET_MODE (x3) != E_SImode)
            return -1;
          x5 = XVECEXP (x3, 0, 0);
          if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
              || !register_operand (operands[0], E_SImode)
              || !
#line 1982 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT))
            return -1;
          return 807; /* get_fpscr */

        case 21:
          if (GET_MODE (x3) != E_DImode
              || !register_operand (operands[0], E_DImode))
            return -1;
          x5 = XVECEXP (x3, 0, 0);
          operands[1] = x5;
          if (!arm_sync_memory_operand (operands[1], E_DImode)
              || !
#line 124 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(ARM_DOUBLEWORD_ALIGN && TARGET_HAVE_LPAE))
            return -1;
          return 2663; /* arm_atomic_loaddi2_ldrd */

        case 20:
          switch (pattern154 (x3))
            {
            case 0:
              if (!
#line 479 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX))
                return -1;
              return 2752; /* arm_load_exclusivesi */

            case 1:
              if (!
#line 503 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD))
                return -1;
              return 2754; /* arm_load_exclusivedi */

            default:
              return -1;
            }

        case 23:
          switch (pattern154 (x3))
            {
            case 0:
              if (!
#line 491 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ))
                return -1;
              return 2753; /* arm_load_acquire_exclusivesi */

            case 1:
              if (!
#line 512 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQEXD && ARM_DOUBLEWORD_ALIGN))
                return -1;
              return 2755; /* arm_load_acquire_exclusivedi */

            default:
              return -1;
            }

        default:
          return -1;
        }

    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, 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
          || pattern31 (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 850 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 13; /* *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 (!reg_or_int_operand (operands[3], E_SImode))
            return -1;
          operands[0] = x4;
          if (!
#line 7426 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return -1;
          return 198; /* *arm_cmpsi_negshiftsi_si */

        default:
          return -1;
        }

    case MULT:
    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      if (pnum_clobbers != NULL)
        {
          res = recog_46 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      operands[3] = x3;
      if (shift_operator (operands[3], E_SImode))
        {
          res = recog_47 (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]
          || pattern31 (x1, E_CC_NOOVmode) != 0)
        return -1;
      x5 = XEXP (x3, 0);
      operands[1] = x5;
      if (!register_operand (operands[1], E_SImode))
        return -1;
      x8 = XEXP (x3, 1);
      operands[2] = x8;
      if (!register_operand (operands[2], E_SImode)
          || !
#line 1406 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && optimize_size))
        return -1;
      *pnum_clobbers = 1;
      return 929; /* *thumb2_mulsi_short_compare0_scratch */

    case ZERO_EXTRACT:
      if (GET_MODE (x3) != E_SImode)
        return -1;
      x4 = XEXP (x2, 1);
      if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
          || pattern31 (x1, E_CC_NOOVmode) != 0)
        return -1;
      x5 = XEXP (x3, 0);
      operands[0] = x5;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x8 = XEXP (x3, 1);
      operands[1] = x8;
      if (!const_int_operand (operands[1], E_VOIDmode))
        return -1;
      x9 = XEXP (x3, 2);
      operands[2] = x9;
      if (!const_int_operand (operands[2], E_VOIDmode)
          || !
#line 2528 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 87; /* *zeroextractsi_compare0_scratch */

    case NOT:
      if (pnum_clobbers == NULL
          || GET_MODE (x3) != E_SImode)
        return -1;
      x4 = XEXP (x2, 1);
      if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
          || pattern31 (x1, E_CC_NOOVmode) != 0)
        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 (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 4312 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          *pnum_clobbers = 1;
          return 136; /* *not_shiftsi_compare0_scratch */

        case REG:
        case SUBREG:
          operands[1] = x5;
          if (!s_register_operand (operands[1], E_SImode)
              || !
#line 5122 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          *pnum_clobbers = 1;
          return 158; /* *notsi_compare0_scratch */

        default:
          return -1;
        }

    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_48 (x1, insn, pnum_clobbers);
              if (res >= 0)
                return res;
              break;

            case CONST_DOUBLE:
            case REG:
            case SUBREG:
              res = recog_49 (x1, insn, pnum_clobbers);
              if (res >= 0)
                return res;
              break;

            default:
              break;
            }
          operands[1] = x4;
          if (REGNO (x10) != 100)
            return -1;
          switch (GET_MODE (x10))
            {
            case E_CCmode:
              if (GET_MODE (x2) != E_CCmode
                  || !s_register_operand (operands[0], E_SImode)
                  || !arm_add_operand (operands[1], E_SImode)
                  || !
#line 7378 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 195; /* *arm_cmpsi_insn */

            case E_CC_NCVmode:
              if (pnum_clobbers == NULL
                  || GET_MODE (x2) != E_CC_NCVmode
                  || !s_register_operand (operands[0], E_DImode)
                  || !arm_di_operand (operands[1], E_DImode)
                  || !
#line 7444 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              *pnum_clobbers = 1;
              return 199; /* *arm_cmpdi_insn */

            case E_CC_CZmode:
              if (GET_MODE (x2) != E_CC_CZmode
                  || !s_register_operand (operands[0], E_DImode)
                  || !arm_di_operand (operands[1], E_DImode)
                  || !
#line 7485 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return -1;
              return 200; /* *arm_cmpdi_unsigned */

            default:
              return -1;
            }

        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;
          x11 = XEXP (x4, 0);
          operands[1] = x11;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x12 = XEXP (x4, 1);
          operands[2] = x12;
          if (!shift_amount_operand (operands[2], E_SImode)
              || !
#line 7399 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 196; /* *cmpsi_shiftsi */

        case NEG:
          if (GET_MODE (x4) != E_SImode)
            return -1;
          x11 = XEXP (x4, 0);
          if (!shift_operator (x11, E_SImode))
            return -1;
          operands[3] = x11;
          if (REGNO (x10) != 100
              || GET_MODE (x10) != E_CCmode
              || GET_MODE (x2) != E_CCmode
              || !s_register_operand (operands[0], E_SImode))
            return -1;
          x13 = XEXP (x11, 0);
          operands[1] = x13;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x14 = XEXP (x11, 1);
          operands[2] = x14;
          if (!const_int_operand (operands[2], E_SImode)
              || !
#line 344 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
            return -1;
          return 888; /* *thumb2_cmpsi_neg_shiftsi */

        default:
          return -1;
        }

    case UNSPEC:
      if (XVECLEN (x3, 0) != 1
          || XINT (x3, 1) != 5)
        return -1;
      x15 = XVECEXP (x3, 0, 0);
      if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x4 = XEXP (x2, 1);
      if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return -1;
      x10 = XEXP (x1, 0);
      operands[0] = x10;
      if (!cc_register (operands[0], E_CC_NOOVmode)
          || GET_MODE (x2) != E_CC_NOOVmode
          || !
#line 8587 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      return 228; /* *check_arch2 */

    case PLUS:
    case MINUS:
    case AND:
    case IOR:
    case XOR:
      if (GET_MODE (x3) == E_SImode)
        {
          res = recog_50 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      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]
          || pattern31 (x1, E_CC_NOOVmode) != 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;
      x8 = XEXP (x3, 1);
      operands[2] = x8;
      if (!s_register_operand (operands[2], E_SImode)
          || !
#line 9133 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      *pnum_clobbers = 1;
      return 252; /* *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;
      x8 = XEXP (x3, 1);
      if (!arm_comparison_operator (x8, E_SImode))
        return -1;
      operands[5] = x8;
      x9 = XEXP (x3, 2);
      if (GET_CODE (x9) != CONST_INT)
        return -1;
      x4 = XEXP (x2, 1);
      if (x4 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
          || pattern198 (x1) != 0)
        return -1;
      switch (XWINT (x9, 0))
        {
        case 0L:
          if (!
#line 9543 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 262; /* *cmp_ite0 */

        case 1L:
          if (!
#line 9626 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 263; /* *cmp_ite1 */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_203 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  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 (XVECLEN (x4, 0) != 1)
        return -1;
      switch (XINT (x4, 1))
        {
        case 25:
          if (pattern177 (x3) != 0
              || !
#line 4519 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(unaligned_access))
            return -1;
          return 139; /* unaligned_loadhiu */

        case 66:
          if (GET_MODE (x4) != E_SImode)
            return -1;
          x5 = XVECEXP (x4, 0, 0);
          if (GET_CODE (x5) != VEC_SELECT
              || GET_MODE (x5) != E_SImode)
            return -1;
          x6 = XEXP (x5, 1);
          if (GET_CODE (x6) != PARALLEL
              || XVECLEN (x6, 0) != 1
              || !register_operand (operands[0], E_V4SImode)
              || GET_MODE (x3) != E_V4SImode)
            return -1;
          x7 = XEXP (x5, 0);
          operands[1] = x7;
          if (!register_operand (operands[1], E_V4SImode))
            return -1;
          x8 = XVECEXP (x6, 0, 0);
          operands[2] = x8;
          if (!immediate_operand (operands[2], E_SImode)
              || !
#line 72 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/crypto.md"
(TARGET_CRYPTO))
            return -1;
          return 2651; /* crypto_sha1h */

        default:
          return -1;
        }

    case NEG:
      if (pattern106 (x3) != 0
          || !
#line 4767 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 150; /* *zextendsidi_negsi */

    case REG:
    case SUBREG:
    case MEM:
      operands[1] = x4;
      switch (GET_MODE (operands[0]))
        {
        case E_DImode:
          if (!s_register_operand (operands[0], E_DImode)
              || GET_MODE (x3) != E_DImode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case E_QImode:
              if (!nonimmediate_operand (operands[1], E_QImode)
                  || !
#line 5256 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT ))
                return -1;
              return 159; /* zero_extendqidi2 */

            case E_HImode:
              if (!nonimmediate_operand (operands[1], E_HImode)
                  || !
#line 5256 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6))
                return -1;
              return 160; /* zero_extendhidi2 */

            case E_SImode:
              if (!s_register_operand (operands[1], E_SImode)
                  || !
#line 5256 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT ))
                return -1;
              return 161; /* zero_extendsidi2 */

            default:
              return -1;
            }

        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 5365 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch4 && !arm_arch6))
                        return 165; /* *arm_zero_extendhisi2 */
                      if (
#line 5376 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch6))
                        return 166; /* *arm_zero_extendhisi2_v6 */
                    }
                  break;

                case E_QImode:
                  if (nonimmediate_operand (operands[1], E_QImode))
                    {
                      if (
#line 5434 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && !arm_arch6))
                        return 168; /* *arm_zero_extendqisi2 */
                      if (
#line 5446 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch6))
                        return 169; /* *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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                    return 829; /* *thumb1_zero_extendhisi2 */
                  break;

                case E_QImode:
                  if (nonimmediate_operand (operands[1], E_QImode))
                    {
                      if (
#line 415 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && !arm_arch6))
                        return 830; /* *thumb1_zero_extendqisi2 */
                      if (
#line 427 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && arm_arch6))
                        return 831; /* *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 1060 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_arch6))
                return -1;
              return 911; /* *thumb2_zero_extendhisi2_v6 */

            case E_QImode:
              if (!nonimmediate_operand (operands[1], E_QImode)
                  || !
#line 1073 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_arch6))
                return -1;
              return 912; /* 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 6665 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2616; /* 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 6665 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2618; /* 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 6665 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2620; /* neon_unpacku_v2si */

        default:
          return -1;
        }

    case VEC_SELECT:
      x9 = XEXP (x4, 1);
      if (GET_CODE (x9) != PARALLEL)
        return -1;
      x10 = XEXP (x4, 0);
      operands[1] = x10;
      if (XVECLEN (x9, 0) == 1)
        {
          res = recog_190 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      operands[2] = x9;
      switch (GET_MODE (operands[0]))
        {
        case E_V8HImode:
          if (pattern230 (x3, E_V16QImode, E_V8QImode, E_V8HImode) != 0)
            return -1;
          if (vect_par_constant_low (operands[2], E_V16QImode)
              && 
#line 6502 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return 2586; /* neon_vec_unpacku_lo_v16qi */
          if (!vect_par_constant_high (operands[2], E_V16QImode)
              || !
#line 6512 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return -1;
          return 2592; /* neon_vec_unpacku_hi_v16qi */

        case E_V4SImode:
          if (pattern230 (x3, E_V8HImode, E_V4HImode, E_V4SImode) != 0)
            return -1;
          if (vect_par_constant_low (operands[2], E_V8HImode)
              && 
#line 6502 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return 2588; /* neon_vec_unpacku_lo_v8hi */
          if (!vect_par_constant_high (operands[2], E_V8HImode)
              || !
#line 6512 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return -1;
          return 2594; /* neon_vec_unpacku_hi_v8hi */

        case E_V2DImode:
          if (pattern230 (x3, E_V4SImode, E_V2SImode, E_V2DImode) != 0)
            return -1;
          if (vect_par_constant_low (operands[2], E_V4SImode)
              && 
#line 6502 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return 2590; /* neon_vec_unpacku_lo_v4si */
          if (!vect_par_constant_high (operands[2], E_V4SImode)
              || !
#line 6512 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return -1;
          return 2596; /* neon_vec_unpacku_hi_v4si */

        default:
          return -1;
        }

    case ASHIFT:
      switch (pattern105 (x3))
        {
        case 0:
          if (!
#line 6627 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2610; /* neon_vec_ushiftl_v8qi */

        case 1:
          if (!
#line 6627 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2612; /* neon_vec_ushiftl_v4hi */

        case 2:
          if (!
#line 6627 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2614; /* 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;
      x5 = XVECEXP (x4, 0, 0);
      operands[1] = x5;
      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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH))
                return -1;
              return 2748; /* arm_load_exclusiveqi */

            case E_HImode:
              if (!mem_noofs_operand (operands[1], E_HImode)
                  || !
#line 454 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH))
                return -1;
              return 2749; /* 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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ))
                return -1;
              return 2750; /* arm_load_acquire_exclusiveqi */

            case E_HImode:
              if (!mem_noofs_operand (operands[1], E_HImode)
                  || !
#line 467 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ))
                return -1;
              return 2751; /* arm_load_acquire_exclusivehi */

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_204 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  x3 = XEXP (x1, 1);
  switch (GET_CODE (x3))
    {
    case MULT:
      res = recog_51 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    case ROTATERT:
      res = recog_52 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    case ASHIFTRT:
      switch (pattern33 (x3))
        {
        case 0:
          if (register_operand (operands[0], E_V4HImode)
              && register_operand (operands[1], E_V4HImode))
            {
              if (imm_or_reg_operand (operands[2], E_SImode)
                  && 
#line 1307 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 539; /* ashrv4hi3_iwmmxt */
              if (imm_or_reg_operand (operands[2], E_DImode)
                  && 
#line 1391 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 551; /* ashrv4hi3_di */
            }
          if (s_register_operand (operands[0], E_V4HImode)
              && s_register_operand (operands[1], E_V4HImode)
              && imm_for_neon_rshift_operand (operands[2], E_V4HImode)
              && 
#line 1090 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1238; /* vashrv4hi3_imm */
          break;

        case 1:
          if (register_operand (operands[0], E_V2SImode)
              && register_operand (operands[1], E_V2SImode))
            {
              if (imm_or_reg_operand (operands[2], E_SImode)
                  && 
#line 1307 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 540; /* ashrv2si3_iwmmxt */
              if (imm_or_reg_operand (operands[2], E_DImode)
                  && 
#line 1391 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 552; /* ashrv2si3_di */
            }
          if (s_register_operand (operands[0], E_V2SImode)
              && s_register_operand (operands[1], E_V2SImode)
              && imm_for_neon_rshift_operand (operands[2], E_V2SImode)
              && 
#line 1090 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1240; /* vashrv2si3_imm */
          break;

        case 2:
          if (register_operand (operands[0], E_DImode)
              && register_operand (operands[1], E_DImode))
            {
              if (imm_or_reg_operand (operands[2], E_SImode)
                  && 
#line 1307 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 541; /* ashrdi3_iwmmxt */
              if (imm_or_reg_operand (operands[2], E_DImode)
                  && 
#line 1391 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 553; /* ashrdi3_di */
            }
          if (s_register_operand (operands[0], E_DImode)
              && s_register_operand (operands[1], E_DImode))
            {
              if (const_int_operand (operands[2], E_DImode)
                  && 
#line 1283 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed
   && INTVAL (operands[2]) > 0 && INTVAL (operands[2]) <= 64))
                return 1267; /* ashrdi3_neon_imm_noclobber */
              if (pnum_clobbers != NULL
                  && reg_or_int_operand (operands[2], E_SImode)
                  && 
#line 1309 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                {
                  *pnum_clobbers = 4;
                  return 1269; /* ashrdi3_neon */
                }
            }
          break;

        case 3:
          if (
#line 1090 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1236; /* vashrv8qi3_imm */
          break;

        case 4:
          if (
#line 1090 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1237; /* vashrv16qi3_imm */
          break;

        case 5:
          if (
#line 1090 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1239; /* vashrv8hi3_imm */
          break;

        case 6:
          if (
#line 1090 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1241; /* vashrv4si3_imm */
          break;

        default:
          break;
        }
      break;

    case LSHIFTRT:
      switch (pattern33 (x3))
        {
        case 0:
          if (register_operand (operands[0], E_V4HImode)
              && register_operand (operands[1], E_V4HImode))
            {
              if (imm_or_reg_operand (operands[2], E_SImode)
                  && 
#line 1328 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 542; /* lshrv4hi3_iwmmxt */
              if (register_operand (operands[2], E_DImode)
                  && 
#line 1412 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 554; /* lshrv4hi3_di */
            }
          if (s_register_operand (operands[0], E_V4HImode)
              && s_register_operand (operands[1], E_V4HImode)
              && imm_for_neon_rshift_operand (operands[2], E_V4HImode)
              && 
#line 1103 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1244; /* vlshrv4hi3_imm */
          break;

        case 1:
          if (register_operand (operands[0], E_V2SImode)
              && register_operand (operands[1], E_V2SImode))
            {
              if (imm_or_reg_operand (operands[2], E_SImode)
                  && 
#line 1328 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 543; /* lshrv2si3_iwmmxt */
              if (register_operand (operands[2], E_DImode)
                  && 
#line 1412 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 555; /* lshrv2si3_di */
            }
          if (s_register_operand (operands[0], E_V2SImode)
              && s_register_operand (operands[1], E_V2SImode)
              && imm_for_neon_rshift_operand (operands[2], E_V2SImode)
              && 
#line 1103 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1246; /* vlshrv2si3_imm */
          break;

        case 2:
          if (register_operand (operands[0], E_DImode)
              && register_operand (operands[1], E_DImode))
            {
              if (imm_or_reg_operand (operands[2], E_SImode)
                  && 
#line 1328 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 544; /* lshrdi3_iwmmxt */
              if (register_operand (operands[2], E_DImode)
                  && 
#line 1412 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return 556; /* lshrdi3_di */
            }
          if (s_register_operand (operands[0], E_DImode)
              && s_register_operand (operands[1], E_DImode))
            {
              if (const_int_operand (operands[2], E_DImode)
                  && 
#line 1293 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed
   && INTVAL (operands[2]) > 0 && INTVAL (operands[2]) <= 64))
                return 1268; /* lshrdi3_neon_imm_noclobber */
              if (pnum_clobbers != NULL
                  && reg_or_int_operand (operands[2], E_SImode)
                  && 
#line 1309 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                {
                  *pnum_clobbers = 4;
                  return 1270; /* lshrdi3_neon */
                }
            }
          break;

        case 3:
          if (
#line 1103 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1242; /* vlshrv8qi3_imm */
          break;

        case 4:
          if (
#line 1103 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1243; /* vlshrv16qi3_imm */
          break;

        case 5:
          if (
#line 1103 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1245; /* vlshrv8hi3_imm */
          break;

        case 6:
          if (
#line 1103 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1247; /* vlshrv4si3_imm */
          break;

        default:
          break;
        }
      break;

    case ASHIFT:
      res = recog_53 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    default:
      break;
    }
  x4 = XEXP (x3, 0);
  operands[1] = x4;
  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))
        {
          x5 = XEXP (x3, 1);
          operands[2] = x5;
          if (reg_or_int_operand (operands[2], E_SImode)
              && 
#line 4237 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return 131; /* *arm_shiftsi3 */
        }
    }
  if (register_operand (operands[1], E_SImode)
      && register_operand (operands[0], E_SImode))
    {
      res = recog_54 (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;
  x5 = XEXP (x3, 1);
  operands[2] = x5;
  if (low_reg_or_int_operand (operands[2], E_SImode))
    {
      operands[3] = x3;
      if (shift_operator (operands[3], E_SImode)
          && 
#line 1224 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 919; /* *thumb2_shiftsi3_short */
        }
    }
  if (!low_register_operand (operands[2], E_SImode)
      || GET_CODE (x3) != MULT
      || GET_MODE (x3) != E_SImode
      || !
#line 1380 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && optimize_size && reload_completed))
    return -1;
  *pnum_clobbers = 1;
  return 927; /* *thumb2_mulsi_short */
}

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];
  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 4281 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return -1;
      return 134; /* *not_shiftsi */

    case REG:
    case SUBREG:
      operands[1] = x4;
      switch (GET_MODE (operands[0]))
        {
        case E_DImode:
          if (!s_register_operand (operands[0], E_DImode)
              || GET_MODE (x3) != E_DImode
              || !s_register_operand (operands[1], E_DImode)
              || !
#line 5063 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          return 155; /* *one_cmpldi2_insn */

        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 5096 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return 156; /* *arm_one_cmplsi2 */
          if (register_operand (operands[0], E_SImode)
              && register_operand (operands[1], E_SImode)
              && 
#line 363 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return 828; /* *thumb1_one_cmplsi2 */
          if (pnum_clobbers == NULL
              || !low_register_operand (operands[0], E_SImode)
              || !low_register_operand (operands[1], E_SImode)
              || !
#line 1463 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
            return -1;
          *pnum_clobbers = 1;
          return 932; /* *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 916 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1156; /* one_cmplv8qi2 */

        case E_V16QImode:
          if (!s_register_operand (operands[0], E_V16QImode)
              || GET_MODE (x3) != E_V16QImode
              || !s_register_operand (operands[1], E_V16QImode)
              || !
#line 916 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1157; /* one_cmplv16qi2 */

        case E_V4HImode:
          if (!s_register_operand (operands[0], E_V4HImode)
              || GET_MODE (x3) != E_V4HImode
              || !s_register_operand (operands[1], E_V4HImode)
              || !
#line 916 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1158; /* one_cmplv4hi2 */

        case E_V8HImode:
          if (!s_register_operand (operands[0], E_V8HImode)
              || GET_MODE (x3) != E_V8HImode
              || !s_register_operand (operands[1], E_V8HImode)
              || !
#line 916 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1159; /* one_cmplv8hi2 */

        case E_V2SImode:
          if (!s_register_operand (operands[0], E_V2SImode)
              || GET_MODE (x3) != E_V2SImode
              || !s_register_operand (operands[1], E_V2SImode)
              || !
#line 916 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1160; /* one_cmplv2si2 */

        case E_V4SImode:
          if (!s_register_operand (operands[0], E_V4SImode)
              || GET_MODE (x3) != E_V4SImode
              || !s_register_operand (operands[1], E_V4SImode)
              || !
#line 916 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1161; /* one_cmplv4si2 */

        case E_V4HFmode:
          if (!s_register_operand (operands[0], E_V4HFmode)
              || GET_MODE (x3) != E_V4HFmode
              || !s_register_operand (operands[1], E_V4HFmode)
              || !
#line 916 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1162; /* one_cmplv4hf2 */

        case E_V8HFmode:
          if (!s_register_operand (operands[0], E_V8HFmode)
              || GET_MODE (x3) != E_V8HFmode
              || !s_register_operand (operands[1], E_V8HFmode)
              || !
#line 916 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1163; /* one_cmplv8hf2 */

        case E_V2SFmode:
          if (!s_register_operand (operands[0], E_V2SFmode)
              || GET_MODE (x3) != E_V2SFmode
              || !s_register_operand (operands[1], E_V2SFmode)
              || !
#line 916 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1164; /* one_cmplv2sf2 */

        case E_V4SFmode:
          if (!s_register_operand (operands[0], E_V4SFmode)
              || GET_MODE (x3) != E_V4SFmode
              || !s_register_operand (operands[1], E_V4SFmode)
              || !
#line 916 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1165; /* one_cmplv4sf2 */

        case E_V2DImode:
          if (!s_register_operand (operands[0], E_V2DImode)
              || GET_MODE (x3) != E_V2DImode
              || !s_register_operand (operands[1], E_V2DImode)
              || !
#line 916 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1166; /* one_cmplv2di2 */

        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 7660 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return 207; /* *mov_notscc */
          if (arm_comparison_operator_mode (operands[1], E_SImode)
              && 
#line 421 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !arm_restrict_it))
            return 892; /* *thumb2_mov_notscc */
        }
      if (!low_register_operand (operands[0], E_SImode)
          || !arm_comparison_operator_mode (operands[1], E_SImode)
          || !
#line 441 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_restrict_it))
        return -1;
      return 893; /* *thumb2_mov_notscc_strict_it */

    case SIGN_EXTRACT:
      if (pnum_clobbers == NULL
          || pattern130 (x3, 1) != 0)
        return -1;
      x7 = XEXP (x4, 2);
      operands[2] = x7;
      if (!const_int_operand (operands[2], E_SImode)
          || !
#line 11228 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      *pnum_clobbers = 1;
      return 305; /* *not_signextract_onebit */

    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];
  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 4899 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            {
              *pnum_clobbers = 1;
              return 153; /* *arm_abssi2 */
            }
          if (
#line 334 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            {
              *pnum_clobbers = 1;
              return 826; /* *thumb1_abssi2 */
            }
          if (!
#line 131 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
            return -1;
          *pnum_clobbers = 1;
          return 881; /* *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 833 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
            return -1;
          return 668; /* *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 842 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
            return -1;
          return 669; /* *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 910 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 672; /* 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 924 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1167; /* absv8qi2 */

        case E_V16QImode:
          if (!s_register_operand (operands[0], E_V16QImode)
              || GET_MODE (x3) != E_V16QImode
              || !s_register_operand (operands[1], E_V16QImode)
              || !
#line 924 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1168; /* absv16qi2 */

        case E_V4HImode:
          if (!s_register_operand (operands[0], E_V4HImode)
              || GET_MODE (x3) != E_V4HImode
              || !s_register_operand (operands[1], E_V4HImode)
              || !
#line 924 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1169; /* absv4hi2 */

        case E_V8HImode:
          if (!s_register_operand (operands[0], E_V8HImode)
              || GET_MODE (x3) != E_V8HImode
              || !s_register_operand (operands[1], E_V8HImode)
              || !
#line 924 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1170; /* absv8hi2 */

        case E_V2SImode:
          if (!s_register_operand (operands[0], E_V2SImode)
              || GET_MODE (x3) != E_V2SImode
              || !s_register_operand (operands[1], E_V2SImode)
              || !
#line 924 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1171; /* absv2si2 */

        case E_V4SImode:
          if (!s_register_operand (operands[0], E_V4SImode)
              || GET_MODE (x3) != E_V4SImode
              || !s_register_operand (operands[1], E_V4SImode)
              || !
#line 924 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1172; /* absv4si2 */

        case E_V2SFmode:
          if (!s_register_operand (operands[0], E_V2SFmode)
              || GET_MODE (x3) != E_V2SFmode
              || !s_register_operand (operands[1], E_V2SFmode)
              || !
#line 924 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1173; /* absv2sf2 */

        case E_V4SFmode:
          if (!s_register_operand (operands[0], E_V4SFmode)
              || GET_MODE (x3) != E_V4SFmode
              || !s_register_operand (operands[1], E_V4SFmode)
              || !
#line 924 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1174; /* absv4sf2 */

        case E_V8HFmode:
          if (!s_register_operand (operands[0], E_V8HFmode)
              || GET_MODE (x3) != E_V8HFmode
              || !s_register_operand (operands[1], E_V8HFmode)
              || !
#line 986 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1184; /* absv8hf2 */

        case E_V4HFmode:
          if (!s_register_operand (operands[0], E_V4HFmode)
              || GET_MODE (x3) != E_V4HFmode
              || !s_register_operand (operands[1], E_V4HFmode)
              || !
#line 986 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON_FP16INST))
            return -1;
          return 1186; /* 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 (pattern150 (x3, E_V4HFmode) != 0
              || !(
#line 6809 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && flag_unsafe_math_optimizations) && 
#line 123 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
            return -1;
          return 2633; /* neon_vabdv4hf_2 */

        case E_V8HFmode:
          if (pattern150 (x3, E_V8HFmode) != 0
              || !(
#line 6809 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && flag_unsafe_math_optimizations) && 
#line 124 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
            return -1;
          return 2634; /* neon_vabdv8hf_2 */

        case E_V2SFmode:
          if (pattern150 (x3, E_V2SFmode) != 0
              || !
#line 6809 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && flag_unsafe_math_optimizations))
            return -1;
          return 2635; /* neon_vabdv2sf_2 */

        case E_V4SFmode:
          if (pattern150 (x3, E_V4SFmode) != 0
              || !
#line 6809 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && flag_unsafe_math_optimizations))
            return -1;
          return 2636; /* neon_vabdv4sf_2 */

        default:
          return -1;
        }

    case UNSPEC:
      if (XVECLEN (x4, 0) != 2
          || XINT (x4, 1) != 255)
        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 (pattern257 (x3, E_V4HFmode) != 0
              || !(
#line 6819 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && flag_unsafe_math_optimizations) && 
#line 123 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
            return -1;
          return 2637; /* neon_vabdv4hf_3 */

        case E_V8HFmode:
          if (pattern257 (x3, E_V8HFmode) != 0
              || !(
#line 6819 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && flag_unsafe_math_optimizations) && 
#line 124 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_NEON_FP16INST)))
            return -1;
          return 2638; /* neon_vabdv8hf_3 */

        case E_V2SFmode:
          if (pattern257 (x3, E_V2SFmode) != 0
              || !
#line 6819 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && flag_unsafe_math_optimizations))
            return -1;
          return 2639; /* neon_vabdv2sf_3 */

        case E_V4SFmode:
          if (pattern257 (x3, E_V4SFmode) != 0
              || !
#line 6819 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && flag_unsafe_math_optimizations))
            return -1;
          return 2640; /* neon_vabdv4sf_3 */

        default:
          return -1;
        }

    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];
  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_66 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    case SMIN:
      res = recog_67 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    case UMAX:
      switch (pattern37 (x3, pnum_clobbers))
        {
        case 0:
          if (
#line 3812 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            {
              *pnum_clobbers = 1;
              return 122; /* *arm_umaxsi3 */
            }
          break;

        case 1:
          if (register_operand (operands[0], E_V2SImode)
              && register_operand (operands[1], E_V2SImode)
              && register_operand (operands[2], E_V2SImode)
              && 
#line 922 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 503; /* *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 1034 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1212; /* *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 922 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 504; /* *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 1034 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1210; /* *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 922 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 505; /* *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 1034 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1208; /* *umaxv8qi3_neon */
          break;

        case 4:
          if (
#line 1034 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1209; /* *umaxv16qi3_neon */
          break;

        case 5:
          if (
#line 1034 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1211; /* *umaxv8hi3_neon */
          break;

        case 6:
          if (
#line 1034 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1213; /* *umaxv4si3_neon */
          break;

        case 7:
          if (
#line 1513 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1293; /* quad_halves_umaxv4si */
          break;

        case 8:
          if (
#line 1541 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1301; /* quad_halves_umaxv8hi */
          break;

        case 9:
          if (
#line 1560 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1306; /* quad_halves_umaxv16qi */
          break;

        default:
          break;
        }
      break;

    case UMIN:
      switch (pattern37 (x3, pnum_clobbers))
        {
        case 0:
          if (
#line 3845 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            {
              *pnum_clobbers = 1;
              return 123; /* *arm_uminsi3 */
            }
          break;

        case 1:
          if (register_operand (operands[0], E_V2SImode)
              && register_operand (operands[1], E_V2SImode)
              && register_operand (operands[2], E_V2SImode)
              && 
#line 942 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 509; /* *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 1025 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1206; /* *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 942 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 510; /* *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 1025 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1204; /* *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 942 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 511; /* *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 1025 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1202; /* *uminv8qi3_neon */
          break;

        case 4:
          if (
#line 1025 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1203; /* *uminv16qi3_neon */
          break;

        case 5:
          if (
#line 1025 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1205; /* *uminv8hi3_neon */
          break;

        case 6:
          if (
#line 1025 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1207; /* *uminv4si3_neon */
          break;

        case 7:
          if (
#line 1513 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1292; /* quad_halves_uminv4si */
          break;

        case 8:
          if (
#line 1541 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1300; /* quad_halves_uminv8hi */
          break;

        case 9:
          if (
#line 1560 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return 1305; /* 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 3869 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && optimize_function_for_size_p (cfun) && !arm_restrict_it))
        {
          *pnum_clobbers = 1;
          return 124; /* *store_minmaxsi */
        }
    }
  if (!arm_rhs_operand (operands[2], E_SImode)
      || !s_register_operand (operands[0], E_SImode)
      || GET_MODE (x3) != E_SImode)
    return -1;
  switch (GET_CODE (x3))
    {
    case SMAX:
      if (!
#line 48 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return -1;
      *pnum_clobbers = 1;
      return 877; /* *thumb2_smaxsi3 */

    case SMIN:
      if (!
#line 69 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return -1;
      *pnum_clobbers = 1;
      return 878; /* *thumb2_sminsi3 */

    case UMAX:
      if (!
#line 90 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return -1;
      *pnum_clobbers = 1;
      return 879; /* *thumb32_umaxsi3 */

    case UMIN:
      if (!
#line 111 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return -1;
      *pnum_clobbers = 1;
      return 880; /* *thumb2_uminsi3 */

    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];
  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 (XVECLEN (x4, 0) != 1
          || XINT (x4, 1) != 25
          || pattern177 (x3) != 0
          || !
#line 4509 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(unaligned_access && TARGET_32BIT))
        return -1;
      return 138; /* unaligned_loadhis */

    case REG:
    case SUBREG:
    case MEM:
      operands[1] = x4;
      switch (GET_MODE (operands[0]))
        {
        case E_DImode:
          if (!s_register_operand (operands[0], E_DImode)
              || GET_MODE (x3) != E_DImode)
            return -1;
          if (arm_reg_or_extendqisi_mem_op (operands[1], E_QImode)
              && 
#line 5269 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6))
            return 162; /* extendqidi2 */
          if (nonimmediate_operand (operands[1], E_HImode)
              && 
#line 5269 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6))
            return 163; /* extendhidi2 */
          if (!s_register_operand (operands[1], E_SImode)
              || !
#line 5269 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT ))
            return -1;
          return 164; /* extendsidi2 */

        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 5604 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch4 && !arm_arch6))
                    return 172; /* *arm_extendhisi2 */
                  if (
#line 5617 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6))
                    return 173; /* *arm_extendhisi2_v6 */
                }
              if (arm_reg_or_extendqisi_mem_op (operands[1], E_QImode))
                {
                  if (
#line 5698 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch4 && !arm_arch6))
                    return 176; /* *arm_extendqisi */
                  if (
#line 5711 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch6))
                    return 177; /* *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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                    {
                      *pnum_clobbers = 1;
                      return 832; /* thumb1_extendhisi2 */
                    }
                  break;

                case E_QImode:
                  if (nonimmediate_operand (operands[1], E_QImode)
                      && 
#line 583 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                    return 833; /* thumb1_extendqisi2 */
                  break;

                default:
                  break;
                }
            }
          if (!s_register_operand (operands[0], E_SImode)
              || !nonimmediate_operand (operands[1], E_QImode)
              || !
#line 1047 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_arch6))
            return -1;
          return 910; /* *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 5661 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch4))
            return -1;
          return 175; /* *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 6665 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2615; /* 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 6665 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2617; /* 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 6665 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2619; /* neon_unpacks_v2si */

        default:
          return -1;
        }

    case BSWAP:
      if (GET_MODE (x4) != E_HImode
          || !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_HImode)
          || !
#line 11906 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(arm_arch6))
        return -1;
      return 332; /* *arm_revsh */

    case VEC_SELECT:
      x6 = XEXP (x4, 1);
      if (GET_CODE (x6) != PARALLEL)
        return -1;
      x5 = XEXP (x4, 0);
      operands[1] = x5;
      if (XVECLEN (x6, 0) == 1)
        {
          res = recog_189 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      operands[2] = x6;
      switch (GET_MODE (operands[0]))
        {
        case E_V8HImode:
          if (pattern230 (x3, E_V16QImode, E_V8QImode, E_V8HImode) != 0)
            return -1;
          if (vect_par_constant_low (operands[2], E_V16QImode)
              && 
#line 6502 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return 2585; /* neon_vec_unpacks_lo_v16qi */
          if (!vect_par_constant_high (operands[2], E_V16QImode)
              || !
#line 6512 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return -1;
          return 2591; /* neon_vec_unpacks_hi_v16qi */

        case E_V4SImode:
          if (pattern230 (x3, E_V8HImode, E_V4HImode, E_V4SImode) != 0)
            return -1;
          if (vect_par_constant_low (operands[2], E_V8HImode)
              && 
#line 6502 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return 2587; /* neon_vec_unpacks_lo_v8hi */
          if (!vect_par_constant_high (operands[2], E_V8HImode)
              || !
#line 6512 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return -1;
          return 2593; /* neon_vec_unpacks_hi_v8hi */

        case E_V2DImode:
          if (pattern230 (x3, E_V4SImode, E_V2SImode, E_V2DImode) != 0)
            return -1;
          if (vect_par_constant_low (operands[2], E_V4SImode)
              && 
#line 6502 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return 2589; /* neon_vec_unpacks_lo_v4si */
          if (!vect_par_constant_high (operands[2], E_V4SImode)
              || !
#line 6512 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return -1;
          return 2595; /* neon_vec_unpacks_hi_v4si */

        default:
          return -1;
        }

    case ASHIFT:
      switch (pattern105 (x3))
        {
        case 0:
          if (!
#line 6627 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2609; /* neon_vec_sshiftl_v8qi */

        case 1:
          if (!
#line 6627 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2611; /* neon_vec_sshiftl_v4hi */

        case 2:
          if (!
#line 6627 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 2613; /* neon_vec_sshiftl_v2si */

        default:
          return -1;
        }

    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];
  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 (pattern181 (x3))
        {
        case 0:
          if (!
#line 955 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 512; /* iwmmxt_wpackhss */

        case 1:
          if (!
#line 966 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 513; /* iwmmxt_wpackwss */

        case 2:
          if (!
#line 977 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 514; /* 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 (pattern181 (x3))
            {
            case 0:
              if (!
#line 988 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 515; /* iwmmxt_wpackhus */

            case 1:
              if (!
#line 999 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 516; /* iwmmxt_wpackwus */

            case 2:
              if (!
#line 1010 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
                return -1;
              return 517; /* 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
              || pattern302 (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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 612; /* 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 (GET_CODE (x5) != US_TRUNCATE
          || GET_MODE (x5) != E_V4QImode)
        return -1;
      x20 = XEXP (x5, 0);
      if (GET_CODE (x20) != SS_PLUS
          || GET_MODE (x20) != E_V4HImode)
        return -1;
      x21 = XEXP (x20, 1);
      if (pattern359 (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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT))
        return -1;
      return 611; /* iwmmxt_waddbhusm */

    case REG:
    case SUBREG:
      switch (pattern10 (x3))
        {
        case 0:
          if (!
#line 4133 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1944; /* neon_vcombinev8qi */

        case 1:
          if (!
#line 4133 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1945; /* neon_vcombinev4hi */

        case 2:
          if (!
#line 4133 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1946; /* neon_vcombinev4hf */

        case 3:
          if (!
#line 4133 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1947; /* neon_vcombinev2si */

        case 4:
          if (!
#line 4133 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1948; /* neon_vcombinev2sf */

        case 5:
          if (!
#line 4133 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1949; /* 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 (pattern180 (x3, E_V8HImode, E_V8QImode, E_V16QImode) != 0
              || !
#line 6776 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return -1;
          return 2627; /* vec_pack_trunc_v8hi */

        case E_V8HImode:
          if (pattern180 (x3, E_V4SImode, E_V4HImode, E_V8HImode) != 0
              || !
#line 6776 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return -1;
          return 2628; /* vec_pack_trunc_v4si */

        case E_V4SImode:
          if (pattern180 (x3, E_V2DImode, E_V2SImode, E_V4SImode) != 0
              || !
#line 6776 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !BYTES_BIG_ENDIAN))
            return -1;
          return 2629; /* vec_pack_trunc_v2di */

        default:
          return -1;
        }

    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];
  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 779 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return 489; /* 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 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 995; /* vec_extractv2sisi */

            case E_V4SImode:
              if (!s_register_operand (operands[1], E_V4SImode)
                  || !
#line 433 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1000; /* 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 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 992; /* vec_extractv8qiqi */

            case E_V16QImode:
              if (!s_register_operand (operands[1], E_V16QImode)
                  || !
#line 433 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 997; /* 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 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 993; /* vec_extractv4hihi */

            case E_V8HImode:
              if (!s_register_operand (operands[1], E_V8HImode)
                  || !
#line 433 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 998; /* 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 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 994; /* vec_extractv4hfhf */

            case E_V8HFmode:
              if (!s_register_operand (operands[1], E_V8HFmode)
                  || !
#line 433 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 999; /* vec_extractv8hfhf */

            default:
              return -1;
            }

        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 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 996; /* vec_extractv2sfsf */

            case E_V4SFmode:
              if (!s_register_operand (operands[1], E_V4SFmode)
                  || !
#line 433 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1001; /* 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)
              || !
#line 459 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1002; /* vec_extractv2didi */

        default:
          return -1;
        }

    case ZERO_EXTEND:
      switch (pattern155 (x2))
        {
        case 0:
          if (!
#line 1150 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 524; /* iwmmxt_wunpckehub */

        case 1:
          if (!
#line 1218 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 530; /* iwmmxt_wunpckelub */

        case 2:
          if (!
#line 1161 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 525; /* iwmmxt_wunpckehuh */

        case 3:
          if (!
#line 1229 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 531; /* iwmmxt_wunpckeluh */

        case 4:
          if (!
#line 1172 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 526; /* iwmmxt_wunpckehuw */

        case 5:
          if (!
#line 1240 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 532; /* iwmmxt_wunpckeluw */

        default:
          return -1;
        }

    case SIGN_EXTEND:
      switch (pattern155 (x2))
        {
        case 0:
          if (!
#line 1184 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 527; /* iwmmxt_wunpckehsb */

        case 1:
          if (!
#line 1252 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 533; /* iwmmxt_wunpckelsb */

        case 2:
          if (!
#line 1195 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 528; /* iwmmxt_wunpckehsh */

        case 3:
          if (!
#line 1263 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 534; /* iwmmxt_wunpckelsh */

        case 4:
          if (!
#line 1206 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 529; /* iwmmxt_wunpckehsw */

        case 5:
          if (!
#line 1274 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
            return -1;
          return 535; /* iwmmxt_wunpckelsw */

        default:
          return -1;
        }

    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 (pattern4 (x1))
    {
    case 0:
      if (register_operand (operands[0], E_V8QImode)
          && register_operand (operands[1], E_V8QImode)
          && register_operand (operands[2], E_V8QImode)
          && 
#line 430 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 461; /* sssubv8qi3 */
      if (!s_register_operand (operands[0], E_V8QImode)
          || !s_register_operand (operands[1], E_V8QImode)
          || !s_register_operand (operands[2], E_V8QImode)
          || !
#line 1847 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1335; /* *ss_subv8qi_neon */

    case 1:
      if (register_operand (operands[0], E_V4HImode)
          && register_operand (operands[1], E_V4HImode)
          && register_operand (operands[2], E_V4HImode)
          && 
#line 440 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 462; /* sssubv4hi3 */
      if (!s_register_operand (operands[0], E_V4HImode)
          || !s_register_operand (operands[1], E_V4HImode)
          || !s_register_operand (operands[2], E_V4HImode)
          || !
#line 1847 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1336; /* *ss_subv4hi_neon */

    case 2:
      if (register_operand (operands[0], E_V2SImode)
          && register_operand (operands[1], E_V2SImode)
          && register_operand (operands[2], E_V2SImode)
          && 
#line 450 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 463; /* sssubv2si3 */
      if (!s_register_operand (operands[0], E_V2SImode)
          || !s_register_operand (operands[1], E_V2SImode)
          || !s_register_operand (operands[2], E_V2SImode)
          || !
#line 1847 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1337; /* *ss_subv2si_neon */

    case 3:
      if (!
#line 1847 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1338; /* *ss_subv2sf_neon */

    case 4:
      if (!
#line 91 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2810; /* sssubv4qq3 */

    case 5:
      if (!
#line 91 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2811; /* sssubv2hq3 */

    case 6:
      if (!
#line 91 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2812; /* sssubqq3 */

    case 7:
      if (!
#line 91 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2813; /* sssubhq3 */

    case 8:
      if (!
#line 91 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2814; /* sssubv2ha3 */

    case 9:
      if (!
#line 91 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2815; /* sssubha3 */

    case 10:
      if (!
#line 91 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2816; /* sssubsq3 */

    case 11:
      if (!
#line 91 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2817; /* sssubsa3 */

    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 (pattern4 (x1))
    {
    case 0:
      if (register_operand (operands[0], E_V8QImode)
          && register_operand (operands[1], E_V8QImode)
          && register_operand (operands[2], E_V8QImode)
          && 
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 452; /* ssaddv8qi3 */
      if (!s_register_operand (operands[0], E_V8QImode)
          || !s_register_operand (operands[1], E_V8QImode)
          || !s_register_operand (operands[2], E_V8QImode)
          || !
#line 1829 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1327; /* *ss_addv8qi_neon */

    case 1:
      if (register_operand (operands[0], E_V4HImode)
          && register_operand (operands[1], E_V4HImode)
          && register_operand (operands[2], E_V4HImode)
          && 
#line 370 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 453; /* ssaddv4hi3 */
      if (!s_register_operand (operands[0], E_V4HImode)
          || !s_register_operand (operands[1], E_V4HImode)
          || !s_register_operand (operands[2], E_V4HImode)
          || !
#line 1829 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1328; /* *ss_addv4hi_neon */

    case 2:
      if (register_operand (operands[0], E_V2SImode)
          && register_operand (operands[1], E_V2SImode)
          && register_operand (operands[2], E_V2SImode)
          && 
#line 380 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 454; /* ssaddv2si3 */
      if (!s_register_operand (operands[0], E_V2SImode)
          || !s_register_operand (operands[1], E_V2SImode)
          || !s_register_operand (operands[2], E_V2SImode)
          || !
#line 1829 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1329; /* *ss_addv2si_neon */

    case 3:
      if (!
#line 1829 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1330; /* *ss_addv2sf_neon */

    case 4:
      if (!
#line 53 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2783; /* ssaddv4qq3 */

    case 5:
      if (!
#line 53 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2784; /* ssaddv2hq3 */

    case 6:
      if (!
#line 53 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2785; /* ssaddqq3 */

    case 7:
      if (!
#line 53 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2786; /* ssaddhq3 */

    case 8:
      if (!
#line 53 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2787; /* ssaddv2ha3 */

    case 9:
      if (!
#line 53 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2788; /* ssaddha3 */

    case 10:
      if (!
#line 53 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2789; /* ssaddsq3 */

    case 11:
      if (!
#line 53 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2790; /* ssaddsa3 */

    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 (pattern5 (x1))
    {
    case 0:
      if (register_operand (operands[0], E_V8QImode)
          && register_operand (operands[1], E_V8QImode)
          && register_operand (operands[2], E_V8QImode)
          && 
#line 460 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 464; /* ussubv8qi3 */
      if (!s_register_operand (operands[0], E_V8QImode)
          || !s_register_operand (operands[1], E_V8QImode)
          || !s_register_operand (operands[2], E_V8QImode)
          || !
#line 1856 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1339; /* *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 470 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 465; /* ussubv4hi3 */
      if (!s_register_operand (operands[0], E_V4HImode)
          || !s_register_operand (operands[1], E_V4HImode)
          || !s_register_operand (operands[2], E_V4HImode)
          || !
#line 1856 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1340; /* *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 480 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 466; /* ussubv2si3 */
      if (!s_register_operand (operands[0], E_V2SImode)
          || !s_register_operand (operands[1], E_V2SImode)
          || !s_register_operand (operands[2], E_V2SImode)
          || !
#line 1856 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1341; /* *us_subv2si_neon */

    case 3:
      if (!
#line 1856 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1342; /* *us_subv2sf_neon */

    case 4:
      if (!
#line 82 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2804; /* ussubv4uqq3 */

    case 5:
      if (!
#line 82 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2805; /* ussubv2uhq3 */

    case 6:
      if (!
#line 82 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2806; /* ussubuqq3 */

    case 7:
      if (!
#line 82 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2807; /* ussubuhq3 */

    case 8:
      if (!
#line 82 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2808; /* ussubv2uha3 */

    case 9:
      if (!
#line 82 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2809; /* ussubuha3 */

    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 (pattern5 (x1))
    {
    case 0:
      if (register_operand (operands[0], E_V8QImode)
          && register_operand (operands[1], E_V8QImode)
          && register_operand (operands[2], E_V8QImode)
          && 
#line 390 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 455; /* usaddv8qi3 */
      if (!s_register_operand (operands[0], E_V8QImode)
          || !s_register_operand (operands[1], E_V8QImode)
          || !s_register_operand (operands[2], E_V8QImode)
          || !
#line 1838 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1331; /* *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 400 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 456; /* usaddv4hi3 */
      if (!s_register_operand (operands[0], E_V4HImode)
          || !s_register_operand (operands[1], E_V4HImode)
          || !s_register_operand (operands[2], E_V4HImode)
          || !
#line 1838 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1332; /* *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 410 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT))
        return 457; /* usaddv2si3 */
      if (!s_register_operand (operands[0], E_V2SImode)
          || !s_register_operand (operands[1], E_V2SImode)
          || !s_register_operand (operands[2], E_V2SImode)
          || !
#line 1838 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1333; /* *us_addv2si_neon */

    case 3:
      if (!
#line 1838 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1334; /* *us_addv2sf_neon */

    case 4:
      if (!
#line 44 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2777; /* usaddv4uqq3 */

    case 5:
      if (!
#line 44 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2778; /* usaddv2uhq3 */

    case 6:
      if (!
#line 44 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2779; /* usadduqq3 */

    case 7:
      if (!
#line 44 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2780; /* usadduhq3 */

    case 8:
      if (!
#line 44 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2781; /* usaddv2uha3 */

    case 9:
      if (!
#line 44 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2782; /* usadduha3 */

    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];
  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 1473 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
                return -1;
              return 729; /* *truncsisf2_vfp */

            case E_DFmode:
              if (!s_register_operand (operands[1], E_DFmode)
                  || !
#line 1482 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
                return -1;
              return 730; /* *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 1754 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP3 && !flag_rounding_math))
            return -1;
          return 754; /* *combine_vcvtf2i */

        default:
          return -1;
        }

    case UNSPEC:
      switch (pattern112 (x3))
        {
        case 0:
          if (!
#line 1912 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
            return -1;
          return 784; /* lceilsfsi2 */

        case 1:
          if (!(
#line 1912 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 52 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
            return -1;
          return 790; /* lceildfsi2 */

        case 2:
          if (!
#line 1912 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
            return -1;
          return 785; /* lfloorsfsi2 */

        case 3:
          if (!(
#line 1912 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 52 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
            return -1;
          return 791; /* lfloordfsi2 */

        case 4:
          if (!
#line 1912 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
            return -1;
          return 786; /* lroundsfsi2 */

        case 5:
          if (!(
#line 1912 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 52 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
            return -1;
          return 792; /* lrounddfsi2 */

        case 6:
          if (!
#line 787 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1087; /* neon_vcvtpv2sfv2si */

        case 7:
          if (!
#line 787 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1093; /* neon_vcvtpv4sfv4si */

        case 8:
          if (!
#line 787 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1088; /* neon_vcvtmv2sfv2si */

        case 9:
          if (!
#line 787 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1094; /* neon_vcvtmv4sfv4si */

        case 10:
          if (!
#line 787 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1089; /* neon_vcvtav2sfv2si */

        case 11:
          if (!
#line 787 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
            return -1;
          return 1095; /* neon_vcvtav4sfv4si */

        default:
          return -1;
        }

    case REG:
    case SUBREG:
      switch (pattern113 (x3))
        {
        case 0:
          if (!
#line 4185 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1954; /* fix_truncv2sfv2si2 */

        case 1:
          if (!
#line 4185 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1955; /* fix_truncv4sfv4si2 */

        default:
          return -1;
        }

    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, x6;
  int res ATTRIBUTE_UNUSED;
  if (pnum_clobbers != NULL)
    {
      x2 = XEXP (x1, 1);
      if (pattern8 (x2, ZERO_EXTRACT, NE) == 0)
        {
          x3 = XEXP (x2, 0);
          x4 = XEXP (x3, 2);
          if (GET_CODE (x4) == CONST_INT)
            {
              operands[3] = x4;
              if (const_int_operand (operands[3], E_SImode)
                  && pattern250 (x1) == 0
                  && 
#line 2552 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 88; /* *ne_zeroextractsi */
                }
              if (XWINT (x4, 0) == 0L
                  && pattern250 (x1) == 0
                  && 
#line 2590 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
                {
                  *pnum_clobbers = 1;
                  return 89; /* *ne_zeroextractsi_shifted */
                }
            }
        }
    }
  x2 = XEXP (x1, 1);
  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])
        {
          x6 = XEXP (x1, 0);
          operands[0] = x6;
          if (s_register_operand (operands[0], E_SImode))
            {
              x3 = XEXP (x2, 0);
              operands[2] = x3;
              if (cc_register (operands[2], E_VOIDmode)
                  && 
#line 7624 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
                return 205; /* *mov_scc */
            }
        }
    }
  if (pnum_clobbers != NULL
      && arm_comparison_operator (operands[1], E_SImode))
    {
      x6 = XEXP (x1, 0);
      operands[0] = x6;
      if (s_register_operand (operands[0], E_SImode))
        {
          x3 = XEXP (x2, 0);
          operands[2] = x3;
          if (s_register_operand (operands[2], E_SImode))
            {
              x5 = XEXP (x2, 1);
              operands[3] = x5;
              if (arm_add_operand (operands[3], E_SImode)
                  && 
#line 9331 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                {
                  *pnum_clobbers = 1;
                  return 258; /* *compare_scc */
                }
            }
        }
    }
  x6 = XEXP (x1, 0);
  operands[0] = x6;
  if (!s_register_operand (operands[0], E_SImode))
    return -1;
  if (GET_CODE (x2) == LTU
      && GET_MODE (x2) == E_SImode)
    {
      x3 = XEXP (x2, 0);
      operands[1] = x3;
      if (s_register_operand (operands[1], E_SImode))
        {
          x5 = XEXP (x2, 1);
          operands[2] = x5;
          if (thumb1_cmp_operand (operands[2], E_SImode)
              && 
#line 1675 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return 857; /* cstoresi_ltu_thumb1 */
        }
    }
  x5 = XEXP (x2, 1);
  if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
    return -1;
  operands[1] = x2;
  if (!arm_comparison_operator_mode (operands[1], E_SImode))
    return -1;
  x3 = XEXP (x2, 0);
  operands[2] = x3;
  if (!cc_register (operands[2], E_VOIDmode)
      || !
#line 355 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
    return -1;
  return 889; /* *thumb2_mov_scc */
}

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;
  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 11735 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(arm_arch6))
        return -1;
      return 331; /* *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 11919 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(arm_arch6))
        return -1;
      return 333; /* *arm_rev16 */

    case E_V4HImode:
      if (!register_operand (operands[0], E_V4HImode)
          || GET_MODE (x3) != E_V4HImode
          || !register_operand (operands[1], E_V4HImode)
          || !
#line 3448 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1794; /* neon_bswapv4hi */

    case E_V8HImode:
      if (!register_operand (operands[0], E_V8HImode)
          || GET_MODE (x3) != E_V8HImode
          || !register_operand (operands[1], E_V8HImode)
          || !
#line 3448 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1795; /* neon_bswapv8hi */

    case E_V2SImode:
      if (!register_operand (operands[0], E_V2SImode)
          || GET_MODE (x3) != E_V2SImode
          || !register_operand (operands[1], E_V2SImode)
          || !
#line 3448 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1796; /* neon_bswapv2si */

    case E_V4SImode:
      if (!register_operand (operands[0], E_V4SImode)
          || GET_MODE (x3) != E_V4SImode
          || !register_operand (operands[1], E_V4SImode)
          || !
#line 3448 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1797; /* neon_bswapv4si */

    case E_V2DImode:
      if (!register_operand (operands[0], E_V2DImode)
          || GET_MODE (x3) != E_V2DImode
          || !register_operand (operands[1], E_V2DImode)
          || !
#line 3448 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
        return -1;
      return 1798; /* neon_bswapv2di */

    default:
      return -1;
    }
}

static int
recog_218 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, 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 217 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT
   && (   register_operand (operands[0], SImode)
       || register_operand (operands[1], SImode))))
        return 436; /* *cond_iwmmxt_movsi_insn */
      if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6082 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 3826; /* *p *arm_movsi_insn */

    case E_HImode:
      if (nonimmediate_operand (operands[0], E_HImode)
          && general_operand (operands[1], E_HImode)
          && (
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6730 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM
   && arm_arch4 && !TARGET_HARD_FLOAT
   && (register_operand (operands[0], HImode)
       || register_operand (operands[1], HImode)))))
        return 3829; /* *p *movhi_insn_arch4 */
      if (s_register_operand (operands[0], E_HImode)
          && arm_rhs_operand (operands[1], E_HImode)
          && (
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6757 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && !TARGET_HARD_FLOAT)))
        return 3830; /* *p *movhi_bytes */
      if (!nonimmediate_operand (operands[0], E_HImode)
          || !general_operand (operands[1], E_HImode))
        return -1;
      if ((
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 29 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_ARM && TARGET_HARD_FLOAT
  && !TARGET_VFP_FP16INST
  && (register_operand (operands[0], HImode)
       || register_operand (operands[1], HImode)))))
        return 4140; /* *p *arm_movhi_vfp */
      if ((
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 80 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && TARGET_HARD_FLOAT
  && !TARGET_VFP_FP16INST
  && (register_operand (operands[0], HImode)
       || register_operand (operands[1], HImode)))))
        return 4141; /* *p *thumb2_movhi_vfp */
      if ((
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 126 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_ARM && TARGET_VFP_FP16INST
  && (register_operand (operands[0], HImode)
       || register_operand (operands[1], HImode)))))
        return 4142; /* *p *arm_movhi_fp16 */
      if ((
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 176 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && TARGET_VFP_FP16INST
  && (register_operand (operands[0], HImode)
       || register_operand (operands[1], HImode)))))
        return 4143; /* *p *thumb2_movhi_fp16 */
      if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 305 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2
  && (register_operand (operands[0], HImode)
     || register_operand (operands[1], HImode)))))
        return -1;
      return 4219; /* *p *thumb2_movhi_insn */

    case E_QImode:
      if (!nonimmediate_operand (operands[0], E_QImode)
          || !general_operand (operands[1], E_QImode)
          || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6872 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (   register_operand (operands[0], QImode)
       || register_operand (operands[1], QImode)))))
        return -1;
      return 3831; /* *p *arm_movqi_insn */

    case E_HFmode:
      if (!nonimmediate_operand (operands[0], E_HFmode)
          || !general_operand (operands[1], E_HFmode))
        return -1;
      if ((
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6917 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && !TARGET_HARD_FLOAT
   && (	  s_register_operand (operands[0], HFmode)
       || s_register_operand (operands[1], HFmode)))))
        return 3832; /* *p *arm32_movhf */
      if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 375 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT
   && TARGET_VFP_FP16INST
   && (s_register_operand (operands[0], HFmode)
       || s_register_operand (operands[1], HFmode)))))
        return -1;
      return 4147; /* *p *movhf_vfp_fp16 */

    case E_SFmode:
      if (!nonimmediate_operand (operands[0], E_SFmode))
        return -1;
      if (general_operand (operands[1], E_SFmode))
        {
          if ((
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 7012 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && TARGET_SOFT_FLOAT
   && (!MEM_P (operands[0])
       || register_operand (operands[1], SFmode)))))
            return 3833; /* *p *arm_movsf_soft_insn */
          if ((
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 562 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_ARM && TARGET_HARD_FLOAT
   && (   s_register_operand (operands[0], SFmode)
       || s_register_operand (operands[1], SFmode)))))
            return 4148; /* *p *movsf_vfp */
        }
      if (!hard_sf_operand (operands[1], E_SFmode)
          || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 598 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && TARGET_HARD_FLOAT
   && (   s_register_operand (operands[0], SFmode)
       || s_register_operand (operands[1], SFmode)))))
        return -1;
      return 4149; /* *p *thumb2_movsf_vfp */

    case E_V2SImode:
      if (!nonimmediate_operand (operands[0], E_V2SImode)
          || !general_operand (operands[1], E_V2SImode)
          || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 238 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 3927; /* *p movv2si_internal */

    case E_V4HImode:
      if (!nonimmediate_operand (operands[0], E_V4HImode)
          || !general_operand (operands[1], E_V4HImode)
          || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 238 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 3928; /* *p movv4hi_internal */

    case E_V8QImode:
      if (!nonimmediate_operand (operands[0], E_V8QImode)
          || !general_operand (operands[1], E_V8QImode)
          || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 238 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 3929; /* *p movv8qi_internal */

    case E_DImode:
      if (!nonimmediate_di_operand (operands[0], E_DImode)
          || !di_operand (operands[1], E_DImode)
          || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 312 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT
   && (   register_operand (operands[0], DImode)
       || register_operand (operands[1], DImode))
   && !(TARGET_NEON && CONST_INT_P (operands[1])
        && neon_immediate_valid_for_move (operands[1], DImode, NULL, NULL)))))
        return -1;
      return 4146; /* *p *movdi_vfp */

    case E_DFmode:
      if (!nonimmediate_soft_df_operand (operands[0], E_DFmode)
          || !soft_df_operand (operands[1], E_DFmode)
          || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 636 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_ARM && TARGET_HARD_FLOAT
   && (   register_operand (operands[0], DFmode)
       || register_operand (operands[1], DFmode)))))
        return -1;
      return 4150; /* *p *movdf_vfp */

    default:
      return -1;
    }
}

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, 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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2948 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(arm_arch_thumb2)))
    return -1;
  return 3763; /* *p insv_t2 */
}

static int
recog_220 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, 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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2936 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(arm_arch_thumb2)))
            return 3762; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 11722 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_HAVE_MOVT)))
    return -1;
  return 3861; /* *p *arm_movtas_ze */
}

static int
recog_221 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, 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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM)))
    return -1;
  return 3828; /* *p tls_load_dot_plus_eight */
}

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, 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 (pattern302 (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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 583 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 3965; /* *p iwmmxt_clrv8qi */

    case 4:
      if (pattern302 (x6, E_V4HImode) != 0
          || !s_register_operand (operands[0], E_V4HImode)
          || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 593 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 3966; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 602 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 3967; /* *p iwmmxt_clrv2si */

    default:
      return -1;
    }
}

static int
recog_223 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, 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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1665 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
    return 4065; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1680 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 4066; /* *p iwmmxt_walignr0 */

    case 97:
      if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1695 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 4067; /* *p iwmmxt_walignr1 */

    case 98:
      if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1710 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 4068; /* *p iwmmxt_walignr2 */

    case 99:
      if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1725 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 4069; /* *p iwmmxt_walignr3 */

    default:
      return -1;
    }
}

static int
recog_224 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, 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 (pattern236 (x3) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 614 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 3718; /* *p *arm_addsi3 */

        case E_V2SImode:
          if (pattern185 (x3, E_V2SImode) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 350 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3939; /* *p *addv2si3_iwmmxt */

        case E_V4HImode:
          if (pattern185 (x3, E_V4HImode) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 350 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3940; /* *p *addv4hi3_iwmmxt */

        case E_V8QImode:
          if (pattern185 (x3, E_V8QImode) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 350 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3941; /* *p *addv8qi3_iwmmxt */

        case E_SFmode:
          if (pattern186 (x3, E_SFmode) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 967 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 4155; /* *p *addsf3_vfp */

        case E_DFmode:
          if (pattern186 (x3, E_DFmode) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 977 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 4156; /* *p *adddf3_vfp */

        case E_QQmode:
          if (pattern186 (x3, E_QQmode) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 25 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
            return -1;
          return 4262; /* *p addqq3 */

        case E_HQmode:
          if (pattern186 (x3, E_HQmode) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 25 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
            return -1;
          return 4263; /* *p addhq3 */

        case E_SQmode:
          if (pattern186 (x3, E_SQmode) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 25 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
            return -1;
          return 4264; /* *p addsq3 */

        case E_UQQmode:
          if (pattern186 (x3, E_UQQmode) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 25 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
            return -1;
          return 4265; /* *p adduqq3 */

        case E_UHQmode:
          if (pattern186 (x3, E_UHQmode) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 25 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
            return -1;
          return 4266; /* *p adduhq3 */

        case E_USQmode:
          if (pattern186 (x3, E_USQmode) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 25 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
            return -1;
          return 4267; /* *p addusq3 */

        case E_HAmode:
          if (pattern186 (x3, E_HAmode) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 25 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
            return -1;
          return 4268; /* *p addha3 */

        case E_SAmode:
          if (pattern186 (x3, E_SAmode) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 25 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
            return -1;
          return 4269; /* *p addsa3 */

        case E_UHAmode:
          if (pattern186 (x3, E_UHAmode) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 25 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
            return -1;
          return 4270; /* *p adduha3 */

        case E_USAmode:
          if (pattern186 (x3, E_USAmode) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 25 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
            return -1;
          return 4271; /* *p addusa3 */

        case E_V4QQmode:
          if (pattern186 (x3, E_V4QQmode) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 35 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 4272; /* *p addv4qq3 */

        case E_V2HQmode:
          if (pattern186 (x3, E_V2HQmode) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 35 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 4273; /* *p addv2hq3 */

        case E_V2HAmode:
          if (pattern186 (x3, E_V2HAmode) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 35 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 4274; /* *p addv2ha3 */

        default:
          return -1;
        }

    case MULT:
      if (pattern285 (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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1495 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4052; /* *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 (pattern437 (x13))
                {
                case 0:
                  if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1526 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 4054; /* *p iwmmxt_tmiabb */

                case 1:
                  if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1560 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 4056; /* *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 (pattern437 (x13))
                {
                case 0:
                  if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1543 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 4055; /* *p iwmmxt_tmiatb */

                case 1:
                  if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1579 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 4057; /* *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 (pattern347 (x11, E_SImode) != 0)
            return -1;
          switch (pattern438 (x5))
            {
            case 0:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 742 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4119; /* *p iwmmxt_wmiawbb */

            case 1:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 755 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4120; /* *p iwmmxt_wmiawbt */

            case 2:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 768 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4121; /* *p iwmmxt_wmiawtb */

            case 3:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 781 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4122; /* *p iwmmxt_wmiawtt */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case PLUS:
      if (pattern267 (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 (pattern400 (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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1513 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4053; /* *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 (pattern463 (x5))
            {
            case 0:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 561 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4111; /* *p iwmmxt_wmiabb */

            case 1:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 585 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4112; /* *p iwmmxt_wmiabt */

            case 2:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 609 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4113; /* *p iwmmxt_wmiatb */

            case 3:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 633 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4114; /* *p iwmmxt_wmiatt */

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_225 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, 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 (pattern373 (x3, E_CCFPmode))
        {
        case 0:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1674 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 4199; /* *p *cmpsf_vfp */

        case 1:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1698 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 4201; /* *p *cmpdf_vfp */

        default:
          return -1;
        }

    case E_CCFPEmode:
      switch (pattern373 (x3, E_CCFPEmode))
        {
        case 0:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1686 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 4200; /* *p *cmpsf_trap_vfp */

        case 1:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1710 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 4202; /* *p *cmpdf_trap_vfp */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_226 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  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:
      operands[2] = x7;
      switch (GET_MODE (operands[0]))
        {
        case E_SImode:
          if (!s_register_operand (operands[0], E_SImode)
              || GET_MODE (x5) != E_SImode)
            return -1;
          x8 = XEXP (x5, 0);
          operands[3] = x8;
          if (!s_register_operand (operands[3], E_SImode)
              || GET_MODE (x6) != E_SImode
              || !s_register_operand (operands[2], E_SImode))
            return -1;
          x9 = XEXP (x6, 1);
          operands[1] = x9;
          if (!s_register_operand (operands[1], E_SImode)
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1779 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch_thumb2)))
            return -1;
          return 3737; /* *p *mulsi3subsi */

        case E_SFmode:
          if (pattern374 (x5, E_SFmode) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1240 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 4171; /* *p *mulsf3negsfaddsf_vfp */

        case E_DFmode:
          if (pattern374 (x5, E_DFmode) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1251 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 4172; /* *p *fmuldf3negdfadddf_vfp */

        default:
          return -1;
        }

    case SIGN_EXTEND:
      if (pattern348 (x6, E_SImode) != 0
          || !register_operand (operands[0], E_DImode)
          || GET_MODE (x5) != E_DImode)
        return -1;
      x8 = XEXP (x5, 0);
      operands[1] = x8;
      if (!register_operand (operands[1], E_DImode)
          || GET_MODE (x6) != E_DImode)
        return -1;
      switch (pattern438 (x6))
        {
        case 0:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 794 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4123; /* *p iwmmxt_wmiawbbn */

        case 1:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 807 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4124; /* *p iwmmxt_wmiawbtn */

        case 2:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 820 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4125; /* *p iwmmxt_wmiawtbn */

        case 3:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 833 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4126; /* *p iwmmxt_wmiawttn */

        default:
          return -1;
        }

    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, x8, x9;
  rtx x10, x11, x12;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  operands[4] = x3;
  x4 = XEXP (x1, 1);
  x5 = XEXP (x4, 0);
  operands[0] = x5;
  x6 = XEXP (x4, 1);
  switch (GET_CODE (x6))
    {
    case MULT:
      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 (x6) != E_SImode
                  || !s_register_operand (x7, E_SImode))
                return -1;
              x8 = XEXP (x6, 1);
              if (!s_register_operand (x8, E_SImode))
                return -1;
              operands[1] = x8;
              operands[2] = x7;
              if ((
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1610 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && !arm_arch6)))
                return 3733; /* *p *arm_mulsi3 */
              operands[2] = x8;
              operands[1] = x7;
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1620 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6)))
                return -1;
              return 3734; /* *p *arm_mulsi3_v6 */

            case E_V4HImode:
              if (pattern320 (x6, E_V4HImode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 490 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 3957; /* *p *mulv4hi3_iwmmxt */

            case E_V2SImode:
              if (pattern320 (x6, E_V2SImode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 361 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4096; /* *p iwmmxt_wmulwl */

            case E_SFmode:
              if (pattern321 (x6, E_SFmode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1074 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
                return -1;
              return 4161; /* *p *mulsf3_vfp */

            case E_DFmode:
              if (pattern321 (x6, E_DFmode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1084 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
                return -1;
              return 4162; /* *p *muldf3_vfp */

            default:
              return -1;
            }

        case SIGN_EXTEND:
          x9 = XEXP (x7, 0);
          operands[1] = x9;
          x8 = XEXP (x6, 1);
          switch (GET_CODE (x8))
            {
            case SIGN_EXTEND:
              x10 = XEXP (x8, 0);
              operands[2] = x10;
              switch (GET_MODE (operands[0]))
                {
                case E_DImode:
                  if (pattern376 (x6, E_SImode, E_DImode) != 0)
                    return -1;
                  if ((
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1841 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && !arm_arch6)))
                    return 3740; /* *p *mulsidi3_nov6 */
                  if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1852 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6)))
                    return -1;
                  return 3741; /* *p *mulsidi3_v6 */

                case E_SImode:
                  if (pattern376 (x6, E_HImode, E_SImode) != 0
                      || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2019 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY)))
                    return -1;
                  return 3750; /* *p mulhisi3 */

                default:
                  return -1;
                }

            case ASHIFTRT:
              if (GET_MODE (x8) != E_SImode)
                return -1;
              x11 = XEXP (x8, 1);
              if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 16]
                  || !s_register_operand (operands[0], E_SImode)
                  || GET_MODE (x6) != E_SImode
                  || GET_MODE (x7) != E_SImode
                  || !s_register_operand (operands[1], E_HImode))
                return -1;
              x10 = XEXP (x8, 0);
              operands[2] = x10;
              if (!s_register_operand (operands[2], E_SImode)
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2045 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY)))
                return -1;
              return 3752; /* *p *mulhisi3bt */

            default:
              return -1;
            }

        case ZERO_EXTEND:
          if (GET_MODE (x7) != E_DImode)
            return -1;
          x8 = XEXP (x6, 1);
          if (GET_CODE (x8) != ZERO_EXTEND
              || GET_MODE (x8) != E_DImode
              || !s_register_operand (operands[0], E_DImode)
              || GET_MODE (x6) != E_DImode)
            return -1;
          x9 = XEXP (x7, 0);
          operands[1] = x9;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x10 = XEXP (x8, 0);
          operands[2] = x10;
          if (!s_register_operand (operands[2], E_SImode))
            return -1;
          if ((
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1872 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && !arm_arch6)))
            return 3742; /* *p *umulsidi3_nov6 */
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1883 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6)))
            return -1;
          return 3743; /* *p *umulsidi3_v6 */

        case ASHIFTRT:
          if (GET_MODE (x7) != E_SImode)
            return -1;
          x12 = XEXP (x7, 1);
          if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 16]
              || !s_register_operand (operands[0], E_SImode)
              || GET_MODE (x6) != E_SImode)
            return -1;
          x9 = XEXP (x7, 0);
          operands[1] = x9;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x8 = XEXP (x6, 1);
          if (GET_MODE (x8) != E_SImode)
            return -1;
          switch (GET_CODE (x8))
            {
            case SIGN_EXTEND:
              x10 = XEXP (x8, 0);
              operands[2] = x10;
              if (!s_register_operand (operands[2], E_HImode)
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2032 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY)))
                return -1;
              return 3751; /* *p *mulhisi3tb */

            case ASHIFTRT:
              x11 = XEXP (x8, 1);
              if (x11 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
                return -1;
              x10 = XEXP (x8, 0);
              operands[2] = x10;
              if (!s_register_operand (operands[2], E_SImode)
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2059 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY)))
                return -1;
              return 3753; /* *p *mulhisi3tt */

            default:
              return -1;
            }

        case NEG:
          x9 = XEXP (x7, 0);
          operands[1] = x9;
          x8 = XEXP (x6, 1);
          operands[2] = x8;
          switch (GET_MODE (operands[0]))
            {
            case E_SFmode:
              if (pattern364 (x6, E_SFmode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1114 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && !flag_rounding_math)))
                return -1;
              return 4163; /* *p *mulsf3negsf_vfp */

            case E_DFmode:
              if (pattern364 (x6, E_DFmode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1134 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE
  && !flag_rounding_math)))
                return -1;
              return 4165; /* *p *muldf3negdf_vfp */

            default:
              return -1;
            }

        case UNSIGNED_FLOAT:
          switch (pattern304 (x6))
            {
            case 0:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1724 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP3 && !flag_rounding_math)))
                return -1;
              return 4203; /* *p *combine_vcvt_f32_u32 */

            case 1:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1737 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP3 && !flag_rounding_math
  && !TARGET_VFP_SINGLE)))
                return -1;
              return 4205; /* *p *combine_vcvt_f64_u32 */

            default:
              return -1;
            }

        case FLOAT:
          switch (pattern304 (x6))
            {
            case 0:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1724 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP3 && !flag_rounding_math)))
                return -1;
              return 4204; /* *p *combine_vcvt_f32_s32 */

            case 1:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1737 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP3 && !flag_rounding_math
  && !TARGET_VFP_SINGLE)))
                return -1;
              return 4206; /* *p *combine_vcvt_f64_s32 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case ROTATERT:
      switch (pattern286 (x6))
        {
        case 0:
          if (imm_or_reg_operand (operands[2], E_SImode)
              && (
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1286 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 4026; /* *p rorv4hi3 */
          if (!imm_or_reg_operand (operands[2], E_DImode)
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1370 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4038; /* *p rorv4hi3_di */

        case 1:
          if (imm_or_reg_operand (operands[2], E_SImode)
              && (
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1286 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 4027; /* *p rorv2si3 */
          if (!imm_or_reg_operand (operands[2], E_DImode)
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1370 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4039; /* *p rorv2si3_di */

        case 2:
          if (imm_or_reg_operand (operands[2], E_SImode)
              && (
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1286 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 4028; /* *p rordi3 */
          if (!imm_or_reg_operand (operands[2], E_DImode)
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1370 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4040; /* *p rordi3_di */

        default:
          return -1;
        }

    case ASHIFTRT:
      switch (pattern286 (x6))
        {
        case 0:
          if (imm_or_reg_operand (operands[2], E_SImode)
              && (
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1307 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 4029; /* *p ashrv4hi3_iwmmxt */
          if (!imm_or_reg_operand (operands[2], E_DImode)
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1391 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4041; /* *p ashrv4hi3_di */

        case 1:
          if (imm_or_reg_operand (operands[2], E_SImode)
              && (
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1307 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 4030; /* *p ashrv2si3_iwmmxt */
          if (!imm_or_reg_operand (operands[2], E_DImode)
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1391 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4042; /* *p ashrv2si3_di */

        case 2:
          if (imm_or_reg_operand (operands[2], E_SImode)
              && (
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1307 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 4031; /* *p ashrdi3_iwmmxt */
          if (!imm_or_reg_operand (operands[2], E_DImode)
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1391 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4043; /* *p ashrdi3_di */

        default:
          return -1;
        }

    case LSHIFTRT:
      switch (pattern286 (x6))
        {
        case 0:
          if (imm_or_reg_operand (operands[2], E_SImode)
              && (
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1328 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 4032; /* *p lshrv4hi3_iwmmxt */
          if (!register_operand (operands[2], E_DImode)
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1412 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4044; /* *p lshrv4hi3_di */

        case 1:
          if (imm_or_reg_operand (operands[2], E_SImode)
              && (
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1328 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 4033; /* *p lshrv2si3_iwmmxt */
          if (!register_operand (operands[2], E_DImode)
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1412 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4045; /* *p lshrv2si3_di */

        case 2:
          if (imm_or_reg_operand (operands[2], E_SImode)
              && (
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1328 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 4034; /* *p lshrdi3_iwmmxt */
          if (!register_operand (operands[2], E_DImode)
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1412 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4046; /* *p lshrdi3_di */

        default:
          return -1;
        }

    case ASHIFT:
      switch (pattern286 (x6))
        {
        case 0:
          if (imm_or_reg_operand (operands[2], E_SImode)
              && (
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1349 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 4035; /* *p ashlv4hi3_iwmmxt */
          if (!imm_or_reg_operand (operands[2], E_DImode)
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1433 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4047; /* *p ashlv4hi3_di */

        case 1:
          if (imm_or_reg_operand (operands[2], E_SImode)
              && (
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1349 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 4036; /* *p ashlv2si3_iwmmxt */
          if (!imm_or_reg_operand (operands[2], E_DImode)
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1433 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4048; /* *p ashlv2si3_di */

        case 2:
          if (imm_or_reg_operand (operands[2], E_SImode)
              && (
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1349 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return 4037; /* *p ashldi3_iwmmxt */
          if (!imm_or_reg_operand (operands[2], E_DImode)
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1433 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4049; /* *p ashldi3_di */

        default:
          return -1;
        }

    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, 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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 503 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 3958; /* *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 (pattern388 (x6, E_V4HImode, E_V4SImode) != 0
                      || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 516 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 3959; /* *p umulv4hi3_highpart */

                case 32L:
                  if (pattern388 (x6, E_V2SImode, E_V2DImode) != 0
                      || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 279 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 4091; /* *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 (pattern419 (x11, 1) != 0
                      || pattern412 (x6, E_V8QImode, E_V8HImode) != 0
                      || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 626 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 3968; /* *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]
                      || pattern412 (x6, E_V4HImode, E_V4SImode) != 0
                      || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 644 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 3969; /* *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 (pattern388 (x6, E_V8QImode, E_V8HImode) != 0
                      || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 657 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 3970; /* *p iwmmxt_uavgv8qi3 */

                case E_V4HImode:
                  if (pattern388 (x6, E_V4HImode, E_V4SImode) != 0
                      || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 670 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 3971; /* *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 (pattern411 (x11) != 0)
                    return -1;
                  x20 = XVECEXP (x11, 0, 3);
                  if (GET_CODE (x20) != CONST_INT
                      || XWINT (x20, 0) != 32768L
                      || XWINT (x8, 0) != 16L
                      || pattern412 (x6, E_V4HImode, E_V4SImode) != 0
                      || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 316 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 4093; /* *p iwmmxt_wmulumr */

                case 2:
                  if (pattern413 (x6) != 0
                      || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 350 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 4095; /* *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 (pattern388 (x6, E_V8QImode, E_V8HImode) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 37 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4077; /* *p iwmmxt_wabsdiffb */

        case E_V4HImode:
          if (pattern388 (x6, E_V4HImode, E_V4SImode) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 50 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4078; /* *p iwmmxt_wabsdiffh */

        case E_V2SImode:
          if (pattern388 (x6, E_V2SImode, E_V2DImode) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 63 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4079; /* *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
          || pattern419 (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 (pattern420 (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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 143 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4084; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 175 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4085; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 265 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4090; /* *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 (pattern411 (x11) != 0
                  || XWINT (x8, 0) != 16L
                  || pattern412 (x6, E_V4HImode, E_V4SImode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 297 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4092; /* *p iwmmxt_wmulsmr */

            case 2:
              if (pattern413 (x6) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 333 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4094; /* *p iwmmxt_wmulwsmr */

            default:
              return -1;
            }

        default:
          return -1;
        }

    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, 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 1:
      switch (XINT (x4, 1))
        {
        case 25:
          if (GET_MODE (x4) != E_SImode)
            return -1;
          x5 = XEXP (x1, 0);
          operands[2] = x5;
          x6 = XEXP (x5, 0);
          operands[3] = x6;
          if (!s_register_operand (operands[0], E_SImode))
            return -1;
          x7 = XVECEXP (x4, 0, 0);
          operands[1] = x7;
          if (!memory_operand (operands[1], E_SImode)
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4489 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(unaligned_access)))
            return -1;
          return 3792; /* *p unaligned_loadsi */

        case 26:
          x5 = XEXP (x1, 0);
          operands[2] = x5;
          x6 = XEXP (x5, 0);
          operands[3] = x6;
          x7 = XVECEXP (x4, 0, 0);
          operands[1] = x7;
          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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4534 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(unaligned_access)))
                return -1;
              return 3795; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4549 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(unaligned_access)))
                return -1;
              return 3796; /* *p unaligned_storehi */

            default:
              return -1;
            }

        case 35:
          if (GET_MODE (x4) != E_SImode)
            return -1;
          x7 = XVECEXP (x4, 0, 0);
          if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x5 = XEXP (x1, 0);
          operands[1] = x5;
          x6 = XEXP (x5, 0);
          operands[2] = x6;
          if (!memory_operand (operands[0], E_SImode)
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 8730 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 3839; /* *p probe_stack */

        case 22:
          if (GET_MODE (x4) != E_SImode)
            return -1;
          x5 = XEXP (x1, 0);
          operands[2] = x5;
          x6 = XEXP (x5, 0);
          operands[3] = x6;
          if (!s_register_operand (operands[0], E_SImode))
            return -1;
          x7 = XVECEXP (x4, 0, 0);
          operands[1] = x7;
          if (!s_register_operand (operands[1], E_SImode)
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 11574 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch_thumb2)))
            return -1;
          return 3859; /* *p rbitsi2 */

        case 17:
          if (GET_MODE (x4) != E_SImode)
            return -1;
          x7 = XVECEXP (x4, 0, 0);
          if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x5 = XEXP (x1, 0);
          operands[1] = x5;
          x6 = XEXP (x5, 0);
          operands[2] = x6;
          if (!register_operand (operands[0], E_SImode)
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 11665 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_HARD_TP)))
            return -1;
          return 3860; /* *p load_tp_hard */

        case 15:
          if (GET_MODE (x4) != E_DImode)
            return -1;
          x7 = XVECEXP (x4, 0, 0);
          if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x5 = XEXP (x1, 0);
          operands[1] = x5;
          x6 = XEXP (x5, 0);
          operands[2] = x6;
          if (!register_operand (operands[0], E_DImode)
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 569 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3964; /* *p iwmmxt_clrdi */

        case 8:
          switch (pattern268 (x1, E_SImode))
            {
            case 0:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1588 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4058; /* *p iwmmxt_tmovmskb */

            case 1:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1597 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4059; /* *p iwmmxt_tmovmskh */

            case 2:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1606 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4060; /* *p iwmmxt_tmovmskw */

            default:
              return -1;
            }

        case 7:
          switch (pattern268 (x1, E_DImode))
            {
            case 0:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1615 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4061; /* *p iwmmxt_waccb */

            case 1:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1624 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4062; /* *p iwmmxt_wacch */

            case 2:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1633 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4063; /* *p iwmmxt_waccw */

            default:
              return -1;
            }

        case 16:
          if (GET_MODE (x4) != E_V8QImode)
            return -1;
          x7 = XVECEXP (x4, 0, 0);
          if (GET_CODE (x7) != SUBREG
              || maybe_ne (SUBREG_BYTE (x7), 0)
              || GET_MODE (x7) != E_V8QImode)
            return -1;
          x8 = XEXP (x7, 0);
          if (GET_CODE (x8) != ASHIFTRT
              || GET_MODE (x8) != E_TImode)
            return -1;
          x9 = XEXP (x8, 0);
          if (GET_CODE (x9) != SUBREG
              || maybe_ne (SUBREG_BYTE (x9), 0)
              || GET_MODE (x9) != E_TImode)
            return -1;
          x10 = XEXP (x9, 0);
          if (GET_CODE (x10) != VEC_CONCAT
              || GET_MODE (x10) != E_V16QImode)
            return -1;
          x11 = XEXP (x8, 1);
          if (GET_CODE (x11) != MULT
              || GET_MODE (x11) != E_SImode)
            return -1;
          x12 = XEXP (x11, 1);
          if (x12 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
            return -1;
          x5 = XEXP (x1, 0);
          operands[4] = x5;
          x6 = XEXP (x5, 0);
          operands[5] = x6;
          if (!register_operand (operands[0], E_V8QImode))
            return -1;
          x13 = XEXP (x10, 0);
          operands[1] = x13;
          if (!register_operand (operands[1], E_V8QImode))
            return -1;
          x14 = XEXP (x10, 1);
          operands[2] = x14;
          if (!register_operand (operands[2], E_V8QImode))
            return -1;
          x15 = XEXP (x11, 0);
          operands[3] = x15;
          if (!immediate_operand (operands[3], E_SImode)
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1650 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4064; /* *p iwmmxt_waligni */

        case 40:
          x5 = XEXP (x1, 0);
          operands[2] = x5;
          x6 = XEXP (x5, 0);
          operands[3] = x6;
          x7 = XVECEXP (x4, 0, 0);
          operands[1] = x7;
          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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 24 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4074; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 24 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4075; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 24 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4076; /* *p iwmmxt_wabsv8qi3 */

            default:
              return -1;
            }

        case 39:
          x7 = XVECEXP (x4, 0, 0);
          if (GET_CODE (x7) != PLUS)
            return -1;
          x5 = XEXP (x1, 0);
          operands[3] = x5;
          x6 = XEXP (x5, 0);
          operands[4] = x6;
          x8 = XEXP (x7, 0);
          operands[1] = x8;
          x16 = XEXP (x7, 1);
          operands[2] = x16;
          switch (GET_MODE (operands[0]))
            {
            case E_V4HImode:
              if (pattern377 (x4, E_V4HImode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 111 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4082; /* *p addcv4hi3 */

            case E_V2SImode:
              if (pattern377 (x4, E_V2SImode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 111 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4083; /* *p addcv2si3 */

            default:
              return -1;
            }

        case 29:
          switch (pattern269 (x1))
            {
            case 0:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1899 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 )))
                return -1;
              return 4208; /* *p btruncsf2 */

            case 1:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && (
#line 1899 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 52 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE))))
                return -1;
              return 4211; /* *p btruncdf2 */

            default:
              return -1;
            }

        case 32:
          switch (pattern269 (x1))
            {
            case 0:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1899 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 )))
                return -1;
              return 4209; /* *p nearbyintsf2 */

            case 1:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && (
#line 1899 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 52 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE))))
                return -1;
              return 4212; /* *p nearbyintdf2 */

            default:
              return -1;
            }

        case 33:
          switch (pattern269 (x1))
            {
            case 0:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1899 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 )))
                return -1;
              return 4210; /* *p rintsf2 */

            case 1:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && (
#line 1899 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 52 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE))))
                return -1;
              return 4213; /* *p rintdf2 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 3:
      x7 = XVECEXP (x4, 0, 0);
      operands[1] = x7;
      switch (XINT (x4, 1))
        {
        case 2:
          if (GET_MODE (x4) != E_SImode)
            return -1;
          x17 = XVECEXP (x4, 0, 1);
          if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 8])
            return -1;
          x5 = XEXP (x1, 0);
          operands[3] = x5;
          x6 = XEXP (x5, 0);
          operands[4] = x6;
          if (!register_operand (operands[0], E_SImode)
              || !register_operand (operands[1], E_SImode))
            return -1;
          x18 = XVECEXP (x4, 0, 2);
          operands[2] = x18;
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6280 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM)))
            return -1;
          return 3827; /* *p pic_add_dot_plus_eight */

        case 11:
          if (pattern288 (x1) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 527 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3960; /* *p iwmmxt_wmacs */

        case 12:
          if (pattern288 (x1) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 548 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3962; /* *p iwmmxt_wmacu */

        case 9:
          if (GET_MODE (x4) != E_V2SImode)
            return -1;
          x5 = XEXP (x1, 0);
          operands[4] = x5;
          x6 = XEXP (x5, 0);
          operands[5] = x6;
          if (!register_operand (operands[0], E_V2SImode)
              || !register_operand (operands[1], E_V2SImode))
            return -1;
          x17 = XVECEXP (x4, 0, 1);
          operands[2] = x17;
          x18 = XVECEXP (x4, 0, 2);
          operands[3] = x18;
          switch (GET_MODE (operands[2]))
            {
            case E_V8QImode:
              if (!register_operand (operands[2], E_V8QImode)
                  || !register_operand (operands[3], E_V8QImode)
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1737 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4070; /* *p iwmmxt_wsadb */

            case E_V4HImode:
              if (!register_operand (operands[2], E_V4HImode)
                  || !register_operand (operands[3], E_V4HImode)
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1749 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4071; /* *p iwmmxt_wsadh */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 2:
      x5 = XEXP (x1, 0);
      operands[3] = x5;
      x6 = XEXP (x5, 0);
      operands[4] = x6;
      x7 = XVECEXP (x4, 0, 0);
      operands[1] = x7;
      x17 = XVECEXP (x4, 0, 1);
      operands[2] = x17;
      switch (XINT (x4, 1))
        {
        case 13:
          if (pattern349 (x4) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 537 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3961; /* *p iwmmxt_wmacsz */

        case 14:
          if (pattern349 (x4) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 558 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3963; /* *p iwmmxt_wmacuz */

        case 6:
          if (GET_MODE (x4) != E_V4HImode
              || !register_operand (operands[0], E_V4HImode)
              || !register_operand (operands[1], E_V4HImode)
              || !immediate_operand (operands[2], E_SImode)
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 789 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3980; /* *p iwmmxt_wshufh */

        case 10:
          if (GET_MODE (x4) != 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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1759 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4072; /* *p iwmmxt_wsadbz */

            case E_V4HImode:
              if (!register_operand (operands[1], E_V4HImode)
                  || !register_operand (operands[2], E_V4HImode)
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1769 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4073; /* *p iwmmxt_wsadhz */

            default:
              return -1;
            }

        case 44:
          if (pattern350 (x4, E_V4HImode) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 371 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4097; /* *p iwmmxt_wqmulm */

        case 43:
          if (pattern350 (x4, E_V2SImode) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 381 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4098; /* *p iwmmxt_wqmulwm */

        case 42:
          if (pattern350 (x4, E_V4HImode) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 391 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4099; /* *p iwmmxt_wqmulmr */

        case 41:
          if (pattern350 (x4, E_V2SImode) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 401 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4100; /* *p iwmmxt_wqmulwmr */

        default:
          return -1;
        }

    case 5:
      x17 = XVECEXP (x4, 0, 1);
      if (GET_CODE (x17) != ZERO_EXTRACT
          || GET_MODE (x17) != E_V4HImode)
        return -1;
      x19 = XEXP (x17, 1);
      if (x19 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
        return -1;
      x20 = XEXP (x17, 2);
      if (GET_CODE (x20) != CONST_INT)
        return -1;
      x18 = XVECEXP (x4, 0, 2);
      if (GET_CODE (x18) != ZERO_EXTRACT
          || GET_MODE (x18) != E_V4HImode)
        return -1;
      x21 = XEXP (x18, 1);
      if (x21 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
        return -1;
      x22 = XEXP (x18, 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;
      x5 = XEXP (x1, 0);
      operands[4] = x5;
      x6 = XEXP (x5, 0);
      operands[5] = x6;
      if (!register_operand (operands[0], E_V2SImode)
          || GET_MODE (x4) != E_V2SImode)
        return -1;
      x7 = XVECEXP (x4, 0, 0);
      operands[1] = x7;
      if (!register_operand (operands[1], E_V2SImode))
        return -1;
      x29 = XEXP (x17, 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 (x18, 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 46:
          switch (pattern446 (x4))
            {
            case 0:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 446 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4103; /* *p iwmmxt_wqmiabb */

            case 1:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 459 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4104; /* *p iwmmxt_wqmiabt */

            case 2:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 472 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4105; /* *p iwmmxt_wqmiatb */

            case 3:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 485 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4106; /* *p iwmmxt_wqmiatt */

            default:
              return -1;
            }

        case 45:
          switch (pattern446 (x4))
            {
            case 0:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 498 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4107; /* *p iwmmxt_wqmiabbn */

            case 1:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 511 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4108; /* *p iwmmxt_wqmiabtn */

            case 2:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 524 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4109; /* *p iwmmxt_wqmiatbn */

            case 3:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 537 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4110; /* *p iwmmxt_wqmiattn */

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_230 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, 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, 0);
  operands[0] = x3;
  x4 = XEXP (x2, 1);
  x5 = XEXP (x4, 0);
  switch (GET_CODE (x5))
    {
    case MINUS:
      if (GET_MODE (x5) != E_SImode)
        return -1;
      x6 = XEXP (x4, 1);
      if (GET_CODE (x6) != LTU
          || GET_MODE (x6) != E_SImode
          || pattern303 (x6, E_CC_Cmode) != 0
          || !s_register_operand (operands[0], E_SImode)
          || GET_MODE (x4) != E_SImode)
        return -1;
      x7 = XEXP (x5, 0);
      switch (GET_CODE (x7))
        {
        case CONST_INT:
        case REG:
        case SUBREG:
          operands[1] = x7;
          x8 = XEXP (x5, 1);
          operands[2] = x8;
          switch (GET_CODE (operands[2]))
            {
            case REG:
            case SUBREG:
              if (!s_register_operand (operands[2], E_SImode))
                return -1;
              x9 = XEXP (x1, 0);
              operands[3] = x9;
              x10 = XEXP (x9, 0);
              operands[4] = x10;
              if (!reg_or_int_operand (operands[1], E_SImode)
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1145 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return -1;
              return 3729; /* *p *subsi3_carryin */

            case MULT:
            case ASHIFT:
            case ROTATE:
            case ASHIFTRT:
            case LSHIFTRT:
            case ROTATERT:
              if (!shift_operator (operands[2], E_SImode))
                return -1;
              x9 = XEXP (x1, 0);
              operands[5] = x9;
              x10 = XEXP (x9, 0);
              operands[6] = x10;
              if (!s_register_operand (operands[1], E_SImode))
                return -1;
              x11 = XEXP (x8, 0);
              operands[3] = x11;
              if (!s_register_operand (operands[3], E_SImode))
                return -1;
              x12 = XEXP (x8, 1);
              operands[4] = x12;
              if (!reg_or_int_operand (operands[4], E_SImode)
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1228 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return -1;
              return 3730; /* *p *subsi3_carryin_shift */

            default:
              return -1;
            }

        case MULT:
        case ASHIFT:
        case ROTATE:
        case ASHIFTRT:
        case LSHIFTRT:
        case ROTATERT:
          if (pattern319 (x1) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1245 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM)))
            return -1;
          return 3731; /* *p *rsbsi3_carryin_shift */

        default:
          return -1;
        }

    case CONST_INT:
    case REG:
    case SUBREG:
      x6 = XEXP (x4, 1);
      switch (GET_CODE (x6))
        {
        case CONST_INT:
        case REG:
        case SUBREG:
          operands[2] = x6;
          x9 = XEXP (x1, 0);
          operands[3] = x9;
          x10 = XEXP (x9, 0);
          operands[4] = x10;
          operands[1] = x5;
          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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1493 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return -1;
              return 3732; /* *p *arm_subsi3_insn */

            case E_V2SImode:
              if (pattern185 (x4, E_V2SImode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 420 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 3948; /* *p *subv2si3_iwmmxt */

            case E_V4HImode:
              if (pattern185 (x4, E_V4HImode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 420 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 3949; /* *p *subv4hi3_iwmmxt */

            case E_V8QImode:
              if (pattern185 (x4, E_V8QImode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 420 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 3950; /* *p *subv8qi3_iwmmxt */

            case E_SFmode:
              if (pattern186 (x4, E_SFmode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 999 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
                return -1;
              return 4157; /* *p *subsf3_vfp */

            case E_DFmode:
              if (pattern186 (x4, E_DFmode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1009 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
                return -1;
              return 4158; /* *p *subdf3_vfp */

            case E_QQmode:
              if (pattern186 (x4, E_QQmode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 62 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
                return -1;
              return 4289; /* *p subqq3 */

            case E_HQmode:
              if (pattern186 (x4, E_HQmode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 62 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
                return -1;
              return 4290; /* *p subhq3 */

            case E_SQmode:
              if (pattern186 (x4, E_SQmode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 62 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
                return -1;
              return 4291; /* *p subsq3 */

            case E_UQQmode:
              if (pattern186 (x4, E_UQQmode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 62 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
                return -1;
              return 4292; /* *p subuqq3 */

            case E_UHQmode:
              if (pattern186 (x4, E_UHQmode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 62 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
                return -1;
              return 4293; /* *p subuhq3 */

            case E_USQmode:
              if (pattern186 (x4, E_USQmode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 62 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
                return -1;
              return 4294; /* *p subusq3 */

            case E_HAmode:
              if (pattern186 (x4, E_HAmode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 62 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
                return -1;
              return 4295; /* *p subha3 */

            case E_SAmode:
              if (pattern186 (x4, E_SAmode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 62 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
                return -1;
              return 4296; /* *p subsa3 */

            case E_UHAmode:
              if (pattern186 (x4, E_UHAmode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 62 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
                return -1;
              return 4297; /* *p subuha3 */

            case E_USAmode:
              if (pattern186 (x4, E_USAmode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 62 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT)))
                return -1;
              return 4298; /* *p subusa3 */

            case E_V4QQmode:
              if (pattern186 (x4, E_V4QQmode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 72 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
                return -1;
              return 4299; /* *p subv4qq3 */

            case E_V2HQmode:
              if (pattern186 (x4, E_V2HQmode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 72 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
                return -1;
              return 4300; /* *p subv2hq3 */

            case E_V2HAmode:
              if (pattern186 (x4, E_V2HAmode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 72 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
                return -1;
              return 4301; /* *p subv2ha3 */

            default:
              return -1;
            }

        case MULT:
        case ASHIFT:
        case ROTATE:
        case ASHIFTRT:
        case LSHIFTRT:
        case ROTATERT:
          if (GET_CODE (x6) == MULT)
            {
              res = recog_226 (x1, insn, pnum_clobbers);
              if (res >= 0)
                return res;
            }
          operands[2] = x6;
          if (!shift_operator (operands[2], E_SImode))
            return -1;
          x9 = XEXP (x1, 0);
          operands[5] = x9;
          x10 = XEXP (x9, 0);
          operands[6] = x10;
          if (!s_register_operand (operands[0], E_SImode)
              || GET_MODE (x4) != E_SImode)
            return -1;
          operands[1] = x5;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x13 = XEXP (x6, 0);
          operands[3] = x13;
          if (!s_register_operand (operands[3], E_SImode))
            return -1;
          x14 = XEXP (x6, 1);
          operands[4] = x14;
          if (!shift_amount_operand (operands[4], E_SImode)
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9146 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 3852; /* *p *sub_shiftsi */

        case PLUS:
          if (pattern267 (x6) != 0)
            return -1;
          x13 = XEXP (x6, 0);
          x15 = XEXP (x13, 0);
          x16 = XEXP (x15, 0);
          if (GET_CODE (x16) != VEC_SELECT
              || GET_MODE (x16) != E_HImode)
            return -1;
          x17 = XEXP (x16, 1);
          if (GET_CODE (x17) != PARALLEL
              || XVECLEN (x17, 0) != 1)
            return -1;
          x18 = XVECEXP (x17, 0, 0);
          if (GET_CODE (x18) != CONST_INT)
            return -1;
          x19 = XEXP (x13, 1);
          if (pattern410 (x19, E_HImode, E_DImode, SIGN_EXTEND) != 0)
            return -1;
          x20 = XEXP (x19, 0);
          x21 = XEXP (x20, 1);
          if (GET_CODE (x21) != PARALLEL
              || XVECLEN (x21, 0) != 1)
            return -1;
          x22 = XVECEXP (x21, 0, 0);
          if (GET_CODE (x22) != CONST_INT)
            return -1;
          x14 = XEXP (x6, 1);
          if (pattern400 (x14) != 0)
            return -1;
          x23 = XEXP (x14, 0);
          x24 = XEXP (x23, 0);
          if (GET_CODE (x24) != VEC_SELECT
              || GET_MODE (x24) != E_HImode)
            return -1;
          x25 = XEXP (x24, 1);
          if (GET_CODE (x25) != PARALLEL
              || XVECLEN (x25, 0) != 1)
            return -1;
          x26 = XVECEXP (x25, 0, 0);
          if (GET_CODE (x26) != CONST_INT)
            return -1;
          x27 = XEXP (x14, 1);
          if (GET_CODE (x27) != SIGN_EXTEND
              || GET_MODE (x27) != E_DImode)
            return -1;
          x28 = XEXP (x27, 0);
          if (GET_CODE (x28) != VEC_SELECT
              || GET_MODE (x28) != E_HImode)
            return -1;
          x29 = XEXP (x28, 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;
          x9 = XEXP (x1, 0);
          operands[4] = x9;
          x10 = XEXP (x9, 0);
          operands[5] = x10;
          if (!register_operand (operands[0], E_DImode)
              || GET_MODE (x4) != E_DImode)
            return -1;
          operands[1] = x5;
          if (!register_operand (operands[1], E_DImode))
            return -1;
          switch (pattern463 (x6))
            {
            case 0:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 657 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4115; /* *p iwmmxt_wmiabbn */

            case 1:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 681 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4116; /* *p iwmmxt_wmiabtn */

            case 2:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 705 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4117; /* *p iwmmxt_wmiatbn */

            case 3:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 729 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4118; /* *p iwmmxt_wmiattn */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case MULT:
      x7 = XEXP (x5, 0);
      switch (GET_CODE (x7))
        {
        case REG:
        case SUBREG:
          operands[2] = x7;
          x9 = XEXP (x1, 0);
          operands[4] = x9;
          x10 = XEXP (x9, 0);
          operands[5] = x10;
          x8 = XEXP (x5, 1);
          operands[3] = x8;
          x6 = XEXP (x4, 1);
          operands[1] = x6;
          switch (GET_CODE (operands[3]))
            {
            case CONST_INT:
              if (!power_of_two_operand (operands[3], E_SImode)
                  || pattern361 (x4) != 0
                  || !s_register_operand (operands[1], E_SImode)
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9065 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return -1;
              return 3843; /* *p *rsb_multsi */

            case REG:
            case SUBREG:
              switch (GET_MODE (operands[0]))
                {
                case E_SFmode:
                  if (pattern387 (x4, E_SFmode) != 0
                      || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1206 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
                    return -1;
                  return 4169; /* *p *mulsf3subsf_vfp */

                case E_DFmode:
                  if (pattern387 (x4, E_DFmode) != 0
                      || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1217 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
                    return -1;
                  return 4170; /* *p *muldf3subdf_vfp */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case VEC_SELECT:
          if (pattern265 (x5, 2, 0) != 0)
            return -1;
          x8 = XEXP (x5, 1);
          x12 = XEXP (x8, 1);
          x31 = XVECEXP (x12, 0, 0);
          if (x31 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x32 = XVECEXP (x12, 0, 1);
          if (x32 != const_int_rtx[MAX_SAVED_CONST_INT + 2])
            return -1;
          x6 = XEXP (x4, 1);
          if (pattern418 (x6, 3, 1) != 0)
            return -1;
          x14 = XEXP (x6, 1);
          if (GET_CODE (x14) != VEC_SELECT
              || GET_MODE (x14) != E_V2SImode)
            return -1;
          x27 = XEXP (x14, 1);
          if (GET_CODE (x27) != PARALLEL
              || XVECLEN (x27, 0) != 2)
            return -1;
          x33 = XVECEXP (x27, 0, 0);
          if (x33 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
            return -1;
          x34 = XVECEXP (x27, 0, 1);
          if (x34 != const_int_rtx[MAX_SAVED_CONST_INT + 3])
            return -1;
          switch (pattern444 (x1))
            {
            case 0:
              if (pattern459 (x4, SIGN_EXTEND) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 232 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4088; /* *p iwmmxt_wmaddsn */

            case 1:
              if (pattern459 (x4, ZERO_EXTEND) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 251 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4089; /* *p iwmmxt_wmaddun */

            default:
              return -1;
            }

        case NEG:
          x9 = XEXP (x1, 0);
          operands[4] = x9;
          x10 = XEXP (x9, 0);
          operands[5] = x10;
          x35 = XEXP (x7, 0);
          operands[2] = x35;
          x8 = XEXP (x5, 1);
          operands[3] = x8;
          x6 = XEXP (x4, 1);
          operands[1] = x6;
          switch (GET_MODE (operands[0]))
            {
            case E_SFmode:
              if (pattern375 (x4, E_SFmode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1277 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
                return -1;
              return 4173; /* *p *mulsf3negsfsubsf_vfp */

            case E_DFmode:
              if (pattern375 (x4, E_DFmode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1289 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
                return -1;
              return 4174; /* *p *muldf3negdfsubdf_vfp */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      operands[2] = x5;
      if (pattern266 (x1) != 0
          || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9079 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && GET_CODE (operands[2]) != MULT)))
        return -1;
      return 3848; /* *p *rsb_shiftsi */

    default:
      return -1;
    }
}

static int
recog_231 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, 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_224 (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[3] = x7;
          x8 = XEXP (x7, 0);
          operands[4] = x8;
          x9 = XEXP (x5, 1);
          operands[2] = x9;
          if (!arm_not_operand (operands[2], E_SImode))
            return -1;
          x10 = XEXP (x4, 1);
          switch (pattern404 (x10))
            {
            case 0:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1011 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return -1;
              return 3723; /* *p *addsi3_carryin_ltu */

            case 1:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1011 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return -1;
              return 3724; /* *p *addsi3_carryin_geu */

            default:
              return -1;
            }

        case LTU:
          if (pattern318 (x1, E_CC_Cmode) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1029 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 3725; /* *p *addsi3_carryin_alt2_ltu */

        case GEU:
          if (pattern318 (x1, E_CCmode) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1029 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 3726; /* *p *addsi3_carryin_alt2_geu */

        case MULT:
        case ASHIFT:
        case ROTATE:
        case ASHIFTRT:
        case LSHIFTRT:
        case ROTATERT:
          if (pattern319 (x1) != 0)
            return -1;
          x10 = XEXP (x4, 1);
          switch (pattern404 (x10))
            {
            case 0:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1050 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return -1;
              return 3727; /* *p *addsi3_carryin_shift_ltu */

            case 1:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1050 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return -1;
              return 3728; /* *p *addsi3_carryin_shift_geu */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case MULT:
      x6 = XEXP (x5, 0);
      switch (GET_CODE (x6))
        {
        case REG:
        case SUBREG:
          operands[2] = x6;
          x7 = XEXP (x1, 0);
          operands[4] = x7;
          x8 = XEXP (x7, 0);
          operands[5] = x8;
          x9 = XEXP (x5, 1);
          switch (GET_CODE (x9))
            {
            case REG:
            case SUBREG:
              switch (GET_MODE (operands[0]))
                {
                case E_SImode:
                  if (pattern361 (x4) != 0)
                    return -1;
                  operands[1] = x9;
                  if (!s_register_operand (operands[1], E_SImode))
                    return -1;
                  x10 = XEXP (x4, 1);
                  operands[3] = x10;
                  if (!s_register_operand (operands[3], E_SImode))
                    return -1;
                  if ((
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1691 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && !arm_arch6)))
                    return 3735; /* *p *mulsi3addsi */
                  if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1703 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6)))
                    return -1;
                  return 3736; /* *p *mulsi3addsi_v6 */

                case E_SFmode:
                  if (pattern362 (x4, E_SFmode) != 0
                      || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1172 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
                    return -1;
                  return 4167; /* *p *mulsf3addsf_vfp */

                case E_DFmode:
                  if (pattern362 (x4, E_DFmode) != 0
                      || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1183 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
                    return -1;
                  return 4168; /* *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
                  || !s_register_operand (operands[2], E_SImode))
                return -1;
              x10 = XEXP (x4, 1);
              operands[1] = x10;
              if (!s_register_operand (operands[1], E_SImode)
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9065 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return -1;
              return 3842; /* *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;
          x11 = XEXP (x6, 0);
          switch (GET_CODE (x11))
            {
            case REG:
            case SUBREG:
              switch (GET_MODE (operands[0]))
                {
                case E_DImode:
                  if (pattern363 (x4, E_DImode) != 0
                      || GET_MODE (x9) != E_DImode)
                    return -1;
                  x10 = XEXP (x4, 1);
                  if (!s_register_operand (x10, E_DImode))
                    return -1;
                  switch (GET_MODE (x11))
                    {
                    case E_SImode:
                      operands[2] = x11;
                      if (!s_register_operand (operands[2], E_SImode))
                        return -1;
                      x12 = XEXP (x9, 0);
                      operands[3] = x12;
                      if (!s_register_operand (operands[3], E_SImode))
                        return -1;
                      operands[1] = x10;
                      if ((
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1802 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && !arm_arch6)))
                        return 3738; /* *p *mulsidi3adddi */
                      if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1815 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6)))
                        return -1;
                      return 3739; /* *p *mulsidi3adddi_v6 */

                    case E_HImode:
                      operands[1] = x11;
                      if (!s_register_operand (operands[1], E_HImode))
                        return -1;
                      x12 = XEXP (x9, 0);
                      operands[2] = x12;
                      if (!s_register_operand (operands[2], E_HImode))
                        return -1;
                      operands[3] = x10;
                      if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2116 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY)))
                        return -1;
                      return 3757; /* *p maddhidi4 */

                    default:
                      return -1;
                    }

                case E_SImode:
                  if (pattern363 (x4, E_SImode) != 0)
                    return -1;
                  operands[1] = x11;
                  if (!s_register_operand (operands[1], E_HImode)
                      || GET_MODE (x9) != E_SImode)
                    return -1;
                  x12 = XEXP (x9, 0);
                  operands[2] = x12;
                  if (!s_register_operand (operands[2], E_HImode))
                    return -1;
                  x10 = XEXP (x4, 1);
                  operands[3] = x10;
                  if (!s_register_operand (operands[3], E_SImode)
                      || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2072 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY)))
                    return -1;
                  return 3754; /* *p maddhisi4 */

                default:
                  return -1;
                }

            case ASHIFTRT:
              if (GET_MODE (x11) != E_SImode)
                return -1;
              x13 = XEXP (x11, 1);
              if (x13 != const_int_rtx[MAX_SAVED_CONST_INT + 16]
                  || pattern363 (x4, E_DImode) != 0)
                return -1;
              x14 = XEXP (x11, 0);
              operands[1] = x14;
              if (!s_register_operand (operands[1], E_SImode)
                  || GET_MODE (x9) != E_DImode)
                return -1;
              x10 = XEXP (x4, 1);
              operands[3] = x10;
              if (!s_register_operand (operands[3], E_DImode))
                return -1;
              x12 = XEXP (x9, 0);
              switch (GET_CODE (x12))
                {
                case REG:
                case SUBREG:
                  operands[2] = x12;
                  if (!s_register_operand (operands[2], E_HImode)
                      || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2132 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY)))
                    return -1;
                  return 3758; /* *p *maddhidi4tb */

                case ASHIFTRT:
                  if (GET_MODE (x12) != E_SImode)
                    return -1;
                  x15 = XEXP (x12, 1);
                  if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
                    return -1;
                  x16 = XEXP (x12, 0);
                  operands[2] = x16;
                  if (!s_register_operand (operands[2], E_SImode)
                      || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2149 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY)))
                    return -1;
                  return 3759; /* *p *maddhidi4tt */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case ZERO_EXTEND:
          if (GET_MODE (x6) != E_DImode)
            return -1;
          x9 = XEXP (x5, 1);
          if (GET_CODE (x9) != ZERO_EXTEND
              || GET_MODE (x9) != E_DImode)
            return -1;
          x7 = XEXP (x1, 0);
          operands[4] = x7;
          x8 = XEXP (x7, 0);
          operands[5] = x8;
          if (!s_register_operand (operands[0], E_DImode)
              || GET_MODE (x4) != E_DImode
              || GET_MODE (x5) != E_DImode)
            return -1;
          x11 = XEXP (x6, 0);
          operands[2] = x11;
          if (!s_register_operand (operands[2], E_SImode))
            return -1;
          x12 = XEXP (x9, 0);
          operands[3] = x12;
          if (!s_register_operand (operands[3], E_SImode))
            return -1;
          x10 = XEXP (x4, 1);
          operands[1] = x10;
          if (!s_register_operand (operands[1], E_DImode))
            return -1;
          if ((
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1906 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && !arm_arch6)))
            return 3744; /* *p *umulsidi3adddi */
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1919 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6)))
            return -1;
          return 3745; /* *p *umulsidi3adddi_v6 */

        case ASHIFTRT:
          if (GET_MODE (x6) != E_SImode)
            return -1;
          x17 = XEXP (x6, 1);
          if (x17 != 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:
              x12 = XEXP (x9, 0);
              operands[2] = x12;
              if (!s_register_operand (operands[2], E_HImode)
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2087 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY)))
                return -1;
              return 3755; /* *p *maddhisi4tb */

            case ASHIFTRT:
              x18 = XEXP (x9, 1);
              if (x18 != const_int_rtx[MAX_SAVED_CONST_INT + 16])
                return -1;
              x12 = XEXP (x9, 0);
              operands[2] = x12;
              if (!s_register_operand (operands[2], E_SImode)
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2102 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_DSP_MULTIPLY)))
                return -1;
              return 3756; /* *p *maddhisi4tt */

            default:
              return -1;
            }

        case VEC_SELECT:
          if (pattern265 (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 (pattern418 (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 (pattern444 (x1))
            {
            case 0:
              switch (pattern458 (x4, SIGN_EXTEND))
                {
                case 0:
                  if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1463 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 4050; /* *p iwmmxt_wmadds */

                case 1:
                  if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 194 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 4086; /* *p iwmmxt_wmaddsx */

                default:
                  return -1;
                }

            case 1:
              switch (pattern458 (x4, ZERO_EXTEND))
                {
                case 0:
                  if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1482 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 4051; /* *p iwmmxt_wmaddu */

                case 1:
                  if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 213 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                    return -1;
                  return 4087; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5388 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
            return -1;
          return 3814; /* *p *arm_zero_extendhisi2addsi */

        case E_QImode:
          if (!s_register_operand (operands[1], E_QImode)
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5458 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
            return -1;
          return 3817; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5723 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_INT_SIMD)))
        return -1;
      return 3824; /* *p *arm_extendqisi2addsi */

    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      operands[2] = x5;
      if (pattern266 (x1) != 0
          || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9079 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && GET_CODE (operands[2]) != MULT)))
        return -1;
      return 3847; /* *p *add_shiftsi */

    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];
  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 (pattern401 (x4, E_V8QImode, E_QImode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 685 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 3972; /* *p iwmmxt_tinsrb */

            case E_V4HImode:
              if (pattern401 (x4, E_V4HImode, E_HImode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 702 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 3973; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 719 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3974; /* *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 (pattern402 (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
              || pattern421 (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
              || pattern428 (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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1038 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4008; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1102 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4011; /* *p iwmmxt_wunpckilb */

            default:
              return -1;
            }

        case 4:
          if (pattern402 (x12) != 0
              || pattern421 (x13, 4) != 0
              || XWINT (x9, 0) != 5L
              || pattern428 (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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1058 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4009; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1122 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4012; /* *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
              || pattern428 (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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1074 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4010; /* *p iwmmxt_wunpckihw */

            case 0L:
              if (XWINT (x24, 0) != 1L
                  || XWINT (x27, 0) != 1L
                  || XWINT (x28, 0) != 0L
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1138 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4013; /* *p iwmmxt_wunpckilw */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case SS_MINUS:
      if (pattern241 (x1, SS_PLUS) != 0
          || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 81 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 4080; /* *p iwmmxt_waddsubhx */

    case SS_PLUS:
      if (pattern241 (x1, SS_MINUS) != 0
          || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 99 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 4081; /* *p iwmmxt_wsubaddhx */

    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, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  operands[0] = x3;
  x4 = XEXP (x2, 1);
  switch (XVECLEN (x4, 0))
    {
    case 2:
      x5 = XEXP (x1, 0);
      operands[3] = x5;
      x6 = XEXP (x5, 0);
      operands[4] = x6;
      x7 = XVECEXP (x4, 0, 0);
      operands[1] = x7;
      x8 = XVECEXP (x4, 0, 1);
      operands[2] = x8;
      switch (XINT (x4, 1))
        {
        case 13:
          switch (GET_MODE (operands[0]))
            {
            case E_V8QImode:
              if (pattern365 (x4, E_V8QImode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 811 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 3981; /* *p eqv8qi3 */

            case E_V4HImode:
              if (pattern365 (x4, E_V4HImode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 822 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 3982; /* *p eqv4hi3 */

            case E_V2SImode:
              if (pattern365 (x4, E_V2SImode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 834 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 3983; /* *p eqv2si3 */

            default:
              return -1;
            }

        case 14:
          switch (GET_MODE (operands[0]))
            {
            case E_V8QImode:
              if (pattern365 (x4, E_V8QImode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 845 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 3984; /* *p gtuv8qi3 */

            case E_V4HImode:
              if (pattern365 (x4, E_V4HImode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 856 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 3985; /* *p gtuv4hi3 */

            case E_V2SImode:
              if (pattern365 (x4, E_V2SImode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 867 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 3986; /* *p gtuv2si3 */

            default:
              return -1;
            }

        case 15:
          switch (GET_MODE (operands[0]))
            {
            case E_V8QImode:
              if (pattern365 (x4, E_V8QImode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 878 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 3987; /* *p gtv8qi3 */

            case E_V4HImode:
              if (pattern365 (x4, E_V4HImode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 889 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 3988; /* *p gtv4hi3 */

            case E_V2SImode:
              if (pattern365 (x4, E_V2SImode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 900 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 3989; /* *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 (x4) != E_QImode
                  || !arm_sync_memory_operand (operands[1], E_QImode)
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 71 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ)))
                return -1;
              return 4239; /* *p atomic_loadqi */

            case E_HImode:
              if (!register_operand (operands[0], E_HImode)
                  || GET_MODE (x4) != E_HImode
                  || !arm_sync_memory_operand (operands[1], E_HImode)
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 71 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ)))
                return -1;
              return 4240; /* *p atomic_loadhi */

            case E_SImode:
              if (!register_operand (operands[0], E_SImode)
                  || GET_MODE (x4) != E_SImode
                  || !arm_sync_memory_operand (operands[1], E_SImode)
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 71 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ)))
                return -1;
              return 4241; /* *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 (x4) != E_QImode
                  || !general_operand (operands[1], E_QImode)
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 97 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ)))
                return -1;
              return 4242; /* *p atomic_storeqi */

            case E_HImode:
              if (!memory_operand (operands[0], E_HImode)
                  || GET_MODE (x4) != E_HImode
                  || !general_operand (operands[1], E_HImode)
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 97 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ)))
                return -1;
              return 4243; /* *p atomic_storehi */

            case E_SImode:
              if (!memory_operand (operands[0], E_SImode)
                  || GET_MODE (x4) != E_SImode
                  || !general_operand (operands[1], E_SImode)
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 97 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ)))
                return -1;
              return 4244; /* *p atomic_storesi */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 1:
      x5 = XEXP (x1, 0);
      operands[2] = x5;
      x6 = XEXP (x5, 0);
      operands[3] = x6;
      x7 = XVECEXP (x4, 0, 0);
      operands[1] = x7;
      switch (XINT (x4, 1))
        {
        case 21:
          if (GET_MODE (x4) != E_DImode
              || !register_operand (operands[0], E_DImode)
              || !arm_sync_memory_operand (operands[1], E_DImode)
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 124 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(ARM_DOUBLEWORD_ALIGN && TARGET_HAVE_LPAE)))
            return -1;
          return 4245; /* *p arm_atomic_loaddi2_ldrd */

        case 20:
          switch (pattern322 (x4))
            {
            case 0:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 479 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX)))
                return -1;
              return 4250; /* *p arm_load_exclusivesi */

            case 1:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 503 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD)))
                return -1;
              return 4252; /* *p arm_load_exclusivedi */

            default:
              return -1;
            }

        case 23:
          switch (pattern322 (x4))
            {
            case 0:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 491 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ)))
                return -1;
              return 4251; /* *p arm_load_acquire_exclusivesi */

            case 1:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 512 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQEXD && ARM_DOUBLEWORD_ALIGN)))
                return -1;
              return 4253; /* *p arm_load_acquire_exclusivedi */

            default:
              return -1;
            }

        default:
          return -1;
        }

    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, 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 (pattern324 (x6))
        {
        case 0:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 955 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4002; /* *p iwmmxt_wpackhss */

        case 1:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 966 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4003; /* *p iwmmxt_wpackwss */

        case 2:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 977 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4004; /* *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 (pattern324 (x6))
            {
            case 0:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 988 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4005; /* *p iwmmxt_wpackhus */

            case 1:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 999 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4006; /* *p iwmmxt_wpackwus */

            case 2:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1010 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4007; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 433 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4102; /* *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 (pattern410 (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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 417 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 4101; /* *p iwmmxt_waddbhusm */

    default:
      return -1;
    }
}

static int
recog_235 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, 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_NOOVmode
              && GET_MODE (x4) == E_CC_NOOVmode
              && (
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 835 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM)))
            return 3719; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 970 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return 3721; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 991 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
        return -1;
      return 3722; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 850 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 3720; /* *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 (!reg_or_int_operand (operands[3], E_SImode))
            return -1;
          operands[0] = x10;
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 7426 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM)))
            return -1;
          return 3835; /* *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_NOOVmode)
        return -1;
      x6 = XEXP (x1, 0);
      operands[3] = x6;
      x7 = XEXP (x6, 0);
      operands[4] = x7;
      if (GET_MODE (x4) != E_CC_NOOVmode)
        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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2528 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 3761; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5509 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return 3818; /* *p *compareqi_eq0 */
            }
          break;

        case CONST_DOUBLE:
        case REG:
        case SUBREG:
          res = recog_225 (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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 7378 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
        return -1;
      return 3834; /* *p *arm_cmpsi_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, 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 = XEXP (x2, 0);
  operands[0] = x3;
  x4 = XEXP (x2, 1);
  x5 = XEXP (x4, 0);
  switch (GET_CODE (x5))
    {
    case ZERO_EXTEND:
      if (pattern235 (x1) != 0
          || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3227 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
        return -1;
      return 3772; /* *p *iordi_zesidi_di */

    case SIGN_EXTEND:
      if (pattern235 (x1) != 0
          || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3241 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
        return -1;
      return 3773; /* *p *iordi_sesidi_di */

    case REG:
    case SUBREG:
      switch (pattern238 (x1))
        {
        case 0:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3288 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 3774; /* *p *iorsi3_insn */

        case 1:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 61 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3923; /* *p iwmmxt_iordi3 */

        case 2:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 327 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3933; /* *p *iorv2si3_iwmmxt */

        case 3:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 327 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3934; /* *p *iorv4hi3_iwmmxt */

        case 4:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 327 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3935; /* *p *iorv8qi3_iwmmxt */

        default:
          return -1;
        }

    case MULT:
      if (pattern234 (x1) != 0
          || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9065 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
        return -1;
      return 3844; /* *p *orr_multsi */

    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      operands[2] = x5;
      if (pattern266 (x1) == 0
          && (
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9079 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && GET_CODE (operands[2]) != MULT)))
        return 3849; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 858 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 4127; /* *p iwmmxt_wmerge */

    case NOT:
      switch (pattern232 (x1))
        {
        case 0:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1486 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2)))
            return -1;
          return 4233; /* *p *iordi_notdi_di */

        case 1:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1582 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2)))
            return -1;
          return 4237; /* *p *orsi_notsi_si */

        case 2:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1534 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2)))
            return -1;
          return 4235; /* *p *iordi_notdi_zesidi */

        case 3:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1511 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2)))
            return -1;
          return 4234; /* *p *iordi_notzesidi_di */

        case 4:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1558 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2)))
            return -1;
          return 4236; /* *p *iordi_notsesidi_di */

        case 5:
          if (!const_int_operand (operands[3], E_SImode))
            return -1;
          x10 = XEXP (x4, 1);
          operands[1] = x10;
          if (!s_register_operand (operands[1], E_SImode)
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1594 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2)))
            return -1;
          return 4238; /* *p *orsi_not_shiftsi_si */

        default:
          return -1;
        }

    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, 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 UNSPEC:
      if (pattern239 (x1) != 0
          || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4519 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(unaligned_access)))
        return -1;
      return 3794; /* *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;
      switch (GET_MODE (operands[0]))
        {
        case E_DImode:
          if (!s_register_operand (operands[0], E_DImode)
              || GET_MODE (x4) != E_DImode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case E_QImode:
              if (!nonimmediate_operand (operands[1], E_QImode)
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5256 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT )))
                return -1;
              return 3806; /* *p zero_extendqidi2 */

            case E_HImode:
              if (!nonimmediate_operand (operands[1], E_HImode)
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5256 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6)))
                return -1;
              return 3807; /* *p zero_extendhidi2 */

            case E_SImode:
              if (!s_register_operand (operands[1], E_SImode)
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5256 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT )))
                return -1;
              return 3808; /* *p zero_extendsidi2 */

            default:
              return -1;
            }

        case E_SImode:
          if (!s_register_operand (operands[0], E_SImode)
              || GET_MODE (x4) != E_SImode)
            return -1;
          switch (GET_MODE (operands[1]))
            {
            case E_HImode:
              if (!nonimmediate_operand (operands[1], E_HImode))
                return -1;
              if ((
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5365 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch4 && !arm_arch6)))
                return 3812; /* *p *arm_zero_extendhisi2 */
              if ((
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5376 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch6)))
                return 3813; /* *p *arm_zero_extendhisi2_v6 */
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1060 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_arch6)))
                return -1;
              return 4221; /* *p *thumb2_zero_extendhisi2_v6 */

            case E_QImode:
              if (!nonimmediate_operand (operands[1], E_QImode))
                return -1;
              if ((
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5434 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && !arm_arch6)))
                return 3815; /* *p *arm_zero_extendqisi2 */
              if ((
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5446 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch6)))
                return 3816; /* *p *arm_zero_extendqisi2_v6 */
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1073 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_arch6)))
                return -1;
              return 4222; /* *p thumb2_zero_extendqisi2_v6 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case VEC_SELECT:
      switch (pattern240 (x1))
        {
        case 0:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 734 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3975; /* *p iwmmxt_textrmub */

        case 1:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 756 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3977; /* *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)
          || GET_MODE (x4) != 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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 454 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH)))
                return -1;
              return 4246; /* *p arm_load_exclusiveqi */

            case E_HImode:
              if (!mem_noofs_operand (operands[1], E_HImode)
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 454 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH)))
                return -1;
              return 4247; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 467 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ)))
                return -1;
              return 4248; /* *p arm_load_acquire_exclusiveqi */

            case E_HImode:
              if (!mem_noofs_operand (operands[1], E_HImode)
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 467 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ)))
                return -1;
              return 4249; /* *p arm_load_acquire_exclusivehi */

            default:
              return -1;
            }

        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;
  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 (pattern237 (x4))
            {
            case 0:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2465 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return -1;
              return 3760; /* *p *arm_andsi3_insn */

            case 1:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 89 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 3925; /* *p iwmmxt_anddi3 */

            case 2:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 317 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 3930; /* *p *andv2si3_iwmmxt */

            case 3:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 317 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 3931; /* *p *andv4hi3_iwmmxt */

            case 4:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 317 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 3932; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 103 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3926; /* *p iwmmxt_nanddi3 */

        default:
          return -1;
        }

    case NOT:
      switch (pattern232 (x1))
        {
        case 0:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2960 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 3764; /* *p *anddi_notdi_di */

        case 1:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3058 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 3768; /* *p andsi_notsi_si */

        case 2:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3014 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 3766; /* *p *anddi_notdi_zesidi */

        case 3:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2986 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 3765; /* *p *anddi_notzesidi_di */

        case 4:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3035 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 3767; /* *p *anddi_notsesidi_di */

        case 5:
          x8 = XEXP (x4, 1);
          operands[1] = x8;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          if (arm_rhs_operand (operands[3], E_SImode)
              && (
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3070 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM)))
            return 3769; /* *p andsi_not_shiftsi_si */
          if (!const_int_operand (operands[3], E_SImode)
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 34 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2)))
            return -1;
          return 4214; /* *p *thumb_andsi_not_shiftsi_si */

        default:
          return -1;
        }

    case IOR:
      if (pattern233 (x1) != 0
          || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3552 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
        return -1;
      return 3778; /* *p *andsi_iorsi3_notsi */

    case MULT:
      if (pattern234 (x1) != 0
          || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9065 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
        return -1;
      return 3846; /* *p *and_multsi */

    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      operands[2] = x5;
      if (pattern266 (x1) != 0
          || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9079 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && GET_CODE (operands[2]) != MULT)))
        return -1;
      return 3851; /* *p *and_shiftsi */

    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;
  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 (pattern239 (x1) != 0
          || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4509 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(unaligned_access && TARGET_32BIT)))
        return -1;
      return 3793; /* *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_DImode:
          if (!s_register_operand (operands[0], E_DImode)
              || GET_MODE (x4) != E_DImode)
            return -1;
          if (arm_reg_or_extendqisi_mem_op (operands[1], E_QImode)
              && (
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5269 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6)))
            return 3809; /* *p extendqidi2 */
          if (nonimmediate_operand (operands[1], E_HImode)
              && (
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5269 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6)))
            return 3810; /* *p extendhidi2 */
          if (!s_register_operand (operands[1], E_SImode)
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5269 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT )))
            return -1;
          return 3811; /* *p extendsidi2 */

        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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5604 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch4 && !arm_arch6)))
                return 3819; /* *p *arm_extendhisi2 */
              if ((
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5617 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6)))
                return 3820; /* *p *arm_extendhisi2_v6 */
            }
          if (arm_reg_or_extendqisi_mem_op (operands[1], E_QImode))
            {
              if ((
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5698 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch4 && !arm_arch6)))
                return 3822; /* *p *arm_extendqisi */
              if ((
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5711 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch6)))
                return 3823; /* *p *arm_extendqisi_v6 */
            }
          if (!nonimmediate_operand (operands[1], E_QImode)
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1047 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_arch6)))
            return -1;
          return 4220; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5661 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && arm_arch4)))
            return -1;
          return 3821; /* *p *arm_extendqihi_insn */

        default:
          return -1;
        }

    case VEC_SELECT:
      switch (pattern240 (x1))
        {
        case 0:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 745 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3976; /* *p iwmmxt_textrmsb */

        case 1:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 767 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3978; /* *p iwmmxt_textrmsh */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_240 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11;
  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 (pattern378 (x6, E_SFmode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1326 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA)))
                return -1;
              return 4175; /* *p fmasf4 */

            case E_DFmode:
              if (pattern378 (x6, E_DFmode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && (
#line 1326 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA) && 
#line 52 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE))))
                return -1;
              return 4176; /* *p fmadf4 */

            default:
              return -1;
            }

        case NEG:
          x10 = XEXP (x9, 0);
          operands[3] = x10;
          switch (GET_MODE (operands[0]))
            {
            case E_SFmode:
              if (pattern379 (x6, E_SFmode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1384 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA)))
                return -1;
              return 4179; /* *p *fnmsubsf4 */

            case E_DFmode:
              if (pattern379 (x6, E_DFmode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && (
#line 1384 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA) && 
#line 52 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE))))
                return -1;
              return 4180; /* *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 (pattern380 (x6, E_SFmode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1362 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA)))
                return -1;
              return 4177; /* *p *fmsubsf4 */

            case E_DFmode:
              if (pattern380 (x6, E_DFmode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && (
#line 1362 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA) && 
#line 52 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE))))
                return -1;
              return 4178; /* *p *fmsubdf4 */

            default:
              return -1;
            }

        case NEG:
          x10 = XEXP (x9, 0);
          operands[3] = x10;
          switch (GET_MODE (operands[0]))
            {
            case E_SFmode:
              if (pattern381 (x6, E_SFmode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1407 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA)))
                return -1;
              return 4181; /* *p *fnmaddsf4 */

            case E_DFmode:
              if (pattern381 (x6, E_DFmode) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && (
#line 1407 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_FMA) && 
#line 52 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE))))
                return -1;
              return 4182; /* *p *fnmadddf4 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_241 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 779 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
        return -1;
      return 3979; /* *p iwmmxt_textrmw */

    case ZERO_EXTEND:
      switch (pattern270 (x1))
        {
        case 0:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1150 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4014; /* *p iwmmxt_wunpckehub */

        case 1:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1218 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4020; /* *p iwmmxt_wunpckelub */

        case 2:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1161 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4015; /* *p iwmmxt_wunpckehuh */

        case 3:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1229 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4021; /* *p iwmmxt_wunpckeluh */

        case 4:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1172 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4016; /* *p iwmmxt_wunpckehuw */

        case 5:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1240 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4022; /* *p iwmmxt_wunpckeluw */

        default:
          return -1;
        }

    case SIGN_EXTEND:
      switch (pattern270 (x1))
        {
        case 0:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1184 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4017; /* *p iwmmxt_wunpckehsb */

        case 1:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1252 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4023; /* *p iwmmxt_wunpckelsb */

        case 2:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1195 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4018; /* *p iwmmxt_wunpckehsh */

        case 3:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1263 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4024; /* *p iwmmxt_wunpckelsh */

        case 4:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1206 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4019; /* *p iwmmxt_wunpckehsw */

        case 5:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1274 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4025; /* *p iwmmxt_wunpckelsw */

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_242 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  switch (GET_CODE (x3))
    {
    case REG:
    case SUBREG:
    case MEM:
      res = recog_218 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    case ZERO_EXTRACT:
      res = recog_219 (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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9008 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM)))
        return 3840; /* *p *arm_indirect_jump */
      if (memory_operand (operands[0], E_SImode)
          && (
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9017 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM)))
        return 3841; /* *p *load_indirect_jump */
      break;

    default:
      break;
    }
  x6 = XEXP (x2, 1);
  switch (GET_CODE (x6))
    {
    case CONST_INT:
      res = recog_220 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    case MEM:
      res = recog_221 (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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 8113 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return 3836; /* *p *arm_jump */
        }
      break;

    case CONST_VECTOR:
      res = recog_222 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      break;

    case SUBREG:
      res = recog_223 (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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 220 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_ARM && TARGET_HARD_FLOAT
   && (   s_register_operand (operands[0], SImode)
       || s_register_operand (operands[1], SImode)))))
            return 4144; /* *p *arm_movsi_vfp */
          if ((
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 263 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_THUMB2 && TARGET_HARD_FLOAT
   && (   s_register_operand (operands[0], SImode)
       || s_register_operand (operands[1], SImode)))))
            return 4145; /* *p *thumb2_movsi_vfp */
        }
    }
  operands[0] = x3;
  if (low_register_operand (operands[0], E_SImode)
      && GET_CODE (x6) == MEM
      && pattern174 (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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 237 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && (reload_in_progress || reload_completed))))
            return 4217; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 252 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 4218; /* *p *thumb2_movsi_insn */
}

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;
  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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4742 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 3801; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 851 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 4153; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 862 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 4154; /* *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 (pattern351 (x4, E_SFmode) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1124 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 4164; /* *p *negmulsf3_vfp */

        case E_DFmode:
          if (pattern351 (x4, E_DFmode) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1145 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 4166; /* *p *negmuldf3_vfp */

        default:
          return -1;
        }

    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;
  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 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;
      if (!s_register_operand (operands[0], E_SImode)
          || GET_MODE (x4) != E_SImode)
        return -1;
      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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4281 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
        return -1;
      return 3791; /* *p *not_shiftsi */

    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_DImode:
          if (!s_register_operand (operands[0], E_DImode)
              || GET_MODE (x4) != E_DImode
              || !s_register_operand (operands[1], E_DImode)
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5063 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 3804; /* *p *one_cmpldi2_insn */

        case E_SImode:
          if (!s_register_operand (operands[0], E_SImode)
              || GET_MODE (x4) != E_SImode
              || !s_register_operand (operands[1], E_SImode)
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 5096 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 3805; /* *p *arm_one_cmplsi2 */

        default:
          return -1;
        }

    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;
  int res ATTRIBUTE_UNUSED;
  switch (pattern183 (x1))
    {
    case 0:
      x2 = XEXP (x1, 0);
      operands[2] = x2;
      x3 = XEXP (x2, 0);
      operands[3] = 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
          || !s_register_operand (operands[1], E_SImode))
        return -1;
      x6 = XEXP (x5, 1);
      switch (XWINT (x6, 0))
        {
        case 0L:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3709 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 3779; /* *p *smax_0 */

        case -1L:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3719 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 3780; /* *p *smax_m1 */

        default:
          return -1;
        }

    case 1:
      switch (pattern287 (x1))
        {
        case 0:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 912 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3990; /* *p *smaxv2si3_iwmmxt */

        case 1:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 912 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3991; /* *p *smaxv4hi3_iwmmxt */

        case 2:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 912 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3992; /* *p *smaxv8qi3_iwmmxt */

        default:
          return -1;
        }

    case 2:
      if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3992 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6 && SMAX != SMIN
   && arm_sat_operator_match (operands[2], operands[1], NULL, NULL))))
        return -1;
      return 3783; /* *p *satsi_smax */

    case 3:
      if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4018 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6 && SMAX != SMIN
   && arm_sat_operator_match (operands[2], operands[1], NULL, NULL))))
        return -1;
      return 3787; /* *p *satsi_smax_shift */

    case 4:
      if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3992 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6 && SMAX != SMAX
   && arm_sat_operator_match (operands[2], operands[1], NULL, NULL))))
        return -1;
      return 3785; /* *p *satsi_smax */

    case 5:
      if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4018 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6 && SMAX != SMAX
   && arm_sat_operator_match (operands[2], operands[1], NULL, NULL))))
        return -1;
      return 3789; /* *p *satsi_smax_shift */

    default:
      return -1;
    }
}

static int
recog_246 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[5] = x2;
  x3 = XEXP (x2, 0);
  operands[6] = x3;
  x4 = XEXP (x1, 1);
  x5 = XVECEXP (x4, 0, 0);
  x6 = XEXP (x5, 1);
  operands[1] = x6;
  if (shiftable_operator (operands[1], E_SImode))
    {
      x7 = XEXP (x6, 0);
      operands[2] = x7;
      if (memory_operand (operands[2], E_SImode))
        {
          x8 = XEXP (x6, 1);
          operands[3] = x8;
          if (memory_operand (operands[3], E_SImode))
            {
              x9 = XVECEXP (x4, 0, 1);
              x10 = XEXP (x9, 0);
              operands[4] = x10;
              if (scratch_operand (operands[4], E_SImode)
                  && (
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 10843 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && adjacent_mem_locations (operands[2], operands[3]))))
                return 3853; /* *p *arith_adjacentmem */
            }
        }
    }
  x9 = XVECEXP (x4, 0, 1);
  x10 = XEXP (x9, 0);
  if (GET_CODE (x10) != REG
      || REGNO (x10) != 100
      || GET_MODE (x10) != E_CCmode)
    return -1;
  operands[4] = x2;
  operands[5] = x3;
  operands[3] = x6;
  if (!thumb_16bit_operator (operands[3], E_SImode))
    return -1;
  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 (!s_register_operand (operands[2], E_SImode)
      || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1209 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed
   && GET_CODE(operands[3]) != PLUS
   && GET_CODE(operands[3]) != MINUS)))
    return -1;
  return 4223; /* *p *thumb2_alusi3_short */
}

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;
  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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 11983 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 3863; /* *p *thumb2_ldrd */
}

static int
recog_248 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  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_247 (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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 12011 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 3865; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 11998 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 3864; /* *p *thumb2_ldrd_base */

    default:
      return -1;
    }
}

static int
recog_249 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, 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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 12025 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 3866; /* *p *thumb2_strd */
}

static int
recog_250 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  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_249 (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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 12053 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 3868; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 12040 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 3867; /* *p *thumb2_strd_base */

    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, 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_250 (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 47:
          if (XINT (x7, 1) != 47)
            return -1;
          switch (GET_MODE (x5))
            {
            case E_V2SImode:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 868 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4128; /* *p iwmmxt_tandcv2si3 */

            case E_V4HImode:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 868 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4129; /* *p iwmmxt_tandcv4hi3 */

            case E_V8QImode:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 868 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4130; /* *p iwmmxt_tandcv8qi3 */

            default:
              return -1;
            }

        case 48:
          if (XINT (x7, 1) != 48)
            return -1;
          switch (GET_MODE (x5))
            {
            case E_V2SImode:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 878 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4131; /* *p iwmmxt_torcv2si3 */

            case E_V4HImode:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 878 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4132; /* *p iwmmxt_torcv4hi3 */

            case E_V8QImode:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 878 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4133; /* *p iwmmxt_torcv8qi3 */

            default:
              return -1;
            }

        case 49:
          if (XINT (x7, 1) != 49)
            return -1;
          switch (GET_MODE (x5))
            {
            case E_V2SImode:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 888 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4134; /* *p iwmmxt_torvscv2si3 */

            case E_V4HImode:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 888 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4135; /* *p iwmmxt_torvscv4hi3 */

            case E_V8QImode:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 888 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 4136; /* *p iwmmxt_torvscv8qi3 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case 2:
      if (XINT (x5, 1) != 50)
        return -1;
      x9 = XVECEXP (x5, 0, 0);
      if (x9 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
          || XINT (x7, 1) != 50)
        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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 899 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4137; /* *p iwmmxt_textrcv2si3 */

        case E_V4HImode:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 899 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4138; /* *p iwmmxt_textrcv4hi3 */

        case E_V8QImode:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 899 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt2.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4139; /* *p iwmmxt_textrcv8qi3 */

        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, 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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 164 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldrdstrd.md"
(TARGET_LDRD && TARGET_ARM && reload_completed
  && valid_operands_ldrd_strd (operands, true))))
    return -1;
  return 3869; /* *p *arm_ldrd */
}

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;
  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[4] = x5;
  x6 = XEXP (x5, 0);
  operands[5] = x6;
  x7 = XVECEXP (x2, 0, 0);
  x8 = XEXP (x7, 0);
  operands[0] = x8;
  if (!low_register_operand (operands[0], E_SImode))
    return -1;
  x9 = XEXP (x7, 1);
  x10 = XEXP (x9, 0);
  operands[1] = x10;
  if (!low_register_operand (operands[1], E_SImode))
    return -1;
  x11 = XEXP (x9, 1);
  operands[2] = x11;
  if (!low_reg_or_int_operand (operands[2], E_SImode)
      || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1224 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 4224; /* *p *thumb2_shiftsi3_short */
}

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 = XVECEXP (x2, 0, 0);
  switch (GET_CODE (x3))
    {
    case SET:
      x4 = XEXP (x3, 1);
      switch (GET_CODE (x4))
        {
        case TRUNCATE:
          if (pattern242 (x4, E_DImode, MULT, LSHIFTRT, E_SImode) != 0)
            return -1;
          x5 = XEXP (x4, 0);
          x6 = XEXP (x5, 1);
          if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 32])
            return -1;
          x7 = XVECEXP (x2, 0, 1);
          if (GET_CODE (x7) != CLOBBER)
            return -1;
          x8 = XEXP (x1, 0);
          operands[4] = x8;
          x9 = XEXP (x8, 0);
          operands[5] = x9;
          x10 = XEXP (x3, 0);
          operands[0] = x10;
          if (!s_register_operand (operands[0], E_SImode))
            return -1;
          x11 = XEXP (x5, 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;
          x14 = XEXP (x7, 0);
          operands[3] = x14;
          if (!scratch_operand (operands[3], E_SImode))
            return -1;
          switch (GET_CODE (x12))
            {
            case SIGN_EXTEND:
              if (GET_CODE (x13) != SIGN_EXTEND)
                return -1;
              x15 = XEXP (x12, 0);
              operands[1] = x15;
              if (!s_register_operand (operands[1], E_SImode))
                return -1;
              x16 = XEXP (x13, 0);
              operands[2] = x16;
              if (!s_register_operand (operands[2], E_SImode))
                return -1;
              if ((
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1948 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && !arm_arch6)))
                return 3746; /* *p *smulsi3_highpart_nov6 */
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1963 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6)))
                return -1;
              return 3747; /* *p *smulsi3_highpart_v6 */

            case ZERO_EXTEND:
              if (GET_CODE (x13) != ZERO_EXTEND)
                return -1;
              x15 = XEXP (x12, 0);
              operands[1] = x15;
              if (!s_register_operand (operands[1], E_SImode))
                return -1;
              x16 = XEXP (x13, 0);
              operands[2] = x16;
              if (!s_register_operand (operands[2], E_SImode))
                return -1;
              if ((
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1992 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && !arm_arch6)))
                return 3748; /* *p *umulsi3_highpart_nov6 */
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 2007 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6)))
                return -1;
              return 3749; /* *p *umulsi3_highpart_v6 */

            default:
              return -1;
            }

        case COMPARE:
          if (pattern242 (x4, E_SImode, NOT, AND, E_CC_NOOVmode) != 0)
            return -1;
          x5 = XEXP (x4, 0);
          x11 = XEXP (x5, 0);
          x12 = XEXP (x11, 0);
          if (!shift_operator (x12, E_SImode))
            return -1;
          operands[0] = x12;
          x17 = XEXP (x4, 1);
          if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x10 = XEXP (x3, 0);
          if (GET_CODE (x10) != REG
              || REGNO (x10) != 100
              || GET_MODE (x10) != E_CC_NOOVmode)
            return -1;
          x8 = XEXP (x1, 0);
          operands[5] = x8;
          x9 = XEXP (x8, 0);
          operands[6] = x9;
          x15 = XEXP (x12, 0);
          operands[1] = x15;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          x18 = XEXP (x12, 1);
          operands[2] = x18;
          if (!arm_rhs_operand (operands[2], E_SImode))
            return -1;
          x6 = XEXP (x5, 1);
          operands[3] = x6;
          if (!s_register_operand (operands[3], E_SImode))
            return -1;
          x7 = XVECEXP (x2, 0, 1);
          switch (GET_CODE (x7))
            {
            case CLOBBER:
              x14 = XEXP (x7, 0);
              operands[4] = x14;
              if (!scratch_operand (operands[4], E_SImode)
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3091 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM || (TARGET_THUMB2 && CONST_INT_P (operands[2])))))
                return -1;
              return 3770; /* *p andsi_not_shiftsi_si_scc_no_reuse */

            case SET:
              x19 = XEXP (x7, 1);
              if (pattern243 (x19, NOT, AND) != 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;
                  x14 = XEXP (x7, 0);
                  operands[4] = x14;
                  if (!s_register_operand (operands[4], E_SImode))
                    return -1;
                  x22 = XEXP (x19, 1);
                  if (!rtx_equal_p (x22, operands[3])
                      || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3116 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM || (TARGET_THUMB2 && CONST_INT_P (operands[2])))))
                    return -1;
                  return 3771; /* *p andsi_not_shiftsi_si_scc */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case ABS:
          if (GET_MODE (x4) != E_SImode
              || pattern213 (x1) != 0)
            return -1;
          x10 = XEXP (x3, 0);
          operands[0] = x10;
          if (!s_register_operand (operands[0], E_SImode))
            return -1;
          x5 = XEXP (x4, 0);
          operands[1] = x5;
          if (!s_register_operand (operands[1], E_SImode))
            return -1;
          if ((
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4899 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM)))
            return 3802; /* *p *arm_abssi2 */
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 131 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2)))
            return -1;
          return 4215; /* *p *thumb2_abssi2 */

        case NEG:
          if (GET_MODE (x4) != E_SImode
              || pattern271 (x1) != 0)
            return -1;
          x5 = XEXP (x4, 0);
          switch (GET_CODE (x5))
            {
            case ABS:
              if (GET_MODE (x5) != E_SImode
                  || !s_register_operand (operands[0], E_SImode))
                return -1;
              x11 = XEXP (x5, 0);
              operands[1] = x11;
              if (!s_register_operand (operands[1], E_SImode))
                return -1;
              if ((
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4963 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM)))
                return 3803; /* *p *arm_neg_abssi2 */
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 184 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2)))
                return -1;
              return 4216; /* *p *thumb2_neg_abssi2 */

            case REG:
              operands[1] = x5;
              if (!low_register_operand (operands[1], E_SImode)
                  || !low_register_operand (operands[0], E_SImode)
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1474 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed)))
                return -1;
              return 4232; /* *p *thumb2_negsi2_short */

            default:
              return -1;
            }

        case PLUS:
        case MINUS:
        case AND:
        case IOR:
        case XOR:
          x7 = XVECEXP (x2, 0, 1);
          if (GET_CODE (x7) != CLOBBER)
            return -1;
          x10 = XEXP (x3, 0);
          operands[0] = x10;
          if (s_register_operand (operands[0], E_SImode))
            {
              res = recog_246 (x1, insn, pnum_clobbers);
              if (res >= 0)
                return res;
            }
          if (!low_register_operand (operands[0], E_SImode))
            return -1;
          x14 = XEXP (x7, 0);
          if (GET_CODE (x14) != REG
              || REGNO (x14) != 100
              || GET_MODE (x14) != E_CCmode)
            return -1;
          x8 = XEXP (x1, 0);
          operands[3] = x8;
          x9 = XEXP (x8, 0);
          operands[4] = x9;
          if (GET_MODE (x4) != E_SImode)
            return -1;
          x5 = XEXP (x4, 0);
          operands[1] = x5;
          if (!low_register_operand (operands[1], E_SImode))
            return -1;
          x17 = XEXP (x4, 1);
          operands[2] = x17;
          switch (GET_CODE (x4))
            {
            case PLUS:
              if (!low_reg_or_int_operand (operands[2], E_SImode)
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1252 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed)))
                return -1;
              return 4228; /* *p *thumb2_addsi_short */

            case MINUS:
              if (!low_register_operand (operands[2], E_SImode)
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1281 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed)))
                return -1;
              return 4229; /* *p *thumb2_subsi_short */

            default:
              return -1;
            }

        case REG:
        case SUBREG:
        case MEM:
          switch (GET_CODE (x4))
            {
            case MEM:
              res = recog_248 (x1, insn, pnum_clobbers);
              if (res >= 0)
                return res;
              break;

            case REG:
            case SUBREG:
              res = recog_251 (x1, insn, pnum_clobbers);
              if (res >= 0)
                return res;
              break;

            default:
              break;
            }
          operands[2] = x4;
          if (memory_operand (operands[2], E_SImode))
            {
              res = recog_252 (x1, insn, pnum_clobbers);
              if (res >= 0)
                return res;
            }
          operands[0] = x4;
          if (!s_register_operand (operands[0], E_SImode))
            return -1;
          x7 = XVECEXP (x2, 0, 1);
          if (GET_CODE (x7) != SET)
            return -1;
          x8 = XEXP (x1, 0);
          operands[4] = x8;
          x9 = XEXP (x8, 0);
          operands[5] = x9;
          x10 = XEXP (x3, 0);
          operands[2] = x10;
          if (!memory_operand (operands[2], E_SImode))
            return -1;
          x14 = XEXP (x7, 0);
          operands[3] = x14;
          if (!memory_operand (operands[3], E_SImode))
            return -1;
          x19 = XEXP (x7, 1);
          operands[1] = x19;
          if (!s_register_operand (operands[1], E_SImode)
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 184 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldrdstrd.md"
(TARGET_LDRD && TARGET_ARM && reload_completed
  && valid_operands_ldrd_strd (operands, false))))
            return -1;
          return 3870; /* *p *arm_strd */

        case MULT:
        case ASHIFT:
        case ROTATE:
        case ASHIFTRT:
        case LSHIFTRT:
        case ROTATERT:
          operands[3] = x4;
          if (shift_operator (operands[3], E_SImode))
            {
              res = recog_253 (x1, insn, pnum_clobbers);
              if (res >= 0)
                return res;
            }
          if (GET_CODE (x4) != MULT
              || GET_MODE (x4) != E_SImode)
            return -1;
          x7 = XVECEXP (x2, 0, 1);
          if (GET_CODE (x7) != CLOBBER)
            return -1;
          x14 = XEXP (x7, 0);
          if (GET_CODE (x14) != REG
              || REGNO (x14) != 100
              || GET_MODE (x14) != E_CCmode)
            return -1;
          x8 = XEXP (x1, 0);
          operands[3] = x8;
          x9 = XEXP (x8, 0);
          operands[4] = x9;
          x10 = XEXP (x3, 0);
          operands[0] = x10;
          if (!low_register_operand (operands[0], E_SImode))
            return -1;
          x5 = XEXP (x4, 0);
          operands[1] = x5;
          if (!low_register_operand (operands[1], E_SImode))
            return -1;
          x17 = XEXP (x4, 1);
          operands[2] = x17;
          if (!low_register_operand (operands[2], E_SImode)
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1380 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && optimize_size && reload_completed)))
            return -1;
          return 4230; /* *p *thumb2_mulsi_short */

        case CONST_INT:
          operands[1] = x4;
          if (pattern271 (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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1240 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed)))
                return -1;
              return 4225; /* *p *thumb2_movqi_shortim */

            case E_HImode:
              if (!low_register_operand (operands[0], E_HImode)
                  || !const_int_operand (operands[1], E_HImode)
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1240 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed)))
                return -1;
              return 4226; /* *p *thumb2_movhi_shortim */

            case E_SImode:
              if (!low_register_operand (operands[0], E_SImode)
                  || !const_int_operand (operands[1], E_SImode)
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1240 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed)))
                return -1;
              return 4227; /* *p *thumb2_movsi_shortim */

            default:
              return -1;
            }

        case NOT:
          if (GET_MODE (x4) != E_SImode
              || pattern271 (x1) != 0
              || !low_register_operand (operands[0], E_SImode))
            return -1;
          x5 = XEXP (x4, 0);
          operands[1] = x5;
          if (!low_register_operand (operands[1], E_SImode)
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1463 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed)))
            return -1;
          return 4231; /* *p *thumb2_one_cmplsi2_short */

        case UNSPEC_VOLATILE:
          if (XVECLEN (x4, 0) != 1)
            return -1;
          x23 = XVECEXP (x4, 0, 0);
          if (x23 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return -1;
          x7 = XVECEXP (x2, 0, 1);
          if (GET_CODE (x7) != SET)
            return -1;
          x19 = XEXP (x7, 1);
          if (GET_CODE (x19) != UNSPEC_VOLATILE
              || XVECLEN (x19, 0) != 1)
            return -1;
          x8 = XEXP (x1, 0);
          operands[3] = x8;
          x9 = XEXP (x8, 0);
          operands[4] = x9;
          x10 = XEXP (x3, 0);
          operands[0] = x10;
          if (!s_register_operand (operands[0], E_SImode)
              || GET_MODE (x4) != E_SImode)
            return -1;
          x14 = XEXP (x7, 0);
          operands[1] = x14;
          x24 = XVECEXP (x19, 0, 0);
          operands[2] = x24;
          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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 523 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER)))
                    return -1;
                  return 4254; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 523 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER)))
                    return -1;
                  return 4255; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 523 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER)))
                    return -1;
                  return 4256; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 523 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER)))
                    return -1;
                  return 4257; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 549 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQEXD && ARM_DOUBLEWORD_ALIGN)))
                    return -1;
                  return 4258; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 564 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ)))
                    return -1;
                  return 4259; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 564 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ)))
                    return -1;
                  return 4260; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 564 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDACQ)))
                    return -1;
                  return 4261; /* *p arm_store_release_exclusivesi */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    case RETURN:
      x7 = XVECEXP (x2, 0, 1);
      if (GET_CODE (x7) != SET)
        return -1;
      x19 = XEXP (x7, 1);
      if (pattern243 (x19, POST_INC, MEM) != 0)
        return -1;
      x14 = XEXP (x7, 0);
      if (GET_CODE (x14) != REG
          || REGNO (x14) != 15
          || GET_MODE (x14) != E_SImode)
        return -1;
      x8 = XEXP (x1, 0);
      operands[1] = x8;
      x9 = XEXP (x8, 0);
      operands[2] = x9;
      x20 = XEXP (x19, 0);
      x21 = XEXP (x20, 0);
      operands[0] = x21;
      if (!s_register_operand (operands[0], E_SImode)
          || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 11389 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && (reload_in_progress || reload_completed))))
        return -1;
      return 3857; /* *p *ldr_with_return */

    default:
      return -1;
    }
}

static int
recog_255 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 11311 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && (reload_in_progress || reload_completed))))
            return -1;
          return 3854; /* *p *load_multiple_with_writeback */

        case MEM:
          if (pattern305 (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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 993 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 2)))
            return -1;
          return 3911; /* *p *ldm2_da */

        case REG:
          if (pattern306 (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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1018 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 2)))
            return -1;
          return 3913; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 11367 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && (reload_in_progress || reload_completed))))
        return -1;
      return 3856; /* *p *pop_multiple_with_return */

    default:
      return -1;
    }
}

static int
recog_256 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, 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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 11344 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && (reload_in_progress || reload_completed))))
        return -1;
      return 3855; /* *p *pop_multiple_with_writeback_and_return */

    case SET:
      x15 = XEXP (x5, 1);
      switch (GET_CODE (x15))
        {
        case MEM:
          if (pattern305 (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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 643 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3)))
            return -1;
          return 3895; /* *p *ldm3_da */

        case REG:
          if (pattern306 (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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 673 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3)))
            return -1;
          return 3897; /* *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 (pattern414 (x3))
                {
                case 0:
                  x7 = XEXP (x4, 1);
                  if (pattern415 (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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 880 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3)))
                        return -1;
                      return 3904; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 957 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3)))
                        return -1;
                      return 3908; /* *p *ldm2_ib_update */

                    default:
                      return -1;
                    }

                case 1:
                  x12 = XEXP (x4, 0);
                  if (pattern424 (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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 917 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3)))
                        return -1;
                      return 3906; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 981 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3)))
                        return -1;
                      return 3910; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1007 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3)))
                        return -1;
                      return 3912; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1059 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3)))
                        return -1;
                      return 3916; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1031 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3)))
                        return -1;
                      return 3914; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1083 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3)))
                        return -1;
                      return 3918; /* *p *stm2_db_update */

                    default:
                      return -1;
                    }

                default:
                  return -1;
                }

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_257 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, 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
          || pattern367 (x2) != 0)
        return -1;
      x9 = XEXP (x1, 0);
      operands[6] = x9;
      x10 = XEXP (x9, 0);
      operands[7] = x10;
      if (pattern431 (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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 37 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4)))
            return -1;
          return 3871; /* *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 (pattern461 (x19, 16) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 160 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4)))
                return -1;
              return 3875; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 231 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4)))
                return -1;
              return 3879; /* *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 (pattern461 (x19, -4) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 302 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4)))
                return -1;
              return 3883; /* *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
          || pattern390 (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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 108 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4)))
            return -1;
          return 3873; /* *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 (pattern462 (x34, 16) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 196 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4)))
                return -1;
              return 3877; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 266 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4)))
                return -1;
              return 3881; /* *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 (pattern462 (x34, -4) != 0
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 338 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4)))
                return -1;
              return 3885; /* *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 (pattern414 (x4))
            {
            case 0:
              if (pattern366 (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
                  || pattern442 (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 (pattern453 (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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 508 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4)))
                    return -1;
                  return 3888; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 600 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4)))
                    return -1;
                  return 3892; /* *p *ldm3_ib_update */

                default:
                  return -1;
                }

            case 1:
              if (pattern389 (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 (pattern456 (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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 552 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4)))
                    return -1;
                  return 3890; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 628 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4)))
                    return -1;
                  return 3894; /* *p *stm3_ib_update */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case -12L:
          x8 = XEXP (x4, 1);
          switch (GET_CODE (x8))
            {
            case MEM:
              if (pattern367 (x2) != 0
                  || pattern442 (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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 660 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4)))
                    return -1;
                  return 3896; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 722 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4)))
                    return -1;
                  return 3900; /* *p *ldm3_db_update */

                default:
                  return -1;
                }

            case REG:
              operands[1] = x8;
              if (!arm_hard_general_register_operand (operands[1], E_SImode)
                  || pattern390 (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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 688 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 4)))
                    return -1;
                  return 3898; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 750 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 4)))
                    return -1;
                  return 3902; /* *p *stm3_db_update */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        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, 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 (pattern414 (x6))
        {
        case 0:
          if (pattern429 (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
              || pattern448 (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 (pattern453 (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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 74 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 5)))
                return -1;
              return 3872; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 181 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 5)))
                return -1;
              return 3876; /* *p *ldm4_ib_update */

            default:
              return -1;
            }

        case 1:
          if (pattern433 (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
              || pattern454 (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 (pattern456 (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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 125 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 5)))
                return -1;
              return 3874; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 213 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 5)))
                return -1;
              return 3878; /* *p *stm4_ib_update */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case -16L:
      x24 = XEXP (x6, 1);
      switch (GET_CODE (x24))
        {
        case MEM:
          if (pattern368 (x24) != 0
              || pattern429 (x2) != 0
              || pattern448 (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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 251 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 5)))
                return -1;
              return 3880; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 323 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 5)))
                return -1;
              return 3884; /* *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 (pattern391 (x39) != 0
              || pattern433 (x2) != 0
              || pattern454 (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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 283 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 5)))
                return -1;
              return 3882; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 355 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 5)))
                return -1;
              return 3886; /* *p *stm4_db_update */

            default:
              return -1;
            }

        default:
          return -1;
        }

    default:
      return -1;
    }
}

static int
recog_259 (rtx x1 ATTRIBUTE_UNUSED,
	rtx_insn *insn ATTRIBUTE_UNUSED,
	int *pnum_clobbers ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, 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 (pattern415 (x12) != 0
          || pattern431 (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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 477 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3)))
            return -1;
          return 3887; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 582 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3)))
                return -1;
              return 3891; /* *p *ldm3_ib */

            case -12L:
              if (XWINT (x11, 0) != -8L)
                return -1;
              x15 = XEXP (x14, 1);
              if (XWINT (x15, 0) != -4L
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 704 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3)))
                return -1;
              return 3899; /* *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 (pattern424 (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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 537 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3)))
            return -1;
          return 3889; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 3)))
                return -1;
              return 3893; /* *p *stm3_ib */

            case -12L:
              if (XWINT (x23, 0) != -8L)
                return -1;
              x27 = XEXP (x26, 1);
              if (XWINT (x27, 0) != -4L
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 735 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 3)))
                return -1;
              return 3901; /* *p *stm3_db */

            default:
              return -1;
            }

        default:
          return -1;
        }

    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, 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
          || pattern368 (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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 855 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 2)))
            return -1;
          return 3903; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 942 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 2)))
                return -1;
              return 3907; /* *p *ldm2_ib */

            case -8L:
              x13 = XEXP (x12, 1);
              if (XWINT (x13, 0) != -4L
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1044 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 2)))
                return -1;
              return 3915; /* *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 (pattern391 (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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 904 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 2)))
            return -1;
          return 3905; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 968 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_ARM && XVECLEN (operands[0], 0) == 2)))
                return -1;
              return 3909; /* *p *stm2_ib */

            case -8L:
              x19 = XEXP (x18, 1);
              if (XWINT (x19, 0) != -4L
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1070 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldmstm.md"
(TARGET_32BIT && XVECLEN (operands[0], 0) == 2)))
                return -1;
              return 3917; /* *p *stm2_db */

            default:
              return -1;
            }

        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, x5, x6, x7, x8, x9;
  rtx x10, x11, x12;
  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_242 (x1, insn, pnum_clobbers);

    case PLUS:
      return recog_231 (x1, insn, pnum_clobbers);

    case COMPARE:
      return recog_235 (x1, insn, pnum_clobbers);

    case MINUS:
      return recog_230 (x1, insn, pnum_clobbers);

    case MULT:
    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      x4 = XEXP (x1, 0);
      operands[3] = x4;
      res = recog_227 (x1, insn, pnum_clobbers);
      if (res >= 0)
        return res;
      operands[3] = x3;
      if (!shift_operator (operands[3], E_SImode))
        return -1;
      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 (!reg_or_int_operand (operands[2], E_SImode)
          || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4237 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
        return -1;
      return 3790; /* *p *arm_shiftsi3 */

    case AND:
      return recog_238 (x1, insn, pnum_clobbers);

    case IOR:
      return recog_236 (x1, insn, pnum_clobbers);

    case XOR:
      x6 = XEXP (x2, 0);
      operands[0] = x6;
      x7 = XEXP (x3, 0);
      switch (GET_CODE (x7))
        {
        case ZERO_EXTEND:
          if (pattern235 (x1) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3426 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 3775; /* *p *xordi_zesidi_di */

        case SIGN_EXTEND:
          if (pattern235 (x1) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3440 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 3776; /* *p *xordi_sesidi_di */

        case REG:
        case SUBREG:
          switch (pattern238 (x1))
            {
            case 0:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3485 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
                return -1;
              return 3777; /* *p *arm_xorsi3 */

            case 1:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 75 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 3924; /* *p iwmmxt_xordi3 */

            case 2:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 337 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 3936; /* *p *xorv2si3_iwmmxt */

            case 3:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 337 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 3937; /* *p *xorv4hi3_iwmmxt */

            case 4:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 337 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 3938; /* *p *xorv8qi3_iwmmxt */

            default:
              return -1;
            }

        case MULT:
          if (pattern234 (x1) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9065 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 3845; /* *p *eor_multsi */

        case ASHIFT:
        case ROTATE:
        case ASHIFTRT:
        case LSHIFTRT:
        case ROTATERT:
          operands[2] = x7;
          if (pattern266 (x1) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 9079 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && GET_CODE (operands[2]) != MULT)))
            return -1;
          return 3850; /* *p *eor_shiftsi */

        default:
          return -1;
        }

    case SMAX:
      return recog_245 (x1, insn, pnum_clobbers);

    case SMIN:
      switch (pattern183 (x1))
        {
        case 0:
          x8 = XEXP (x3, 1);
          if (XWINT (x8, 0) != 0L)
            return -1;
          x4 = XEXP (x1, 0);
          operands[2] = x4;
          x5 = XEXP (x4, 0);
          operands[3] = x5;
          if (!s_register_operand (operands[0], E_SImode)
              || GET_MODE (x3) != E_SImode
              || !s_register_operand (operands[1], E_SImode)
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3769 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT)))
            return -1;
          return 3781; /* *p *smin_0 */

        case 1:
          switch (pattern287 (x1))
            {
            case 0:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 932 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 3996; /* *p *sminv2si3_iwmmxt */

            case 1:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 932 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 3997; /* *p *sminv4hi3_iwmmxt */

            case 2:
              if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 932 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
                return -1;
              return 3998; /* *p *sminv8qi3_iwmmxt */

            default:
              return -1;
            }

        case 2:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3992 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6 && SMIN != SMIN
   && arm_sat_operator_match (operands[1], operands[2], NULL, NULL))))
            return -1;
          return 3782; /* *p *satsi_smin */

        case 3:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4018 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6 && SMIN != SMIN
   && arm_sat_operator_match (operands[1], operands[2], NULL, NULL))))
            return -1;
          return 3786; /* *p *satsi_smin_shift */

        case 4:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 3992 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6 && SMIN != SMAX
   && arm_sat_operator_match (operands[1], operands[2], NULL, NULL))))
            return -1;
          return 3784; /* *p *satsi_smin */

        case 5:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4018 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch6 && SMIN != SMAX
   && arm_sat_operator_match (operands[1], operands[2], NULL, NULL))))
            return -1;
          return 3788; /* *p *satsi_smin_shift */

        default:
          return -1;
        }

    case NOT:
      return recog_244 (x1, insn, pnum_clobbers);

    case UNSPEC:
      return recog_229 (x1, insn, pnum_clobbers);

    case SIGN_EXTEND:
      return recog_239 (x1, insn, pnum_clobbers);

    case ZERO_EXTEND:
      return recog_237 (x1, insn, pnum_clobbers);

    case SIGN_EXTRACT:
      if (pattern184 (x1) != 0
          || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4566 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 3797; /* *p *extv_reg */

    case ZERO_EXTRACT:
      if (pattern184 (x1) != 0
          || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4580 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 3798; /* *p extzv_t2 */

    case DIV:
      x4 = XEXP (x1, 0);
      operands[3] = x4;
      x5 = XEXP (x4, 0);
      operands[4] = x5;
      x6 = XEXP (x2, 0);
      operands[0] = x6;
      x7 = XEXP (x3, 0);
      operands[1] = x7;
      x8 = XEXP (x3, 1);
      operands[2] = x8;
      switch (GET_MODE (operands[0]))
        {
        case E_SImode:
          if (pattern186 (x3, E_SImode) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4595 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_IDIV)))
            return -1;
          return 3799; /* *p divsi3 */

        case E_SFmode:
          if (pattern186 (x3, E_SFmode) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1038 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 4159; /* *p *divsf3_vfp */

        case E_DFmode:
          if (pattern186 (x3, E_DFmode) != 0
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1049 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 4160; /* *p *divdf3_vfp */

        default:
          return -1;
        }

    case UDIV:
      if (GET_MODE (x3) != E_SImode)
        return -1;
      x4 = XEXP (x1, 0);
      operands[3] = x4;
      x5 = XEXP (x4, 0);
      operands[4] = x5;
      x6 = XEXP (x2, 0);
      operands[0] = x6;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x7 = XEXP (x3, 0);
      operands[1] = x7;
      if (!s_register_operand (operands[1], E_SImode))
        return -1;
      x8 = XEXP (x3, 1);
      operands[2] = x8;
      if (!s_register_operand (operands[2], E_SImode)
          || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 4608 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_IDIV)))
        return -1;
      return 3800; /* *p udivsi3 */

    case NEG:
      return recog_243 (x1, insn, pnum_clobbers);

    case LO_SUM:
      if (GET_MODE (x3) != E_SImode)
        return -1;
      x4 = XEXP (x1, 0);
      operands[3] = x4;
      x5 = XEXP (x4, 0);
      operands[4] = x5;
      x6 = XEXP (x2, 0);
      operands[0] = x6;
      if (!nonimmediate_operand (operands[0], E_SImode))
        return -1;
      x7 = XEXP (x3, 0);
      operands[1] = x7;
      if (!nonimmediate_operand (operands[1], E_SImode))
        return -1;
      x8 = XEXP (x3, 1);
      operands[2] = x8;
      if (!general_operand (operands[2], E_SImode)
          || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 6069 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_HAVE_MOVT && arm_valid_symbolic_address_p (operands[2]))))
        return -1;
      return 3825; /* *p *arm_movt */

    case CLZ:
      if (GET_MODE (x3) != E_SImode)
        return -1;
      x4 = XEXP (x1, 0);
      operands[2] = x4;
      x5 = XEXP (x4, 0);
      operands[3] = 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)
          || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 11566 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch5t)))
        return -1;
      return 3858; /* *p clzsi2 */

    case BSWAP:
      if (GET_MODE (x3) != E_SImode)
        return -1;
      x4 = XEXP (x1, 0);
      operands[2] = x4;
      x5 = XEXP (x4, 0);
      operands[3] = 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)
          || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 11735 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(arm_arch6)))
        return -1;
      return 3862; /* *p *arm_rev */

    case VEC_DUPLICATE:
      x4 = XEXP (x1, 0);
      operands[2] = x4;
      x5 = XEXP (x4, 0);
      operands[3] = x5;
      x6 = XEXP (x2, 0);
      operands[0] = x6;
      x7 = XEXP (x3, 0);
      operands[1] = x7;
      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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 33 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3920; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 42 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3921; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 51 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3922; /* *p tbcstv2si */

        default:
          return -1;
        }

    case SS_PLUS:
      switch (pattern187 (x1))
        {
        case 0:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3942; /* *p ssaddv8qi3 */

        case 1:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 370 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3943; /* *p ssaddv4hi3 */

        case 2:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 380 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3944; /* *p ssaddv2si3 */

        case 3:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 53 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 4281; /* *p ssaddv4qq3 */

        case 4:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 53 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 4282; /* *p ssaddv2hq3 */

        case 5:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 53 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 4283; /* *p ssaddqq3 */

        case 6:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 53 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 4284; /* *p ssaddhq3 */

        case 7:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 53 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 4285; /* *p ssaddv2ha3 */

        case 8:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 53 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 4286; /* *p ssaddha3 */

        case 9:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 53 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 4287; /* *p ssaddsq3 */

        case 10:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 53 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 4288; /* *p ssaddsa3 */

        default:
          return -1;
        }

    case US_PLUS:
      switch (pattern188 (x1))
        {
        case 0:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 390 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3945; /* *p usaddv8qi3 */

        case 1:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 400 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3946; /* *p usaddv4hi3 */

        case 2:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 410 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3947; /* *p usaddv2si3 */

        case 3:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 44 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 4275; /* *p usaddv4uqq3 */

        case 4:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 44 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 4276; /* *p usaddv2uhq3 */

        case 5:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 44 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 4277; /* *p usadduqq3 */

        case 6:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 44 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 4278; /* *p usadduhq3 */

        case 7:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 44 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 4279; /* *p usaddv2uha3 */

        case 8:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 44 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 4280; /* *p usadduha3 */

        default:
          return -1;
        }

    case SS_MINUS:
      switch (pattern187 (x1))
        {
        case 0:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 430 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3951; /* *p sssubv8qi3 */

        case 1:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 440 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3952; /* *p sssubv4hi3 */

        case 2:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 450 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3953; /* *p sssubv2si3 */

        case 3:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 91 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 4308; /* *p sssubv4qq3 */

        case 4:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 91 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 4309; /* *p sssubv2hq3 */

        case 5:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 91 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 4310; /* *p sssubqq3 */

        case 6:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 91 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 4311; /* *p sssubhq3 */

        case 7:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 91 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 4312; /* *p sssubv2ha3 */

        case 8:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 91 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 4313; /* *p sssubha3 */

        case 9:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 91 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 4314; /* *p sssubsq3 */

        case 10:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 91 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 4315; /* *p sssubsa3 */

        default:
          return -1;
        }

    case US_MINUS:
      switch (pattern188 (x1))
        {
        case 0:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 460 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3954; /* *p ussubv8qi3 */

        case 1:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 470 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3955; /* *p ussubv4hi3 */

        case 2:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 480 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3956; /* *p ussubv2si3 */

        case 3:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 82 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 4302; /* *p ussubv4uqq3 */

        case 4:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 82 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 4303; /* *p ussubv2uhq3 */

        case 5:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 82 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 4304; /* *p ussubuqq3 */

        case 6:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 82 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 4305; /* *p ussubuhq3 */

        case 7:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 82 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 4306; /* *p ussubv2uha3 */

        case 8:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 82 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
            return -1;
          return 4307; /* *p ussubuha3 */

        default:
          return -1;
        }

    case TRUNCATE:
      return recog_228 (x1, insn, pnum_clobbers);

    case VEC_MERGE:
      return recog_232 (x1, insn, pnum_clobbers);

    case VEC_SELECT:
      return recog_241 (x1, insn, pnum_clobbers);

    case UNSPEC_VOLATILE:
      return recog_233 (x1, insn, pnum_clobbers);

    case UMAX:
      switch (pattern189 (x1))
        {
        case 0:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 922 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3993; /* *p *umaxv2si3_iwmmxt */

        case 1:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 922 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3994; /* *p *umaxv4hi3_iwmmxt */

        case 2:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 922 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3995; /* *p *umaxv8qi3_iwmmxt */

        default:
          return -1;
        }

    case UMIN:
      switch (pattern189 (x1))
        {
        case 0:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 942 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 3999; /* *p *uminv2si3_iwmmxt */

        case 1:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 942 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4000; /* *p *uminv4hi3_iwmmxt */

        case 2:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 942 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iwmmxt.md"
(TARGET_REALLY_IWMMXT)))
            return -1;
          return 4001; /* *p *uminv8qi3_iwmmxt */

        default:
          return -1;
        }

    case VEC_CONCAT:
      return recog_234 (x1, insn, pnum_clobbers);

    case ABS:
      switch (pattern190 (x1))
        {
        case 0:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 833 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 4151; /* *p *abssf2_vfp */

        case 1:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 842 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 4152; /* *p *absdf2_vfp */

        default:
          return -1;
        }

    case FMA:
      return recog_240 (x1, insn, pnum_clobbers);

    case FLOAT_EXTEND:
      x4 = XEXP (x1, 0);
      operands[2] = x4;
      x5 = XEXP (x4, 0);
      operands[3] = x5;
      x6 = XEXP (x2, 0);
      operands[0] = x6;
      x7 = XEXP (x3, 0);
      operands[1] = x7;
      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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1419 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
                return -1;
              return 4183; /* *p *extendsfdf2_vfp */

            case E_HFmode:
              if (!s_register_operand (operands[1], E_HFmode)
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1455 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_FP16_TO_DOUBLE)))
                return -1;
              return 4187; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1437 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && (TARGET_FP16 || TARGET_VFP_FP16INST))))
            return -1;
          return 4185; /* *p extendhfsf2 */

        default:
          return -1;
        }

    case FLOAT_TRUNCATE:
      x4 = XEXP (x1, 0);
      operands[2] = x4;
      x5 = XEXP (x4, 0);
      operands[3] = x5;
      x6 = XEXP (x2, 0);
      operands[0] = x6;
      x7 = XEXP (x3, 0);
      operands[1] = x7;
      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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1428 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 4184; /* *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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1446 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_FP16_TO_DOUBLE)))
                return -1;
              return 4186; /* *p *truncdfhf2 */

            case E_SFmode:
              if (!s_register_operand (operands[1], E_SFmode)
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1464 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && (TARGET_FP16 || TARGET_VFP_FP16INST))))
                return -1;
              return 4188; /* *p truncsfhf2 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case FIX:
      if (GET_MODE (x3) != E_SImode)
        return -1;
      x7 = XEXP (x3, 0);
      if (GET_CODE (x7) != FIX)
        return -1;
      x6 = XEXP (x2, 0);
      operands[0] = x6;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x9 = XEXP (x7, 0);
      switch (GET_CODE (x9))
        {
        case REG:
        case SUBREG:
          operands[1] = x9;
          x4 = XEXP (x1, 0);
          operands[2] = x4;
          x5 = XEXP (x4, 0);
          operands[3] = x5;
          switch (GET_MODE (x7))
            {
            case E_SFmode:
              if (!s_register_operand (operands[1], E_SFmode)
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1473 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
                return -1;
              return 4189; /* *p *truncsisf2_vfp */

            case E_DFmode:
              if (!s_register_operand (operands[1], E_DFmode)
                  || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1482 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
                return -1;
              return 4190; /* *p *truncsidf2_vfp */

            default:
              return -1;
            }

        case MULT:
          if (GET_MODE (x9) != E_SFmode)
            return -1;
          x4 = XEXP (x1, 0);
          operands[3] = x4;
          x5 = XEXP (x4, 0);
          operands[4] = x5;
          if (GET_MODE (x7) != E_SFmode)
            return -1;
          x10 = XEXP (x9, 0);
          operands[1] = x10;
          if (!s_register_operand (operands[1], E_SFmode))
            return -1;
          x11 = XEXP (x9, 1);
          operands[2] = x11;
          if (!const_double_vcvt_power_of_two (operands[2], E_VOIDmode)
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1754 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP3 && !flag_rounding_math)))
            return -1;
          return 4207; /* *p *combine_vcvtf2i */

        default:
          return -1;
        }

    case UNSIGNED_FIX:
      if (GET_MODE (x3) != E_SImode)
        return -1;
      x7 = XEXP (x3, 0);
      if (GET_CODE (x7) != FIX)
        return -1;
      x4 = XEXP (x1, 0);
      operands[2] = x4;
      x5 = XEXP (x4, 0);
      operands[3] = x5;
      x6 = XEXP (x2, 0);
      operands[0] = x6;
      if (!s_register_operand (operands[0], E_SImode))
        return -1;
      x9 = XEXP (x7, 0);
      operands[1] = x9;
      switch (GET_MODE (x7))
        {
        case E_SFmode:
          if (!s_register_operand (operands[1], E_SFmode)
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1492 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 4191; /* *p fixuns_truncsfsi2 */

        case E_DFmode:
          if (!s_register_operand (operands[1], E_DFmode)
              || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1501 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 4192; /* *p fixuns_truncdfsi2 */

        default:
          return -1;
        }

    case FLOAT:
      switch (pattern191 (x1))
        {
        case 0:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1511 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 4193; /* *p *floatsisf2_vfp */

        case 1:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1520 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 4194; /* *p *floatsidf2_vfp */

        default:
          return -1;
        }

    case UNSIGNED_FLOAT:
      switch (pattern191 (x1))
        {
        case 0:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1530 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 4195; /* *p floatunssisf2 */

        case 1:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1539 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 4196; /* *p floatunssidf2 */

        default:
          return -1;
        }

    case SQRT:
      switch (pattern190 (x1))
        {
        case 0:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1575 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT)))
            return -1;
          return 4197; /* *p *sqrtsf2_vfp */

        case 1:
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 1585 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE)))
            return -1;
          return 4198; /* *p *sqrtdf2_vfp */

        default:
          return -1;
        }

    case SS_TRUNCATE:
      if (GET_MODE (x3) != E_HImode)
        return -1;
      x7 = XEXP (x3, 0);
      if (!sat_shift_operator (x7, E_SImode))
        return -1;
      operands[1] = x7;
      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_HImode))
        return -1;
      x9 = XEXP (x7, 0);
      operands[2] = x9;
      if (!s_register_operand (operands[2], E_SImode))
        return -1;
      x12 = XEXP (x7, 1);
      operands[3] = x12;
      if (!immediate_operand (operands[3], E_SImode)
          || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 408 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT && arm_arch6)))
        return -1;
      return 4316; /* *p arm_ssatsihi_shift */

    case US_TRUNCATE:
      if (GET_MODE (x3) != E_HImode)
        return -1;
      x4 = XEXP (x1, 0);
      operands[2] = x4;
      x5 = XEXP (x4, 0);
      operands[3] = x5;
      x6 = XEXP (x2, 0);
      operands[0] = x6;
      if (!s_register_operand (operands[0], E_HImode))
        return -1;
      x7 = XEXP (x3, 0);
      operands[1] = x7;
      if (!s_register_operand (operands[1], E_SImode)
          || !(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 417 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD)))
        return -1;
      return 4317; /* *p arm_usatsihi */

    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, x7, x8, x9;
  rtx x10;
  int res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    case COMPARE:
      return recog_202 (x1, insn, pnum_clobbers);

    case MULT:
    case ASHIFT:
    case ROTATE:
    case ASHIFTRT:
    case LSHIFTRT:
    case ROTATERT:
      return recog_204 (x1, insn, pnum_clobbers);

    case TRUNCATE:
      return recog_196 (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_216 (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 GEU:
        case GTU:
        case LEU:
        case LTU:
        case UNORDERED:
        case ORDERED:
        case UNEQ:
        case UNGE:
        case UNGT:
        case UNLE:
        case UNLT:
        case LTGT:
          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_65 (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 10142 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return -1;
          *pnum_clobbers = 1;
          return 272; /* movcond_addsi */

        default:
          return -1;
        }

    case SMIN:
    case SMAX:
    case UMIN:
    case UMAX:
      return recog_207 (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_71 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        case MINUS:
          res = recog_74 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        case AND:
          res = recog_75 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        case IOR:
          res = recog_76 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        case XOR:
          res = recog_77 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        default:
          break;
        }
      if (pnum_clobbers != NULL)
        {
          res = recog_78 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      if (GET_MODE (x2) == E_SImode)
        {
          res = recog_79 (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_80 (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 794 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_restrict_it))
                                {
                                  *pnum_clobbers = 1;
                                  return 906; /* *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 1252 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
            return -1;
          *pnum_clobbers = 1;
          return 923; /* *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 1281 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
            return -1;
          *pnum_clobbers = 1;
          return 924; /* *thumb2_subsi_short */

        default:
          return -1;
        }

    case NOT:
      return recog_205 (x1, insn, pnum_clobbers);

    case UNSPEC:
      return recog_197 (x1, insn, pnum_clobbers);

    case SIGN_EXTEND:
      return recog_208 (x1, insn, pnum_clobbers);

    case ZERO_EXTEND:
      return recog_203 (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 4566 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 142; /* *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 11210 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
        return -1;
      *pnum_clobbers = 1;
      return 304; /* *sign_extract_onebit */

    case ZERO_EXTRACT:
      if (pattern1 (x1) != 0
          || !
#line 4580 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 143; /* 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 (pattern3 (x2, E_SImode) != 0
              || !
#line 4595 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_IDIV))
            return -1;
          return 144; /* divsi3 */

        case E_HFmode:
          if (pattern3 (x2, E_HFmode) != 0
              || !
#line 1025 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 687; /* divhf3 */

        case E_SFmode:
          if (pattern3 (x2, E_SFmode) != 0
              || !
#line 1038 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
            return -1;
          return 688; /* *divsf3_vfp */

        case E_DFmode:
          if (pattern3 (x2, E_DFmode) != 0
              || !
#line 1049 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
            return -1;
          return 689; /* *divdf3_vfp */

        default:
          return -1;
        }

    case UDIV:
      if (pattern2 (x1, E_SImode) != 0
          || !
#line 4608 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_IDIV))
        return -1;
      return 145; /* udivsi3 */

    case NEG:
      return recog_194 (x1, insn, pnum_clobbers);

    case ABS:
      return recog_206 (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_195 (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 6069 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_HAVE_MOVT && arm_valid_symbolic_address_p (operands[2])))
        return -1;
      return 180; /* *arm_movt */

    case UNSPEC_VOLATILE:
      return recog_201 (x1, insn, pnum_clobbers);

    case CLZ:
      x6 = XEXP (x1, 0);
      operands[0] = x6;
      x3 = XEXP (x2, 0);
      operands[1] = x3;
      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)
              || !
#line 11566 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch5t))
            return -1;
          return 321; /* clzsi2 */

        case E_V8QImode:
          if (!s_register_operand (operands[0], E_V8QImode)
              || GET_MODE (x2) != E_V8QImode
              || !s_register_operand (operands[1], E_V8QImode)
              || !
#line 3649 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1875; /* clzv8qi2 */

        case E_V16QImode:
          if (!s_register_operand (operands[0], E_V16QImode)
              || GET_MODE (x2) != E_V16QImode
              || !s_register_operand (operands[1], E_V16QImode)
              || !
#line 3649 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1876; /* clzv16qi2 */

        case E_V4HImode:
          if (!s_register_operand (operands[0], E_V4HImode)
              || GET_MODE (x2) != E_V4HImode
              || !s_register_operand (operands[1], E_V4HImode)
              || !
#line 3649 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1877; /* clzv4hi2 */

        case E_V8HImode:
          if (!s_register_operand (operands[0], E_V8HImode)
              || GET_MODE (x2) != E_V8HImode
              || !s_register_operand (operands[1], E_V8HImode)
              || !
#line 3649 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1878; /* clzv8hi2 */

        case E_V2SImode:
          if (!s_register_operand (operands[0], E_V2SImode)
              || GET_MODE (x2) != E_V2SImode
              || !s_register_operand (operands[1], E_V2SImode)
              || !
#line 3649 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1879; /* clzv2si2 */

        case E_V4SImode:
          if (!s_register_operand (operands[0], E_V4SImode)
              || GET_MODE (x2) != E_V4SImode
              || !s_register_operand (operands[1], E_V4SImode)
              || !
#line 3649 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1880; /* clzv4si2 */

        default:
          return -1;
        }

    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 11586 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch_thumb2))
        return -1;
      return 323; /* ctzsi2 */

    case BSWAP:
      return recog_217 (x1, insn, pnum_clobbers);

    case VEC_DUPLICATE:
      return recog_200 (x1, insn, pnum_clobbers);

    case SS_PLUS:
      return recog_212 (x1, insn, pnum_clobbers);

    case US_PLUS:
      return recog_214 (x1, insn, pnum_clobbers);

    case SS_MINUS:
      return recog_211 (x1, insn, pnum_clobbers);

    case US_MINUS:
      return recog_213 (x1, insn, pnum_clobbers);

    case VEC_MERGE:
      return recog_199 (x1, insn, pnum_clobbers);

    case VEC_SELECT:
      return recog_210 (x1, insn, pnum_clobbers);

    case VEC_CONCAT:
      return recog_209 (x1, insn, pnum_clobbers);

    case FMA:
      return recog_198 (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 1419 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
                return -1;
              return 723; /* *extendsfdf2_vfp */

            case E_HFmode:
              if (!s_register_operand (operands[1], E_HFmode)
                  || !
#line 1455 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_FP16_TO_DOUBLE))
                return -1;
              return 727; /* *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 1437 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && (TARGET_FP16 || TARGET_VFP_FP16INST)))
            return -1;
          return 725; /* 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 1428 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
            return -1;
          return 724; /* *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 1446 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_FP16_TO_DOUBLE))
                return -1;
              return 726; /* *truncdfhf2 */

            case E_SFmode:
              if (!s_register_operand (operands[1], E_SFmode)
                  || !
#line 1464 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && (TARGET_FP16 || TARGET_VFP_FP16INST)))
                return -1;
              return 728; /* truncsfhf2 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case FIX:
      return recog_215 (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 1492 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
                return -1;
              return 731; /* fixuns_truncsfsi2 */

            case E_DFmode:
              if (!s_register_operand (operands[1], E_DFmode)
                  || !
#line 1501 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
                return -1;
              return 732; /* fixuns_truncdfsi2 */

            default:
              return -1;
            }

        case UNSPEC:
          switch (pattern112 (x2))
            {
            case 0:
              if (!
#line 1912 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
                return -1;
              return 787; /* lceilusfsi2 */

            case 1:
              if (!(
#line 1912 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 52 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
                return -1;
              return 793; /* lceiludfsi2 */

            case 2:
              if (!
#line 1912 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
                return -1;
              return 788; /* lfloorusfsi2 */

            case 3:
              if (!(
#line 1912 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 52 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
                return -1;
              return 794; /* lfloorudfsi2 */

            case 4:
              if (!
#line 1912 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 ))
                return -1;
              return 789; /* lroundusfsi2 */

            case 5:
              if (!(
#line 1912 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT && TARGET_VFP5 && TARGET_VFP_DOUBLE) && 
#line 52 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_VFP_DOUBLE)))
                return -1;
              return 795; /* lroundudfsi2 */

            case 6:
              if (!
#line 787 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
                return -1;
              return 1090; /* neon_vcvtpuv2sfv2si */

            case 7:
              if (!
#line 787 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
                return -1;
              return 1096; /* neon_vcvtpuv4sfv4si */

            case 8:
              if (!
#line 787 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
                return -1;
              return 1091; /* neon_vcvtmuv2sfv2si */

            case 9:
              if (!
#line 787 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
                return -1;
              return 1097; /* neon_vcvtmuv4sfv4si */

            case 10:
              if (!
#line 787 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
                return -1;
              return 1092; /* neon_vcvtauv2sfv2si */

            case 11:
              if (!
#line 787 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && TARGET_VFP5))
                return -1;
              return 1098; /* neon_vcvtauv4sfv4si */

            default:
              return -1;
            }

        case REG:
        case SUBREG:
          switch (pattern113 (x2))
            {
            case 0:
              if (!
#line 4193 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1956; /* fixuns_truncv2sfv2si2 */

            case 1:
              if (!
#line 4193 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
                return -1;
              return 1957; /* fixuns_truncv4sfv4si2 */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case FLOAT:
      switch (pattern6 (x1))
        {
        case 0:
          if (!
#line 1511 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
            return -1;
          return 733; /* *floatsisf2_vfp */

        case 1:
          if (!
#line 1520 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
            return -1;
          return 734; /* *floatsidf2_vfp */

        case 2:
          if (!
#line 4169 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !flag_rounding_math))
            return -1;
          return 1950; /* floatv2siv2sf2 */

        case 3:
          if (!
#line 4169 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !flag_rounding_math))
            return -1;
          return 1951; /* floatv4siv4sf2 */

        default:
          return -1;
        }

    case UNSIGNED_FLOAT:
      switch (pattern6 (x1))
        {
        case 0:
          if (!
#line 1530 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
            return -1;
          return 735; /* floatunssisf2 */

        case 1:
          if (!
#line 1539 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
            return -1;
          return 736; /* floatunssidf2 */

        case 2:
          if (!
#line 4177 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !flag_rounding_math))
            return -1;
          return 1952; /* floatunsv2siv2sf2 */

        case 3:
          if (!
#line 4177 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && !flag_rounding_math))
            return -1;
          return 1953; /* 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 1551 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_VFP_FP16INST))
            return -1;
          return 737; /* 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 1575 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
            return -1;
          return 739; /* *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 1585 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
            return -1;
          return 740; /* *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 3666 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1881; /* 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 3666 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON))
            return -1;
          return 1882; /* popcountv16qi2 */

        default:
          return -1;
        }

    case SS_MULT:
      if (pnum_clobbers == NULL
          || pattern2 (x1, E_SAmode) != 0
          || !
#line 208 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT && arm_arch6))
        return -1;
      *pnum_clobbers = 3;
      return 2818; /* ssmulsa3 */

    case US_MULT:
      if (pnum_clobbers == NULL
          || pattern2 (x1, E_USAmode) != 0
          || !
#line 268 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT && arm_arch6))
        return -1;
      *pnum_clobbers = 3;
      return 2819; /* 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 408 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_32BIT && arm_arch6))
        return -1;
      return 2820; /* 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 417 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm-fixed.md"
(TARGET_INT_SIMD))
        return -1;
      return 2821; /* arm_usatsihi */

    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;
  int res ATTRIBUTE_UNUSED;
  recog_data.insn = NULL;
  switch (GET_CODE (x1))
    {
    case PARALLEL:
      switch (XVECLEN (x1, 0))
        {
        case 2:
          res = recog_32 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        case 3:
          res = recog_34 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        case 4:
          res = recog_35 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        case 8:
          res = recog_36 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        case 5:
          res = recog_37 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        case 6:
          res = recog_38 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
          break;

        default:
          break;
        }
      if (XVECLEN (x1, 0) >= 1)
        {
          operands[2] = x1;
          res = recog_39 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      operands[0] = x1;
      if (XVECLEN (operands[0], 0) >= 2)
        {
          res = recog_40 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      if (XVECLEN (operands[0], 0) >= 3)
        {
          res = recog_41 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      if (XVECLEN (operands[0], 0) >= 4)
        {
          res = recog_42 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      if (XVECLEN (operands[0], 0) >= 5)
        {
          res = recog_43 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      if (XVECLEN (operands[0], 0) >= 3)
        {
          res = recog_44 (x1, insn, pnum_clobbers);
          if (res >= 0)
            return res;
        }
      if (XVECLEN (operands[0], 0) >= 2)
        {
          res = recog_45 (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 12088 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed))
                        return 407; /* *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 332 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2
   && INTVAL (operands[5]) == INTVAL (operands[2]) + 4))
            return -1;
          return 887; /* *thumb2_storewb_pairsi */

        case 4:
          if (pattern0 (x1, 18) != 0
              || pattern117 (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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
            return -1;
          return 2674; /* 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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              *pnum_clobbers = 2;
              return 2674; /* atomic_exchangesi */

            case 19:
              x19 = XVECEXP (x13, 0, 0);
              if (GET_MODE (x19) != E_SImode)
                return -1;
              switch (pattern397 (x19))
                {
                case 0:
                  if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2710; /* atomic_fetch_addsi */

                case 1:
                  if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2711; /* atomic_fetch_subsi */

                case 2:
                  if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2712; /* atomic_fetch_orsi */

                case 3:
                  if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2713; /* atomic_fetch_xorsi */

                case 4:
                  if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2714; /* atomic_fetch_andsi */

                case 5:
                  if (!
#line 386 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                    return -1;
                  *pnum_clobbers = 3;
                  return 2722; /* atomic_fetch_nandsi */

                default:
                  return -1;
                }

            default:
              return -1;
            }

        case 5:
          if (pattern0 (x1, 19) != 0)
            return -1;
          x9 = XVECEXP (x1, 0, 2);
          if (pattern126 (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 (pattern397 (x19))
            {
            case 0:
              if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2710; /* atomic_fetch_addsi */

            case 1:
              if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2711; /* atomic_fetch_subsi */

            case 2:
              if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2712; /* atomic_fetch_orsi */

            case 3:
              if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2713; /* atomic_fetch_xorsi */

            case 4:
              if (!
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2714; /* atomic_fetch_andsi */

            case 5:
              if (!
#line 386 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER))
                return -1;
              return 2722; /* atomic_fetch_nandsi */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case SET:
      return recog_262 (x1, insn, pnum_clobbers);

    case RETURN:
      if (!
#line 8490 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && USE_RETURN_INSN (FALSE)))
        return -1;
      return 222; /* *arm_return */

    case SIMPLE_RETURN:
      if (
#line 8551 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
        return 227; /* *arm_simple_return */
      if (
#line 1163 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !IS_CMSE_ENTRY (arm_current_func_type ())))
        return 915; /* *thumb2_return */
      if (!
#line 1171 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && IS_CMSE_ENTRY (arm_current_func_type ())))
        return -1;
      return 916; /* *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 229; /* blockage */

            case 3:
              x2 = XVECEXP (x1, 0, 0);
              if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              return 313; /* align_4 */

            case 12:
              x2 = XVECEXP (x1, 0, 0);
              if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              return 314; /* align_8 */

            case 4:
              x2 = XVECEXP (x1, 0, 0);
              if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return -1;
              return 315; /* consttable_end */

            case 5:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              return 316; /* consttable_1 */

            case 6:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              return 317; /* consttable_2 */

            case 7:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              return 318; /* consttable_4 */

            case 8:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              return 319; /* consttable_8 */

            case 9:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              return 320; /* 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 11648 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
                {
                  *pnum_clobbers = 1;
                  return 326; /* arm_eh_return */
                }
              if (
#line 1954 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                {
                  *pnum_clobbers = 1;
                  return 874; /* thumb_eh_return */
                }
              if (!
#line 1192 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
                return -1;
              *pnum_clobbers = 1;
              return 917; /* thumb2_eh_return */

            case 48:
              x2 = XVECEXP (x1, 0, 0);
              if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
                  || !
#line 12326 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(arm_arch7 || arm_arch8))
                return -1;
              return 426; /* *speculation_barrier_insn */

            case 28:
              x2 = XVECEXP (x1, 0, 0);
              operands[0] = x2;
              if (!register_operand (operands[0], E_SImode)
                  || !
#line 1974 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_HARD_FLOAT))
                return -1;
              return 806; /* set_fpscr */

            case 2:
              x2 = XVECEXP (x1, 0, 0);
              if (x2 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
                  || !
#line 1886 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                return -1;
              return 870; /* prologue_thumb1_interwork */

            case 1:
              x2 = XVECEXP (x1, 0, 0);
              if (GET_CODE (x2) != RETURN
                  || !
#line 1894 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                return -1;
              return 871; /* *epilogue_insns */

            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 30:
              if (!
#line 12184 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_CDP)))
                return -1;
              return 408; /* cdp */

            case 31:
              if (!
#line 12184 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_CDP2)))
                return -1;
              return 409; /* 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 32:
              if (!
#line 12201 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_LDC)))
                return -1;
              return 410; /* *ldc */

            case 33:
              if (!
#line 12201 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_LDC2)))
                return -1;
              return 411; /* *ldc */

            case 34:
              if (!
#line 12201 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_LDCL)))
                return -1;
              return 412; /* *ldc */

            case 35:
              if (!
#line 12201 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_LDC2L)))
                return -1;
              return 413; /* *ldc */

            case 36:
              if (!
#line 12214 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_STC)))
                return -1;
              return 414; /* *stc */

            case 37:
              if (!
#line 12214 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_STC2)))
                return -1;
              return 415; /* *stc */

            case 38:
              if (!
#line 12214 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_STCL)))
                return -1;
              return 416; /* *stc */

            case 39:
              if (!
#line 12214 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(arm_coproc_builtin_available (VUNSPEC_STC2L)))
                return -1;
              return 417; /* *stc */

            default:
              return -1;
            }

        default:
          return -1;
        }

    case CONST_INT:
      if (XWINT (x1, 0) != 0L)
        return -1;
      return 239; /* 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 240; /* 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 11602 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch5te))
        return -1;
      return 324; /* 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 325; /* 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_261 (x1, insn, pnum_clobbers);

        case PARALLEL:
          if (XVECLEN (x27, 0) == 2)
            {
              res = recog_254 (x1, insn, pnum_clobbers);
              if (res >= 0)
                return res;
            }
          operands[0] = x27;
          if (XVECLEN (operands[0], 0) >= 2)
            {
              res = recog_255 (x1, insn, pnum_clobbers);
              if (res >= 0)
                return res;
            }
          if (XVECLEN (operands[0], 0) >= 3)
            {
              res = recog_256 (x1, insn, pnum_clobbers);
              if (res >= 0)
                return res;
            }
          if (XVECLEN (operands[0], 0) >= 4)
            {
              res = recog_257 (x1, insn, pnum_clobbers);
              if (res >= 0)
                return res;
            }
          if (XVECLEN (operands[0], 0) >= 5)
            {
              res = recog_258 (x1, insn, pnum_clobbers);
              if (res >= 0)
                return res;
            }
          if (XVECLEN (operands[0], 0) >= 3)
            {
              res = recog_259 (x1, insn, pnum_clobbers);
              if (res >= 0)
                return res;
            }
          if (XVECLEN (operands[0], 0) >= 2)
            {
              res = recog_260 (x1, insn, pnum_clobbers);
              if (res >= 0)
                return res;
            }
          if (XVECLEN (operands[0], 0) < 1
              || !load_multiple_operation (operands[0], E_VOIDmode))
            return -1;
          x31 = XVECEXP (x27, 0, 0);
          if (GET_CODE (x31) != SET)
            return -1;
          x32 = XEXP (x31, 1);
          if (GET_CODE (x32) != MEM
              || GET_MODE (x32) != E_SImode)
            return -1;
          operands[3] = x26;
          operands[4] = x30;
          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 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 12088 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed)))
            return -1;
          return 3919; /* *p *load_multiple */

        case RETURN:
          operands[0] = x26;
          operands[1] = x30;
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 8490 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && USE_RETURN_INSN (FALSE))))
            return -1;
          return 3837; /* *p *arm_return */

        case SIMPLE_RETURN:
          operands[0] = x26;
          operands[1] = x30;
          if (!(
#line 11613 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && (!TARGET_NO_VOLATILE_CE || !volatile_refs_p (PATTERN (insn)))) && 
#line 8551 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM)))
            return -1;
          return 3838; /* *p *arm_simple_return */

        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, 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 2625 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_25 (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 2659 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && !reg_overlap_mentioned_p (operands[0], operands[3])))
    return NULL;
  return gen_split_26 (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;
  rtx_insn *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 NULL;
  x4 = XVECEXP (x1, 0, 0);
  x5 = XEXP (x4, 1);
  x6 = XEXP (x5, 0);
  switch (GET_CODE (x6))
    {
    case REG:
    case SUBREG:
      operands[1] = x6;
      x7 = XEXP (x5, 1);
      switch (GET_CODE (x7))
        {
        case REG:
        case SUBREG:
          operands[2] = x7;
          if (!arm_general_register_operand (operands[2], E_DImode)
              || !arm_general_register_operand (operands[0], E_DImode)
              || GET_MODE (x5) != E_DImode
              || !arm_general_register_operand (operands[1], E_DImode)
              || !(
#line 1307 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && !TARGET_NEON) && 
#line 1309 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
( (!TARGET_IWMMXT || reload_completed))))
            return NULL;
          return gen_split_9 (insn, operands);

        case ZERO_EXTEND:
          if (pattern327 (x5) != 0
              || !(
#line 1334 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT) && 
#line 1336 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
( reload_completed)))
            return NULL;
          return gen_split_10 (insn, operands);

        case SIGN_EXTEND:
          if (pattern327 (x5) != 0
              || !(
#line 1359 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT) && 
#line 1361 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
( reload_completed)))
            return NULL;
          return gen_split_11 (insn, operands);

        case SMIN:
        case SMAX:
        case UMIN:
        case UMAX:
          if (pattern329 (x5) != 0
              || !
#line 3946 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && !arm_eliminable_register (operands[1]) && reload_completed))
            return NULL;
          return gen_split_47 (insn, operands);

        default:
          return NULL;
        }

    case ZERO_EXTEND:
      if (GET_MODE (x6) != E_DImode)
        return NULL;
      switch (pattern310 (x5))
        {
        case 0:
          if (!(
#line 1386 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM) && 
#line 1390 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
( reload_completed)))
            return NULL;
          return gen_split_12 (insn, operands);

        case 1:
          if (!(
#line 1444 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT) && 
#line 1446 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
( reload_completed)))
            return NULL;
          return gen_split_14 (insn, operands);

        default:
          return NULL;
        }

    case SIGN_EXTEND:
      if (GET_MODE (x6) != E_DImode
          || pattern194 (x5) != 0
          || !(
#line 1413 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM) && 
#line 1417 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
( reload_completed)))
        return NULL;
      return gen_split_13 (insn, operands);

    default:
      return NULL;
    }
}

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);
  x4 = XEXP (x3, 0);
  switch (GET_CODE (x4))
    {
    case REG:
    case SUBREG:
      operands[1] = x4;
      if (!arm_general_register_operand (operands[1], E_DImode))
        return NULL;
      x5 = XVECEXP (x1, 0, 1);
      x6 = XEXP (x5, 0);
      if (GET_CODE (x6) != REG
          || REGNO (x6) != 100
          || GET_MODE (x6) != E_CCmode
          || !arm_general_register_operand (operands[0], E_DImode)
          || GET_MODE (x3) != E_DImode)
        return NULL;
      x7 = XEXP (x3, 1);
      operands[2] = x7;
      if (!arm_general_adddi_operand (operands[2], E_DImode)
          || !
#line 470 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && ((!TARGET_NEON && !TARGET_IWMMXT) || reload_completed)))
        return NULL;
      return gen_split_1 (insn, operands);

    case SIGN_EXTEND:
      if (GET_MODE (x4) != E_DImode
          || pattern195 (x1) != 0
          || !
#line 499 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed))
        return NULL;
      return gen_split_2 (insn, operands);

    case ZERO_EXTEND:
      if (GET_MODE (x4) != E_DImode
          || pattern195 (x1) != 0
          || !
#line 529 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed))
        return NULL;
      return gen_split_3 (insn, operands);

    case ASHIFT:
      if (GET_MODE (x4) != E_SImode)
        return NULL;
      x7 = XEXP (x3, 1);
      if (x7 != const_int_rtx[MAX_SAVED_CONST_INT + -1]
          || !s_register_operand (operands[0], E_SImode)
          || GET_MODE (x3) != E_SImode)
        return NULL;
      x8 = XEXP (x4, 0);
      operands[1] = x8;
      if (!const_int_operand (operands[1], E_SImode))
        return NULL;
      x9 = XEXP (x4, 1);
      operands[2] = x9;
      if (!s_register_operand (operands[2], E_SImode))
        return NULL;
      x5 = XVECEXP (x1, 0, 1);
      x6 = XEXP (x5, 0);
      operands[3] = x6;
      if (!s_register_operand (operands[3], E_SImode)
          || !
#line 1261 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
        return NULL;
      return gen_split_8 (insn, operands);

    default:
      return NULL;
    }
}

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 3540 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
            return NULL;
          return gen_split_37 (insn, operands);

        case NE:
        case EQ:
        case GE:
        case GT:
        case LE:
        case LT:
        case GEU:
        case GTU:
        case LEU:
        case LTU:
        case UNORDERED:
        case ORDERED:
        case UNGE:
        case UNGT:
        case UNLE:
        case UNLT:
          operands[3] = x4;
          if (pattern352 (x1) != 0
              || !
#line 9873 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed))
            return NULL;
          return gen_split_115 (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 (pattern352 (x1) == 0)
            {
              if (
#line 9935 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_117 (insn, operands);
              if (
#line 10003 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed))
                return gen_split_119 (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 10962 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return NULL;
          return gen_split_126 (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;
  if (!s_register_operand (operands[0], E_SImode))
    return NULL;
  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 (pattern369 (x3, LSHIFTRT) != 0
          || !
#line 3591 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_39 (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 (pattern422 (x3, ZERO_EXTRACT) != 0
              || !
#line 3617 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_40 (insn, operands);

        case ASHIFTRT:
          if (pattern422 (x3, SIGN_EXTRACT) != 0
              || !
#line 3669 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_42 (insn, operands);

        default:
          return NULL;
        }

    case SIGN_EXTRACT:
      if (pattern369 (x3, ASHIFTRT) != 0
          || !
#line 3643 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_41 (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 x10, x11, x12;
  rtx_insn *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_TImode)
        return NULL;
      x5 = XEXP (x2, 0);
      if (GET_CODE (x5) != REG
          || REGNO (x5) != 100)
        return NULL;
      x6 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x6) != SET)
        return NULL;
      x7 = XEXP (x6, 1);
      if (GET_CODE (x7) != PLUS
          || GET_MODE (x7) != E_DImode)
        return NULL;
      x8 = XEXP (x4, 0);
      if (GET_MODE (x8) != E_TImode)
        return NULL;
      x9 = XEXP (x4, 1);
      if (GET_MODE (x9) != E_TImode)
        return NULL;
      x10 = XEXP (x3, 1);
      if (GET_MODE (x10) != E_TImode)
        return NULL;
      x11 = XEXP (x6, 0);
      operands[0] = x11;
      if (!register_operand (operands[0], E_DImode))
        return NULL;
      switch (GET_CODE (x8))
        {
        case SIGN_EXTEND:
          if (pattern405 (x1, E_CC_Vmode, SIGN_EXTEND) != 0
              || !(
#line 662 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT) && 
#line 664 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
( reload_completed)))
            return NULL;
          return gen_split_5 (insn, operands);

        case ZERO_EXTEND:
          if (pattern405 (x1, E_CC_Cmode, ZERO_EXTEND) != 0
              || !(
#line 741 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT) && 
#line 743 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
( reload_completed)))
            return NULL;
          return gen_split_6 (insn, operands);

        default:
          return NULL;
        }

    case ZERO_EXTRACT:
      if (GET_MODE (x4) != E_SImode)
        return NULL;
      x12 = XEXP (x4, 2);
      if (GET_CODE (x12) != CONST_INT)
        return NULL;
      operands[3] = x12;
      if (const_int_operand (operands[3], E_SImode)
          && pattern246 (x1) == 0
          && 
#line 2558 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_23 (insn, operands);
      if (XWINT (x12, 0) != 0L
          || pattern246 (x1) != 0
          || !
#line 2592 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
        return NULL;
      return gen_split_24 (insn, operands);

    case REG:
    case SUBREG:
      operands[1] = x4;
      if (!s_register_operand (operands[1], E_SImode)
          || pattern210 (x1) != 0
          || GET_MODE (x3) != E_SImode)
        return NULL;
      x10 = XEXP (x3, 1);
      operands[2] = x10;
      if (const_int_operand (operands[2], E_SImode)
          && 
#line 9300 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed))
        return gen_split_112 (insn, operands);
      if (!arm_add_operand (operands[2], E_SImode)
          || !
#line 9316 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed))
        return NULL;
      return gen_split_113 (insn, operands);

    default:
      return NULL;
    }
}

static rtx_insn *
split_7 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19;
  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 COMPARE:
          x4 = XEXP (x3, 0);
          switch (GET_CODE (x4))
            {
            case REG:
            case SUBREG:
              x5 = XEXP (x2, 0);
              if (GET_CODE (x5) != REG
                  || REGNO (x5) != 100)
                return NULL;
              x6 = XVECEXP (x1, 0, 1);
              switch (GET_CODE (x6))
                {
                case SET:
                  x7 = XEXP (x6, 1);
                  if (GET_CODE (x7) != MINUS
                      || GET_MODE (x7) != E_DImode
                      || GET_MODE (x5) != E_CCmode
                      || GET_MODE (x3) != E_CCmode)
                    return NULL;
                  operands[1] = x4;
                  if (!register_operand (operands[1], E_DImode))
                    return NULL;
                  x8 = XEXP (x3, 1);
                  operands[2] = x8;
                  if (!register_operand (operands[2], E_DImode))
                    return NULL;
                  x9 = XEXP (x6, 0);
                  operands[0] = x9;
                  if (!register_operand (operands[0], E_DImode))
                    return NULL;
                  x10 = XEXP (x7, 0);
                  if (!rtx_equal_p (x10, operands[1]))
                    return NULL;
                  x11 = XEXP (x7, 1);
                  if (!rtx_equal_p (x11, operands[2])
                      || !(
#line 1104 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT) && 
#line 1106 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
( reload_completed)))
                    return NULL;
                  return gen_split_7 (insn, operands);

                case CLOBBER:
                  if (pattern214 (x1) != 0
                      || !(
#line 7444 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT) && 
#line 7446 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
( reload_completed)))
                    return NULL;
                  return gen_split_97 (insn, operands);

                default:
                  return NULL;
                }

            case CONST_INT:
              if (XWINT (x4, 0) != 0L
                  || pattern192 (x1, MINUS, E_DImode, E_CCmode) != 0)
                return NULL;
              x6 = XVECEXP (x1, 0, 1);
              x7 = XEXP (x6, 1);
              x10 = XEXP (x7, 0);
              if (x10 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
                  || GET_MODE (x3) != E_CCmode)
                return NULL;
              x8 = XEXP (x3, 1);
              operands[1] = x8;
              if (!register_operand (operands[1], E_DImode))
                return NULL;
              x9 = XEXP (x6, 0);
              operands[0] = x9;
              if (!register_operand (operands[0], E_DImode))
                return NULL;
              x11 = XEXP (x7, 1);
              if (!rtx_equal_p (x11, operands[1])
                  || !(
#line 4652 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM) && 
#line 4654 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
( reload_completed)))
                return NULL;
              return gen_split_48 (insn, operands);

            case IOR:
              if (GET_MODE (x4) != E_SImode)
                return NULL;
              x8 = XEXP (x3, 1);
              if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
                return NULL;
              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:
                  if (!arm_comparison_operator (x12, E_SImode))
                    return NULL;
                  x13 = XEXP (x12, 0);
                  if (!s_register_operand (x13, E_SImode))
                    return NULL;
                  x14 = XEXP (x12, 1);
                  if (!arm_add_operand (x14, E_SImode))
                    return NULL;
                  x15 = XEXP (x4, 1);
                  switch (GET_CODE (x15))
                    {
                    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] = x15;
                      if (!arm_comparison_operator (operands[6], E_SImode))
                        return NULL;
                      x6 = XVECEXP (x1, 0, 1);
                      if (GET_CODE (x6) != SET)
                        return NULL;
                      x7 = XEXP (x6, 1);
                      if (GET_CODE (x7) != IOR
                          || GET_MODE (x7) != E_SImode)
                        return NULL;
                      x10 = XEXP (x7, 0);
                      switch (GET_CODE (x10))
                        {
                        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:
                          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:
                              if (!rtx_equal_p (x11, operands[6]))
                                return NULL;
                              x5 = XEXP (x2, 0);
                              operands[0] = x5;
                              if (!dominant_cc_register (operands[0], E_VOIDmode))
                                return NULL;
                              operands[3] = x12;
                              operands[1] = x13;
                              operands[2] = x14;
                              x16 = XEXP (x15, 0);
                              operands[4] = x16;
                              if (!s_register_operand (operands[4], E_SImode))
                                return NULL;
                              x17 = XEXP (x15, 1);
                              operands[5] = x17;
                              if (!arm_add_operand (operands[5], E_SImode))
                                return NULL;
                              x9 = XEXP (x6, 0);
                              operands[7] = x9;
                              if (!s_register_operand (operands[7], E_SImode)
                                  || !rtx_equal_p (x10, operands[3])
                                  || !
#line 9907 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed))
                                return NULL;
                              return gen_split_116 (insn, operands);

                            default:
                              return NULL;
                            }

                        default:
                          return NULL;
                        }

                    case AND:
                      if (GET_MODE (x15) != E_SImode)
                        return NULL;
                      x17 = XEXP (x15, 1);
                      if (x17 != const_int_rtx[MAX_SAVED_CONST_INT + 1]
                          || pattern249 (x1, E_CC_NOOVmode, CLOBBER) != 0
                          || GET_MODE (x3) != E_CC_NOOVmode)
                        return NULL;
                      operands[1] = x12;
                      operands[2] = x13;
                      operands[3] = x14;
                      x16 = XEXP (x15, 0);
                      operands[0] = x16;
                      if (!s_register_operand (operands[0], E_SImode))
                        return NULL;
                      x6 = XVECEXP (x1, 0, 1);
                      x9 = XEXP (x6, 0);
                      operands[4] = x9;
                      if (!s_register_operand (operands[4], E_SImode)
                          || !
#line 10051 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
                        return NULL;
                      return gen_split_121 (insn, operands);

                    default:
                      return NULL;
                    }

                case AND:
                  if (GET_MODE (x12) != E_SImode)
                    return NULL;
                  x14 = XEXP (x12, 1);
                  if (x14 != const_int_rtx[MAX_SAVED_CONST_INT + 1])
                    return NULL;
                  x15 = XEXP (x4, 1);
                  if (!arm_comparison_operator (x15, E_SImode))
                    return NULL;
                  operands[1] = x15;
                  if (pattern289 (x1, E_CC_NOOVmode) != 0
                      || !s_register_operand (operands[0], E_SImode))
                    return NULL;
                  x16 = XEXP (x15, 0);
                  operands[2] = x16;
                  if (!s_register_operand (operands[2], E_SImode))
                    return NULL;
                  x17 = XEXP (x15, 1);
                  operands[3] = x17;
                  if (!arm_add_operand (operands[3], E_SImode))
                    return NULL;
                  x6 = XVECEXP (x1, 0, 1);
                  x9 = XEXP (x6, 0);
                  operands[4] = x9;
                  if (!s_register_operand (operands[4], E_SImode)
                      || !
#line 10032 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
                    return NULL;
                  return gen_split_120 (insn, operands);

                default:
                  return NULL;
                }

            case AND:
              if (GET_MODE (x4) != E_SImode)
                return NULL;
              x12 = XEXP (x4, 0);
              if (!arm_comparison_operator (x12, E_SImode))
                return NULL;
              operands[3] = x12;
              x15 = XEXP (x4, 1);
              if (!arm_comparison_operator (x15, E_SImode))
                return NULL;
              operands[6] = x15;
              x8 = XEXP (x3, 1);
              if (x8 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
                  || pattern247 (x1, AND) != 0
                  || !
#line 9971 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed))
                return NULL;
              return gen_split_118 (insn, operands);

            case ASHIFT:
              if (GET_MODE (x4) != E_SImode)
                return NULL;
              x12 = XEXP (x4, 0);
              if (GET_CODE (x12) != SUBREG
                  || maybe_ne (SUBREG_BYTE (x12), 0)
                  || GET_MODE (x12) != E_SImode)
                return NULL;
              x15 = XEXP (x4, 1);
              if (x15 != const_int_rtx[MAX_SAVED_CONST_INT + 24]
                  || pattern289 (x1, E_CC_Zmode) != 0
                  || !memory_operand (operands[0], E_QImode))
                return NULL;
              x8 = XEXP (x3, 1);
              operands[1] = x8;
              if (!const_int_operand (operands[1], E_VOIDmode))
                return NULL;
              x6 = XVECEXP (x1, 0, 1);
              x9 = XEXP (x6, 0);
              operands[2] = x9;
              if (!scratch_operand (operands[2], E_SImode)
                  || !
#line 10980 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM
   && ((UINTVAL (operands[1]))
       == ((UINTVAL (operands[1])) >> 24) << 24)))
                return NULL;
              return gen_split_127 (insn, operands);

            default:
              return NULL;
            }

        case IF_THEN_ELSE:
          if (GET_MODE (x3) != E_SImode)
            return NULL;
          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 UNEQ:
            case UNGE:
            case UNGT:
            case UNLE:
            case UNLT:
            case LTGT:
              x15 = XEXP (x4, 1);
              if (x15 == const_int_rtx[MAX_SAVED_CONST_INT + 0]
                  && pattern210 (x1) == 0)
                {
                  x12 = XEXP (x4, 0);
                  if (GET_MODE (x12) == E_SImode)
                    {
                      if (GET_CODE (x12) == ZERO_EXTRACT)
                        {
                          res = split_1 (x1, insn);
                          if (res != NULL_RTX)
                            return res;
                        }
                      if (GET_CODE (x12) == PLUS)
                        {
                          operands[5] = x4;
                          if (comparison_operator (operands[5], E_VOIDmode)
                              && pattern394 (x3) == 0
                              && (
#line 10142 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT) && 
#line 10144 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
( reload_completed)))
                            return gen_split_123 (insn, operands);
                        }
                    }
                }
              if (!arm_comparison_operator (x4, E_VOIDmode))
                return NULL;
              operands[1] = x4;
              if (pattern210 (x1) != 0)
                return NULL;
              x12 = XEXP (x4, 0);
              operands[2] = x12;
              operands[3] = x15;
              x18 = XEXP (x3, 2);
              operands[4] = x18;
              x8 = XEXP (x3, 1);
              if (rtx_equal_p (x8, operands[0])
                  && 
#line 11081 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && reload_completed))
                return gen_split_128 (insn, operands);
              operands[4] = x8;
              if (rtx_equal_p (x18, operands[0])
                  && 
#line 11109 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && reload_completed))
                return gen_split_129 (insn, operands);
              operands[5] = x18;
              if (
#line 11130 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && reload_completed))
                return gen_split_130 (insn, operands);
              if (!arm_rhs_operand (operands[4], E_SImode)
                  || GET_CODE (x18) != NOT
                  || GET_MODE (x18) != E_SImode
                  || !s_register_operand (operands[2], E_SImode)
                  || !arm_add_operand (operands[3], E_SImode))
                return NULL;
              x19 = XEXP (x18, 0);
              operands[5] = x19;
              if (!s_register_operand (operands[5], E_SImode)
                  || !
#line 11162 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && reload_completed))
                return NULL;
              return gen_split_131 (insn, operands);

            default:
              return NULL;
            }

        case PLUS:
        case MINUS:
        case AND:
        case IOR:
        case XOR:
          x6 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x6) != CLOBBER)
            return NULL;
          x5 = XEXP (x2, 0);
          operands[0] = x5;
          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:
              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))
                {
                  operands[5] = x3;
                  x4 = XEXP (x3, 0);
                  if (arm_comparison_operator (x4, E_SImode))
                    {
                      operands[4] = x4;
                      x9 = XEXP (x6, 0);
                      if (GET_CODE (x9) == REG
                          && REGNO (x9) == 100
                          && GET_MODE (x9) == E_CCmode
                          && pattern354 (x3) == 0
                          && (
#line 794 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_restrict_it) && 
#line 796 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
( reload_completed)))
                        return gen_split_174 (insn, operands);
                    }
                }
              break;

            default:
              break;
            }
          if (!s_register_operand (operands[0], E_SImode))
            return NULL;
          operands[1] = x3;
          if (!shiftable_operator (operands[1], E_SImode))
            return NULL;
          x9 = XEXP (x6, 0);
          if (!s_register_operand (x9, E_SImode))
            return NULL;
          x4 = XEXP (x3, 0);
          switch (GET_CODE (x4))
            {
            case ZERO_EXTRACT:
              if (pattern307 (x1) != 0
                  || !
#line 2684 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
                return NULL;
              return gen_split_27 (insn, operands);

            case SIGN_EXTRACT:
              if (pattern307 (x1) != 0
                  || !
#line 2706 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
                return NULL;
              return gen_split_28 (insn, operands);

            case PLUS:
            case MINUS:
            case AND:
            case IOR:
            case XOR:
              operands[2] = x4;
              if (!shiftable_operator (operands[2], E_SImode))
                return NULL;
              x12 = XEXP (x4, 0);
              if (!shift_operator (x12, E_SImode))
                return NULL;
              operands[3] = x12;
              x13 = XEXP (x12, 0);
              operands[4] = x13;
              if (!s_register_operand (operands[4], E_SImode))
                return NULL;
              x14 = XEXP (x12, 1);
              operands[5] = x14;
              if (!reg_or_int_operand (operands[5], E_SImode))
                return NULL;
              x15 = XEXP (x4, 1);
              operands[6] = x15;
              if (!s_register_operand (operands[6], E_SImode))
                return NULL;
              x8 = XEXP (x3, 1);
              operands[7] = x8;
              if (!arm_rhs_operand (operands[7], E_SImode))
                return NULL;
              operands[8] = x9;
              if (!
#line 9096 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT))
                return NULL;
              return gen_split_105 (insn, operands);

            default:
              return NULL;
            }

        case SMAX:
          if (pattern114 (x1) != 0)
            return NULL;
          if (
#line 3734 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return gen_split_43 (insn, operands);
          if (!
#line 51 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
            return NULL;
          return gen_split_159 (insn, operands);

        case SMIN:
          if (pattern114 (x1) != 0)
            return NULL;
          if (
#line 3784 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return gen_split_44 (insn, operands);
          if (!
#line 72 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
            return NULL;
          return gen_split_160 (insn, operands);

        case UMAX:
          if (pattern114 (x1) != 0)
            return NULL;
          if (
#line 3817 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return gen_split_45 (insn, operands);
          if (!
#line 93 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
            return NULL;
          return gen_split_161 (insn, operands);

        case UMIN:
          if (pattern114 (x1) != 0)
            return NULL;
          if (
#line 3850 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
            return gen_split_46 (insn, operands);
          if (!
#line 114 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
            return NULL;
          return gen_split_162 (insn, operands);

        case NEG:
          switch (pattern14 (x1))
            {
            case 0:
              x6 = XVECEXP (x1, 0, 1);
              x9 = XEXP (x6, 0);
              if (pattern244 (x9, E_DImode) != 0
                  || !s_register_operand (operands[0], E_DImode)
                  || GET_MODE (x3) != E_DImode
                  || !(
#line 4698 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT) && 
#line 4701 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
( reload_completed)))
                return NULL;
              return gen_split_49 (insn, operands);

            case 1:
              if (!(
#line 4788 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT) && 
#line 4790 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
( reload_completed)))
                return NULL;
              return gen_split_51 (insn, operands);

            case 2:
              if (!(
#line 4858 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT) && 
#line 4862 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
( reload_completed)))
                return NULL;
              return gen_split_52 (insn, operands);

            case 3:
              x6 = XVECEXP (x1, 0, 1);
              x9 = XEXP (x6, 0);
              if (GET_CODE (x9) == REG
                  && REGNO (x9) == 100
                  && GET_MODE (x9) == E_CCmode)
                {
                  if ((
#line 4963 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM) && 
#line 4965 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
( reload_completed)))
                    return gen_split_54 (insn, operands);
                  if ((
#line 184 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2) && 
#line 189 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
( reload_completed)))
                    return gen_split_164 (insn, operands);
                }
              operands[2] = x9;
              if (!scratch_operand (operands[2], E_SImode)
                  || !
#line 351 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && reload_completed))
                return NULL;
              return gen_split_145 (insn, operands);

            case 4:
              if ((
#line 10067 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM) && 
#line 10069 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
( reload_completed)))
                return gen_split_122 (insn, operands);
              if (!(
#line 895 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2) && 
#line 897 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
( reload_completed)))
                return NULL;
              return gen_split_175 (insn, operands);

            default:
              return NULL;
            }

        case ABS:
          if (pattern15 (x1) != 0)
            return NULL;
          x6 = XVECEXP (x1, 0, 1);
          x9 = XEXP (x6, 0);
          if (GET_CODE (x9) == REG
              && REGNO (x9) == 100
              && GET_MODE (x9) == E_CCmode)
            {
              if ((
#line 4899 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM) && 
#line 4901 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
( reload_completed)))
                return gen_split_53 (insn, operands);
              if ((
#line 131 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2) && 
#line 136 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
( reload_completed)))
                return gen_split_163 (insn, operands);
            }
          operands[2] = x9;
          if (!scratch_operand (operands[2], E_SImode)
              || !
#line 336 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && reload_completed))
            return NULL;
          return gen_split_144 (insn, operands);

        case ZERO_EXTEND:
          if (GET_MODE (x3) != E_SImode)
            return NULL;
          x4 = XEXP (x3, 0);
          if (GET_CODE (x4) != SUBREG)
            return NULL;
          x6 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x6) != CLOBBER)
            return NULL;
          x5 = XEXP (x2, 0);
          operands[0] = x5;
          if (!s_register_operand (operands[0], E_SImode)
              || GET_MODE (x4) != E_QImode)
            return NULL;
          x12 = XEXP (x4, 0);
          operands[1] = x12;
          x9 = XEXP (x6, 0);
          operands[2] = x9;
          if (!s_register_operand (operands[2], E_SImode))
            return NULL;
          switch (SUBREG_BYTE (x4))
            {
            case 0:
              if (!
#line 5468 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && (!MEM_P (operands[1])) && ! BYTES_BIG_ENDIAN))
                return NULL;
              return gen_split_60 (insn, operands);

            case 3:
              if (!
#line 5478 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && (!MEM_P (operands[1])) && BYTES_BIG_ENDIAN))
                return NULL;
              return gen_split_61 (insn, operands);

            default:
              return NULL;
            }

        case SIGN_EXTEND:
          if (GET_MODE (x3) != E_SImode)
            return NULL;
          x6 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x6) != CLOBBER)
            return NULL;
          x5 = XEXP (x2, 0);
          operands[0] = x5;
          if (!register_operand (operands[0], E_SImode))
            return NULL;
          x4 = XEXP (x3, 0);
          operands[1] = x4;
          if (!register_operand (operands[1], E_HImode))
            return NULL;
          x9 = XEXP (x6, 0);
          operands[2] = x9;
          if (!scratch_operand (operands[2], E_SImode)
              || !
#line 5547 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(!arm_arch6))
            return NULL;
          return gen_split_64 (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:
          switch (GET_CODE (x3))
            {
            case NE:
              res = split_6 (x1, insn);
              if (res != NULL_RTX)
                return res;
              break;

            case LT:
              if (pattern16 (x1, 0) == 0
                  && 
#line 9259 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed))
                return gen_split_108 (insn, operands);
              break;

            case GE:
              if (pattern16 (x1, 0) == 0
                  && 
#line 9267 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed))
                return gen_split_109 (insn, operands);
              break;

            case EQ:
              if (pattern16 (x1, 0) == 0)
                {
                  if (
#line 9276 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(arm_arch5t && TARGET_32BIT))
                    return gen_split_110 (insn, operands);
                  if (
#line 9286 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed))
                    return gen_split_111 (insn, operands);
                }
              break;

            default:
              break;
            }
          operands[1] = x3;
          if (pattern116 (x1) != 0
              || !(
#line 9331 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT) && 
#line 9333 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
( reload_completed)))
            return NULL;
          return gen_split_114 (insn, operands);

        case CONST_DOUBLE:
          switch (pattern17 (x1))
            {
            case 0:
              return gen_split_139 (insn, operands);

            case 1:
              return gen_split_140 (insn, operands);

            default:
              return NULL;
            }

        case ZERO_EXTRACT:
          if (pattern15 (x1) != 0)
            return NULL;
          x8 = XEXP (x3, 1);
          operands[2] = x8;
          if (!const_int_operand (operands[2], E_SImode))
            return NULL;
          x18 = XEXP (x3, 2);
          operands[3] = x18;
          if (!const_int_operand (operands[3], E_SImode))
            return NULL;
          x6 = XVECEXP (x1, 0, 1);
          x9 = XEXP (x6, 0);
          operands[4] = x9;
          if (!s_register_operand (operands[4], E_SImode)
              || !
#line 204 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
            return NULL;
          return gen_split_142 (insn, operands);

        default:
          return NULL;
        }

    case UNSPEC_VOLATILE:
      if (XVECLEN (x2, 0) != 1
          || pattern19 (x1) != 0)
        return NULL;
      if ((
#line 11648 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM) && 
#line 11650 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
( reload_completed)))
        return gen_split_133 (insn, operands);
      if ((
#line 1954 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1) && 
#line 1956 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
( reload_completed)))
        return gen_split_158 (insn, operands);
      if (!(
#line 1192 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2) && 
#line 1194 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
( reload_completed)))
        return NULL;
      return gen_split_176 (insn, operands);

    default:
      return NULL;
    }
}

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;
  rtx_insn *res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 0);
  operands[0] = x2;
  if (!s_register_operand (operands[0], E_DImode))
    return NULL;
  x3 = XEXP (x1, 1);
  x4 = XEXP (x3, 1);
  if (!s_register_operand (x4, E_DImode))
    return NULL;
  x5 = XEXP (x3, 0);
  switch (GET_CODE (x5))
    {
    case REG:
    case SUBREG:
      operands[1] = x5;
      if (!s_register_operand (operands[1], E_DImode))
        return NULL;
      operands[2] = x4;
      if (!
#line 2197 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed
   && ! (TARGET_NEON && IS_VFP_REGNUM (REGNO (operands[0])))
   && ! IS_IWMMXT_REGNUM (REGNO (operands[0]))))
        return NULL;
      return gen_split_16 (insn, operands);

    case SIGN_EXTEND:
      if (GET_MODE (x5) != E_DImode)
        return NULL;
      x6 = XEXP (x5, 0);
      operands[2] = x6;
      if (!s_register_operand (operands[2], E_SImode))
        return NULL;
      operands[1] = x4;
      if (!
#line 2218 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed))
        return NULL;
      return gen_split_17 (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;
  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 5905 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_67 (insn, operands);
              if (const_double_operand (operands[1], E_DImode)
                  && 
#line 5935 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && reload_completed
   && arm_const_double_by_parts (operands[1])))
                return gen_split_74 (insn, operands);
              if (immediate_operand (operands[1], E_DImode)
                  && 
#line 688 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && reload_completed && !satisfies_constraint_J (operands[1])))
                return gen_split_147 (insn, operands);
            }
          break;

        case E_DFmode:
          if (arm_general_register_operand (operands[0], E_DFmode))
            {
              if (immediate_operand (operands[1], E_DFmode)
                  && 
#line 5905 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_68 (insn, operands);
              if (const_double_operand (operands[1], E_DFmode)
                  && 
#line 5935 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && reload_completed
   && arm_const_double_by_parts (operands[1])))
                return gen_split_75 (insn, operands);
            }
          if (s_register_operand (operands[0], E_DFmode)
              && const_double_operand (operands[1], E_DFmode)
              && 
#line 7165 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(arm_disable_literal_pool && TARGET_SOFT_FLOAT))
            return gen_split_96 (insn, operands);
          if (arm_general_register_operand (operands[0], E_DFmode)
              && immediate_operand (operands[1], E_DFmode)
              && 
#line 688 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && reload_completed && !satisfies_constraint_J (operands[1])))
            return gen_split_148 (insn, operands);
          break;

        case E_V8QImode:
          if (arm_general_register_operand (operands[0], E_V8QImode))
            {
              if (immediate_operand (operands[1], E_V8QImode)
                  && 
#line 5905 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_69 (insn, operands);
              if (const_double_operand (operands[1], E_V8QImode)
                  && 
#line 5935 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && reload_completed
   && arm_const_double_by_parts (operands[1])))
                return gen_split_76 (insn, operands);
              if (immediate_operand (operands[1], E_V8QImode)
                  && 
#line 688 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && reload_completed && !satisfies_constraint_J (operands[1])))
                return gen_split_149 (insn, operands);
            }
          break;

        case E_V4HImode:
          if (arm_general_register_operand (operands[0], E_V4HImode))
            {
              if (immediate_operand (operands[1], E_V4HImode)
                  && 
#line 5905 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_70 (insn, operands);
              if (const_double_operand (operands[1], E_V4HImode)
                  && 
#line 5935 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && reload_completed
   && arm_const_double_by_parts (operands[1])))
                return gen_split_77 (insn, operands);
              if (immediate_operand (operands[1], E_V4HImode)
                  && 
#line 688 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && reload_completed && !satisfies_constraint_J (operands[1])))
                return gen_split_150 (insn, operands);
            }
          break;

        case E_V4HFmode:
          if (arm_general_register_operand (operands[0], E_V4HFmode))
            {
              if (immediate_operand (operands[1], E_V4HFmode)
                  && 
#line 5905 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_71 (insn, operands);
              if (const_double_operand (operands[1], E_V4HFmode)
                  && 
#line 5935 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && reload_completed
   && arm_const_double_by_parts (operands[1])))
                return gen_split_78 (insn, operands);
              if (immediate_operand (operands[1], E_V4HFmode)
                  && 
#line 688 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && reload_completed && !satisfies_constraint_J (operands[1])))
                return gen_split_151 (insn, operands);
            }
          break;

        case E_V2SImode:
          if (arm_general_register_operand (operands[0], E_V2SImode))
            {
              if (immediate_operand (operands[1], E_V2SImode)
                  && 
#line 5905 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_72 (insn, operands);
              if (const_double_operand (operands[1], E_V2SImode)
                  && 
#line 5935 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && reload_completed
   && arm_const_double_by_parts (operands[1])))
                return gen_split_79 (insn, operands);
              if (immediate_operand (operands[1], E_V2SImode)
                  && 
#line 688 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && reload_completed && !satisfies_constraint_J (operands[1])))
                return gen_split_152 (insn, operands);
            }
          break;

        case E_V2SFmode:
          if (arm_general_register_operand (operands[0], E_V2SFmode))
            {
              if (immediate_operand (operands[1], E_V2SFmode)
                  && 
#line 5905 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_73 (insn, operands);
              if (const_double_operand (operands[1], E_V2SFmode)
                  && 
#line 5935 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && reload_completed
   && arm_const_double_by_parts (operands[1])))
                return gen_split_80 (insn, operands);
              if (immediate_operand (operands[1], E_V2SFmode)
                  && 
#line 688 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && reload_completed && !satisfies_constraint_J (operands[1])))
                return gen_split_153 (insn, operands);
            }
          break;

        case E_SImode:
          if (arm_general_register_operand (operands[0], E_SImode)
              && const_int_operand (operands[1], E_SImode)
              && 
#line 6102 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_89 (insn, operands);
          break;

        case E_SFmode:
          if (arm_general_register_operand (operands[0], E_SFmode)
              && immediate_operand (operands[1], E_SFmode)
              && 
#line 6997 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_EITHER
   && reload_completed
   && CONST_DOUBLE_P (operands[1])))
            return gen_split_94 (insn, operands);
          if (s_register_operand (operands[0], E_SFmode)
              && const_double_operand (operands[1], E_SFmode)
              && 
#line 7041 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(arm_disable_literal_pool && TARGET_SOFT_FLOAT))
            return gen_split_95 (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 6131 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_90 (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 5951 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_EITHER && reload_completed))
            return gen_split_81 (insn, operands);
          break;

        case E_DFmode:
          if (arm_general_register_operand (operands[0], E_DFmode)
              && arm_general_register_operand (operands[1], E_DFmode)
              && 
#line 5951 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_EITHER && reload_completed))
            return gen_split_82 (insn, operands);
          break;

        case E_V8QImode:
          if (arm_general_register_operand (operands[0], E_V8QImode)
              && arm_general_register_operand (operands[1], E_V8QImode)
              && 
#line 5951 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_EITHER && reload_completed))
            return gen_split_83 (insn, operands);
          break;

        case E_V4HImode:
          if (arm_general_register_operand (operands[0], E_V4HImode)
              && arm_general_register_operand (operands[1], E_V4HImode)
              && 
#line 5951 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_EITHER && reload_completed))
            return gen_split_84 (insn, operands);
          break;

        case E_V4HFmode:
          if (arm_general_register_operand (operands[0], E_V4HFmode)
              && arm_general_register_operand (operands[1], E_V4HFmode)
              && 
#line 5951 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_EITHER && reload_completed))
            return gen_split_85 (insn, operands);
          break;

        case E_V2SImode:
          if (arm_general_register_operand (operands[0], E_V2SImode)
              && arm_general_register_operand (operands[1], E_V2SImode)
              && 
#line 5951 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_EITHER && reload_completed))
            return gen_split_86 (insn, operands);
          break;

        case E_V2SFmode:
          if (arm_general_register_operand (operands[0], E_V2SFmode)
              && arm_general_register_operand (operands[1], E_V2SFmode)
              && 
#line 5951 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_EITHER && reload_completed))
            return gen_split_87 (insn, operands);
          break;

        case E_EImode:
          if (s_register_operand (operands[0], E_EImode)
              && s_register_operand (operands[1], E_EImode)
              && 
#line 181 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
            return gen_split_181 (insn, operands);
          break;

        case E_OImode:
          if (s_register_operand (operands[0], E_OImode)
              && s_register_operand (operands[1], E_OImode)
              && 
#line 200 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
            return gen_split_182 (insn, operands);
          break;

        case E_CImode:
          if (s_register_operand (operands[0], E_CImode)
              && s_register_operand (operands[1], E_CImode)
              && 
#line 219 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
            return gen_split_183 (insn, operands);
          break;

        case E_XImode:
          if (s_register_operand (operands[0], E_XImode)
              && s_register_operand (operands[1], E_XImode)
              && 
#line 241 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
            return gen_split_184 (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 5981 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_88 (insn, operands);
                }
            }
        }
      break;

    default:
      break;
    }
  operands[1] = x3;
  if (general_operand (operands[1], E_SImode)
      && arm_general_register_operand (operands[0], E_SImode)
      && 
#line 6163 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_91 (insn, operands);
  if (const_int_operand (operands[1], E_SImode)
      && register_operand (operands[0], E_SImode))
    {
      if (
#line 703 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && satisfies_constraint_J (operands[1])))
        return gen_split_154 (insn, operands);
      if (
#line 716 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && satisfies_constraint_K (operands[1])
   && !(TARGET_HAVE_MOVT && satisfies_constraint_j (operands[1]))))
        return gen_split_155 (insn, operands);
      if (
#line 744 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && satisfies_constraint_Pe (operands[1])
   && !(TARGET_HAVE_MOVT && satisfies_constraint_j (operands[1]))))
        return gen_split_156 (insn, operands);
    }
  if (!register_operand (operands[0], E_SImode)
      || pattern8 (x3, PLUS, MEM) != 0)
    return NULL;
  x4 = XEXP (x3, 0);
  x6 = XEXP (x4, 1);
  if (pattern205 (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 6199 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(flag_pic))
    return NULL;
  return gen_split_92 (insn, operands);
}

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;
  rtx_insn *res ATTRIBUTE_UNUSED;
  x2 = XEXP (x1, 1);
  operands[6] = x2;
  if (logical_binary_operator (operands[6], E_DImode))
    {
      res = split_8 (x1, insn);
      if (res != NULL_RTX)
        return res;
    }
  x3 = XEXP (x1, 0);
  operands[0] = x3;
  switch (GET_CODE (x2))
    {
    case IOR:
      x4 = XEXP (x2, 0);
      switch (GET_CODE (x4))
        {
        case ZERO_EXTEND:
          if (pattern138 (x2) != 0
              || !
#line 2241 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && operands[0] != operands[1] && reload_completed))
            return NULL;
          return gen_split_18 (insn, operands);

        case REG:
        case SUBREG:
          switch (pattern158 (x2))
            {
            case 0:
              if (!s_register_operand (operands[1], E_DImode)
                  || !arm_iordi_operand_neon (operands[2], E_DImode)
                  || !
#line 3199 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && !TARGET_IWMMXT && reload_completed
   && !(IS_VFP_REGNUM (REGNO (operands[0])))))
                return NULL;
              return gen_split_33 (insn, operands);

            case 1:
              if (!
#line 3295 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_34 (insn, operands);

            default:
              return NULL;
            }

        case AND:
          if (pattern159 (x2) != 0
              || !
#line 5494 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_62 (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;
          x5 = XEXP (x4, 1);
          if (x5 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
              || !s_register_operand (operands[0], E_SImode)
              || GET_MODE (x2) != E_SImode)
            return NULL;
          x6 = XEXP (x4, 0);
          if (!cc_register (x6, E_VOIDmode))
            return NULL;
          operands[2] = x6;
          operands[1] = x4;
          x7 = XEXP (x2, 1);
          operands[3] = x7;
          if (s_register_operand (operands[3], E_SImode))
            {
              if ((
#line 9223 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM) && 
#line 9227 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
( reload_completed
   && REGNO (operands [0]) != REGNO (operands[3]))))
                return gen_split_107 (insn, operands);
              if ((
#line 646 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !arm_restrict_it) && 
#line 651 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
( reload_completed
    && REGNO (operands [0]) != REGNO (operands[3]))))
                return gen_split_172 (insn, operands);
            }
          operands[3] = x6;
          operands[2] = x4;
          operands[1] = x7;
          if (!s_register_operand (operands[1], E_SImode)
              || !(
#line 677 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_restrict_it) && 
#line 679 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
( reload_completed)))
            return NULL;
          return gen_split_173 (insn, operands);

        case NOT:
          switch (pattern160 (x2))
            {
            case 0:
              x7 = XEXP (x2, 1);
              operands[2] = x7;
              if (s_register_operand (operands[2], E_DImode))
                {
                  x6 = XEXP (x4, 0);
                  operands[1] = x6;
                  if (
#line 1488 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
                    return gen_split_177 (insn, operands);
                }
              operands[1] = x7;
              if (!s_register_operand (operands[1], E_DImode))
                return NULL;
              x6 = XEXP (x4, 0);
              operands[2] = x6;
              if (!
#line 854 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(reload_completed && 
   (TARGET_NEON && !(IS_VFP_REGNUM (REGNO (operands[0]))))))
                return NULL;
              return gen_split_185 (insn, operands);

            case 1:
              x7 = XEXP (x2, 1);
              if (GET_MODE (x7) != E_DImode)
                return NULL;
              x6 = XEXP (x4, 0);
              operands[2] = x6;
              x8 = XEXP (x7, 0);
              operands[1] = x8;
              if (!s_register_operand (operands[1], E_SImode)
                  || !
#line 1536 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
                return NULL;
              return gen_split_179 (insn, operands);

            case 2:
              if (!
#line 1514 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
                return NULL;
              return gen_split_178 (insn, operands);

            case 3:
              if (!
#line 1560 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
                return NULL;
              return gen_split_180 (insn, operands);

            default:
              return NULL;
            }

        default:
          return NULL;
        }

    case XOR:
      x4 = XEXP (x2, 0);
      switch (GET_CODE (x4))
        {
        case ZERO_EXTEND:
          if (pattern138 (x2) != 0
              || !
#line 2260 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && operands[0] != operands[1] && reload_completed))
            return NULL;
          return gen_split_19 (insn, operands);

        case REG:
        case SUBREG:
          switch (pattern158 (x2))
            {
            case 0:
              if (!s_register_operand (operands[1], E_DImode)
                  || !arm_xordi_operand (operands[2], E_DImode)
                  || !
#line 3399 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && !TARGET_IWMMXT && reload_completed
   && !(IS_VFP_REGNUM (REGNO (operands[0])))))
                return NULL;
              return gen_split_35 (insn, operands);

            case 1:
              if (!
#line 3491 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && CONST_INT_P (operands[2])
   && !const_ok_for_arm (INTVAL (operands[2]))))
                return NULL;
              return gen_split_36 (insn, operands);

            default:
              return NULL;
            }

        case AND:
          if (pattern159 (x2) != 0
              || !
#line 5494 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_63 (insn, operands);

        default:
          return NULL;
        }

    case AND:
      x4 = XEXP (x2, 0);
      switch (GET_CODE (x4))
        {
        case REG:
        case SUBREG:
          switch (pattern158 (x2))
            {
            case 0:
              if (!s_register_operand (operands[1], E_DImode)
                  || !arm_anddi_operand_neon (operands[2], E_DImode)
                  || !
#line 2318 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && !TARGET_IWMMXT && reload_completed
   && !(IS_VFP_REGNUM (REGNO (operands[0])))))
                return NULL;
              return gen_split_20 (insn, operands);

            case 1:
              if (!
#line 2472 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_22 (insn, operands);

            default:
              return NULL;
            }

        case ZERO_EXTEND:
          if (pattern138 (x2) != 0
              || !
#line 2350 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed))
            return NULL;
          return gen_split_21 (insn, operands);

        case NOT:
          switch (pattern160 (x2))
            {
            case 0:
              x7 = XEXP (x2, 1);
              operands[2] = x7;
              if (!s_register_operand (operands[2], E_DImode))
                return NULL;
              x6 = XEXP (x4, 0);
              operands[1] = x6;
              if (!
#line 2962 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed
   && ! (TARGET_NEON && IS_VFP_REGNUM (REGNO (operands[0])))
   && ! IS_IWMMXT_REGNUM (REGNO (operands[0]))))
                return NULL;
              return gen_split_29 (insn, operands);

            case 1:
              x7 = XEXP (x2, 1);
              if (GET_MODE (x7) != E_DImode)
                return NULL;
              x6 = XEXP (x4, 0);
              operands[2] = x6;
              x8 = XEXP (x7, 0);
              operands[1] = x8;
              if (!s_register_operand (operands[1], E_SImode)
                  || !
#line 3016 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed))
                return NULL;
              return gen_split_31 (insn, operands);

            case 2:
              if (!
#line 2992 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && reload_completed
   && operands[0] != operands[1]))
                return NULL;
              return gen_split_30 (insn, operands);

            case 3:
              if (!
#line 3037 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed))
                return NULL;
              return gen_split_32 (insn, operands);

            default:
              return NULL;
            }

        case IOR:
          if (pattern141 (x2) != 0
              || !(
#line 3552 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT) && 
#line 3554 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
( reload_completed)))
            return NULL;
          return gen_split_38 (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 (pattern175 (x2) != 0)
            return NULL;
          if ((
#line 9194 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM) && 
#line 9196 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
( reload_completed)))
            return gen_split_106 (insn, operands);
          if (!(
#line 618 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2) && 
#line 620 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
( reload_completed)))
            return NULL;
          return gen_split_171 (insn, operands);

        default:
          return NULL;
        }

    default:
      return NULL;
    }
}

static rtx_insn *
split_11 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12, x13, x14, x15, x16, x17;
  rtx x18, x19, x20, x21, x22, x23, x24, x25;
  rtx x26, x27, x28;
  rtx_insn *res ATTRIBUTE_UNUSED;
  switch (XVECLEN (x1, 0))
    {
    case 2:
      return split_7 (x1, insn);

    case 3:
      x2 = XVECEXP (x1, 0, 0);
      if (GET_CODE (x2) != SET)
        return NULL;
      x3 = XVECEXP (x1, 0, 1);
      if (GET_CODE (x3) != CLOBBER)
        return NULL;
      x4 = XVECEXP (x1, 0, 2);
      if (GET_CODE (x4) != CLOBBER)
        return NULL;
      x5 = XEXP (x2, 0);
      operands[0] = x5;
      x6 = XEXP (x3, 0);
      operands[2] = x6;
      x7 = XEXP (x2, 1);
      switch (GET_CODE (x7))
        {
        case UNSPEC:
          if (XVECLEN (x7, 0) != 1
              || pattern166 (x7) != 0
              || !memory_operand (operands[0], E_SImode))
            return NULL;
          x8 = XVECEXP (x7, 0, 0);
          x9 = XEXP (x8, 0);
          operands[1] = x9;
          if (!guard_addr_operand (operands[1], E_SImode)
              || !scratch_operand (operands[2], E_SImode))
            return NULL;
          x10 = XEXP (x4, 0);
          operands[3] = x10;
          if (!scratch_operand (operands[3], E_SImode)
              || !
#line 8774 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(reload_completed))
            return NULL;
          return gen_split_103 (insn, operands);

        case NEG:
          if (GET_MODE (x7) != E_DImode)
            return NULL;
          x10 = XEXP (x4, 0);
          if (GET_CODE (x10) != REG
              || REGNO (x10) != 100
              || GET_MODE (x10) != E_CCmode
              || !s_register_operand (operands[0], E_DImode))
            return NULL;
          x11 = XEXP (x7, 0);
          operands[1] = x11;
          if (!s_register_operand (operands[1], E_DImode)
              || !scratch_operand (operands[2], E_DImode))
            return NULL;
          if (
#line 960 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed && IS_VFP_REGNUM (REGNO (operands[0]))))
            return gen_split_186 (insn, operands);
          if (!
#line 976 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_32BIT && reload_completed
   && arm_general_register_operand (operands[0], DImode)))
            return NULL;
          return gen_split_187 (insn, operands);

        default:
          return NULL;
        }

    case 4:
      x2 = XVECEXP (x1, 0, 0);
      if (GET_CODE (x2) != SET)
        return NULL;
      x12 = XVECEXP (x1, 0, 3);
      if (GET_CODE (x12) != CLOBBER)
        return NULL;
      x7 = XEXP (x2, 1);
      switch (GET_CODE (x7))
        {
        case IF_THEN_ELSE:
          x11 = XEXP (x7, 0);
          if (GET_CODE (x11) != EQ)
            return NULL;
          x13 = XEXP (x11, 1);
          if (pattern193 (x13) != 0)
            return NULL;
          x14 = XEXP (x7, 1);
          if (GET_CODE (x14) != LABEL_REF)
            return NULL;
          x15 = XEXP (x7, 2);
          if (GET_CODE (x15) != PC)
            return NULL;
          x5 = XEXP (x2, 0);
          if (GET_CODE (x5) != PC)
            return NULL;
          x3 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x3) != CLOBBER)
            return NULL;
          x4 = XVECEXP (x1, 0, 2);
          if (GET_CODE (x4) != CLOBBER)
            return NULL;
          x16 = XEXP (x12, 0);
          if (GET_CODE (x16) != REG
              || REGNO (x16) != 100
              || GET_MODE (x16) != E_CCmode)
            return NULL;
          x17 = XEXP (x11, 0);
          operands[0] = x17;
          if (!memory_operand (operands[0], E_SImode))
            return NULL;
          x18 = XVECEXP (x13, 0, 0);
          x19 = XEXP (x18, 0);
          operands[1] = x19;
          if (!guard_addr_operand (operands[1], E_SImode))
            return NULL;
          x20 = XEXP (x14, 0);
          operands[2] = x20;
          x6 = XEXP (x3, 0);
          operands[3] = x6;
          if (!scratch_operand (operands[3], E_SImode))
            return NULL;
          x10 = XEXP (x4, 0);
          operands[4] = x10;
          if (!scratch_operand (operands[4], E_SImode)
              || !
#line 8849 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(reload_completed))
            return NULL;
          return gen_split_104 (insn, operands);

        case UNSPEC_VOLATILE:
          switch (pattern125 (x1))
            {
            case 0:
              if (!((
#line 204 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 49 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_32BIT)) && 
#line 206 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_207 (insn, operands);

            case 1:
              if (!((
#line 204 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 49 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_32BIT)) && 
#line 206 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_208 (insn, operands);

            case 2:
              if (!((
#line 204 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 49 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_THUMB1)) && 
#line 206 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_209 (insn, operands);

            case 3:
              if (!((
#line 204 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 49 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_THUMB1)) && 
#line 206 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_210 (insn, operands);

            case 4:
              if (!((
#line 235 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 49 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_32BIT)) && 
#line 237 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_211 (insn, operands);

            case 5:
              if (!((
#line 235 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 49 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_32BIT)) && 
#line 237 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_212 (insn, operands);

            case 6:
              if (!((
#line 235 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 49 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_THUMB1)) && 
#line 237 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_213 (insn, operands);

            case 7:
              if (!((
#line 235 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 49 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/iterators.md"
(TARGET_THUMB1)) && 
#line 237 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_214 (insn, operands);

            case 8:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_219 (insn, operands);

            case 9:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_224 (insn, operands);

            case 10:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_229 (insn, operands);

            case 11:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_234 (insn, operands);

            case 12:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_220 (insn, operands);

            case 13:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_225 (insn, operands);

            case 14:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_230 (insn, operands);

            case 15:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_235 (insn, operands);

            case 16:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_221 (insn, operands);

            case 17:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_226 (insn, operands);

            case 18:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_231 (insn, operands);

            case 19:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_236 (insn, operands);

            case 20:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_222 (insn, operands);

            case 21:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_227 (insn, operands);

            case 22:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_232 (insn, operands);

            case 23:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_237 (insn, operands);

            case 24:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_223 (insn, operands);

            case 25:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_228 (insn, operands);

            case 26:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_233 (insn, operands);

            case 27:
              if (!(
#line 296 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 298 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_238 (insn, operands);

            case 28:
              if (!(
#line 320 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 322 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_239 (insn, operands);

            case 29:
              if (!(
#line 320 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 322 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_240 (insn, operands);

            case 30:
              if (!(
#line 320 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 322 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_241 (insn, operands);

            case 31:
              if (!(
#line 320 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 322 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_242 (insn, operands);

            default:
              return NULL;
            }

        case MEM:
          operands[1] = x7;
          if (pattern127 (x1, 18, 2) != 0)
            return NULL;
          x5 = XEXP (x2, 0);
          operands[0] = x5;
          x3 = XVECEXP (x1, 0, 1);
          x21 = XEXP (x3, 1);
          x22 = XVECEXP (x21, 0, 0);
          operands[2] = x22;
          x23 = XVECEXP (x21, 0, 1);
          operands[3] = x23;
          if (!const_int_operand (operands[3], E_SImode))
            return NULL;
          x16 = XEXP (x12, 0);
          operands[4] = x16;
          if (!scratch_operand (operands[4], E_SImode))
            return NULL;
          x6 = XEXP (x3, 0);
          if (!rtx_equal_p (x6, operands[1]))
            return NULL;
          switch (GET_MODE (operands[0]))
            {
            case E_QImode:
              if (pattern395 (x21, E_QImode) != 0
                  || !(
#line 255 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 257 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_215 (insn, operands);

            case E_HImode:
              if (pattern395 (x21, E_HImode) != 0
                  || !(
#line 255 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 257 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_216 (insn, operands);

            case E_SImode:
              if (pattern395 (x21, E_SImode) != 0
                  || !(
#line 255 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 257 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_217 (insn, operands);

            case E_DImode:
              if (pattern395 (x21, E_DImode) != 0
                  || !(
#line 255 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 257 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_218 (insn, operands);

            default:
              return NULL;
            }

        case PLUS:
          switch (pattern156 (x1))
            {
            case 0:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_267 (insn, operands);

            case 1:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_272 (insn, operands);

            case 2:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_277 (insn, operands);

            case 3:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_282 (insn, operands);

            default:
              return NULL;
            }

        case MINUS:
          switch (pattern156 (x1))
            {
            case 0:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_268 (insn, operands);

            case 1:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_273 (insn, operands);

            case 2:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_278 (insn, operands);

            case 3:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_283 (insn, operands);

            default:
              return NULL;
            }

        case IOR:
          switch (pattern156 (x1))
            {
            case 0:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_269 (insn, operands);

            case 1:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_274 (insn, operands);

            case 2:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_279 (insn, operands);

            case 3:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_284 (insn, operands);

            default:
              return NULL;
            }

        case XOR:
          switch (pattern156 (x1))
            {
            case 0:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_270 (insn, operands);

            case 1:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_275 (insn, operands);

            case 2:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_280 (insn, operands);

            case 3:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_285 (insn, operands);

            default:
              return NULL;
            }

        case AND:
          switch (pattern156 (x1))
            {
            case 0:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_271 (insn, operands);

            case 1:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_276 (insn, operands);

            case 2:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_281 (insn, operands);

            case 3:
              if (!(
#line 411 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 413 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_286 (insn, operands);

            default:
              return NULL;
            }

        case NOT:
          x11 = XEXP (x7, 0);
          if (GET_CODE (x11) != AND
              || pattern127 (x1, 19, 3) != 0)
            return NULL;
          switch (pattern357 (x1))
            {
            case 0:
              if (!(
#line 437 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 439 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_287 (insn, operands);

            case 1:
              if (!(
#line 437 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 439 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_288 (insn, operands);

            case 2:
              if (!(
#line 437 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 439 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_289 (insn, operands);

            case 3:
              if (!(
#line 437 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 439 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                return NULL;
              return gen_split_290 (insn, operands);

            default:
              return NULL;
            }

        default:
          return NULL;
        }

    case 5:
      x2 = XVECEXP (x1, 0, 0);
      if (GET_CODE (x2) != SET)
        return NULL;
      x4 = XVECEXP (x1, 0, 2);
      if (GET_CODE (x4) != CLOBBER)
        return NULL;
      x12 = XVECEXP (x1, 0, 3);
      if (GET_CODE (x12) != CLOBBER)
        return NULL;
      x24 = XVECEXP (x1, 0, 4);
      if (GET_CODE (x24) != CLOBBER)
        return NULL;
      x5 = XEXP (x2, 0);
      operands[0] = x5;
      x7 = XEXP (x2, 1);
      switch (GET_CODE (x7))
        {
        case ASHIFT:
          if (GET_MODE (x7) != E_DImode)
            return NULL;
          x3 = XVECEXP (x1, 0, 1);
          if (GET_CODE (x3) != CLOBBER)
            return NULL;
          x25 = XEXP (x24, 0);
          if (GET_CODE (x25) != REG
              || REGNO (x25) != 100
              || GET_MODE (x25) != E_CC_Cmode
              || pattern331 (x1) != 0
              || !
#line 1215 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
            return NULL;
          return gen_split_188 (insn, operands);

        case ASHIFTRT:
          if (pattern245 (x1) != 0
              || !
#line 1311 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
            return NULL;
          return gen_split_189 (insn, operands);

        case LSHIFTRT:
          if (pattern245 (x1) != 0
              || !
#line 1311 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed))
            return NULL;
          return gen_split_190 (insn, operands);

        case MEM:
          operands[1] = x7;
          x3 = XVECEXP (x1, 0, 1);
          if (pattern197 (x3, 2, 19) != 0)
            return NULL;
          x10 = XEXP (x4, 0);
          if (GET_CODE (x10) != REG
              || REGNO (x10) != 100
              || GET_MODE (x10) != E_CCmode)
            return NULL;
          switch (pattern384 (x1))
            {
            case 0:
              x21 = XEXP (x3, 1);
              switch (pattern430 (x21))
                {
                case 0:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_243 (insn, operands);

                case 1:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_248 (insn, operands);

                case 2:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_253 (insn, operands);

                case 3:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_258 (insn, operands);

                default:
                  return NULL;
                }

            case 1:
              x21 = XEXP (x3, 1);
              switch (pattern430 (x21))
                {
                case 0:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_244 (insn, operands);

                case 1:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_249 (insn, operands);

                case 2:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_254 (insn, operands);

                case 3:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_259 (insn, operands);

                default:
                  return NULL;
                }

            case 2:
              x21 = XEXP (x3, 1);
              switch (pattern430 (x21))
                {
                case 0:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_245 (insn, operands);

                case 1:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_250 (insn, operands);

                case 2:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_255 (insn, operands);

                case 3:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_260 (insn, operands);

                default:
                  return NULL;
                }

            case 3:
              x21 = XEXP (x3, 1);
              switch (pattern430 (x21))
                {
                case 0:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_246 (insn, operands);

                case 1:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_251 (insn, operands);

                case 2:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_256 (insn, operands);

                case 3:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_261 (insn, operands);

                default:
                  return NULL;
                }

            case 4:
              x21 = XEXP (x3, 1);
              switch (pattern430 (x21))
                {
                case 0:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_247 (insn, operands);

                case 1:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_252 (insn, operands);

                case 2:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_257 (insn, operands);

                case 3:
                  if (!(
#line 360 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 362 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_262 (insn, operands);

                default:
                  return NULL;
                }

            case 5:
              x21 = XEXP (x3, 1);
              x22 = XVECEXP (x21, 0, 0);
              x26 = XEXP (x22, 0);
              if (GET_CODE (x26) != AND)
                return NULL;
              x27 = XEXP (x26, 1);
              operands[2] = x27;
              x28 = XEXP (x26, 0);
              if (!rtx_equal_p (x28, operands[1]))
                return NULL;
              switch (GET_MODE (operands[0]))
                {
                case E_QImode:
                  if (pattern435 (x21, E_QImode) != 0
                      || !(
#line 386 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 388 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_263 (insn, operands);

                case E_HImode:
                  if (pattern435 (x21, E_HImode) != 0
                      || !(
#line 386 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXBH && TARGET_HAVE_MEMORY_BARRIER) && 
#line 388 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_264 (insn, operands);

                case E_SImode:
                  if (pattern435 (x21, E_SImode) != 0
                      || !(
#line 386 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREX && TARGET_HAVE_MEMORY_BARRIER) && 
#line 388 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_265 (insn, operands);

                case E_DImode:
                  if (pattern436 (x21) != 0
                      || !(
#line 386 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
(TARGET_HAVE_LDREXD && ARM_DOUBLEWORD_ALIGN
	&& TARGET_HAVE_MEMORY_BARRIER) && 
#line 388 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/sync.md"
( reload_completed)))
                    return NULL;
                  return gen_split_266 (insn, operands);

                default:
                  return NULL;
                }

            default:
              return NULL;
            }

        default:
          return NULL;
        }

    default:
      return NULL;
    }
}

static rtx_insn *
split_12 (rtx x1 ATTRIBUTE_UNUSED, rtx_insn *insn ATTRIBUTE_UNUSED)
{
  rtx * const operands ATTRIBUTE_UNUSED = &recog_data.operand[0];
  rtx x2, x3, x4, x5, x6, x7, x8, x9;
  rtx x10, x11, x12;
  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 632 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_4 (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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1) && 
#line 87 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_141 (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 1493 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT) && 
#line 1504 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
( (CONST_INT_P (operands[1])
       && !const_ok_for_arm (INTVAL (operands[1]))))))
        return NULL;
      return gen_split_15 (insn, operands);

    case AND:
    case IOR:
    case XOR:
      return split_10 (x1, insn);

    case ZERO_EXTEND:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x4 = XEXP (x2, 0);
      switch (GET_CODE (x4))
        {
        case NEG:
          if (pattern106 (x2) != 0)
            return NULL;
          return gen_split_50 (insn, operands);

        case REG:
        case SUBREG:
        case MEM:
          operands[1] = x4;
          switch (GET_MODE (operands[0]))
            {
            case E_DImode:
              if (!s_register_operand (operands[0], E_DImode)
                  || GET_MODE (x2) != E_DImode)
                return NULL;
              if (nonimmediate_operand (operands[1], E_VOIDmode)
                  && 
#line 5283 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed && !IS_VFP_REGNUM (REGNO (operands[0]))))
                return gen_split_56 (insn, operands);
              if (s_register_operand (operands[1], E_SImode)
                  && 
#line 6859 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed && IS_VFP_REGNUM (REGNO (operands[0]))))
                return gen_split_204 (insn, operands);
              if (s_register_operand (operands[1], E_HImode)
                  && 
#line 6869 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed && IS_VFP_REGNUM (REGNO (operands[0]))))
                return gen_split_205 (insn, operands);
              if (!s_register_operand (operands[1], E_QImode)
                  || !
#line 6879 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed && IS_VFP_REGNUM (REGNO (operands[0]))))
                return NULL;
              return gen_split_206 (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 5355 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(!TARGET_THUMB2 && !arm_arch6))
                    return NULL;
                  return gen_split_58 (insn, operands);

                case E_QImode:
                  if (!s_register_operand (operands[1], E_QImode)
                      || !
#line 5419 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(!arm_arch6))
                    return NULL;
                  return gen_split_59 (insn, operands);

                default:
                  return NULL;
                }

            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 5069 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed
   && arm_general_register_operand (operands[0], DImode)))
            return NULL;
          return gen_split_55 (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:
          x6 = XEXP (x4, 1);
          if (x6 != const_int_rtx[MAX_SAVED_CONST_INT + 0]
              || GET_MODE (x2) != E_SImode)
            return NULL;
          x7 = XEXP (x4, 0);
          operands[2] = x7;
          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 7662 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
                return gen_split_101 (insn, operands);
              if (arm_comparison_operator_mode (operands[1], E_SImode)
                  && (
#line 421 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !arm_restrict_it) && 
#line 423 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
( true)))
                return gen_split_168 (insn, operands);
            }
          if (!low_register_operand (operands[0], E_SImode)
              || !arm_comparison_operator_mode (operands[1], E_SImode)
              || !(
#line 441 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_restrict_it) && 
#line 443 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
( reload_completed)))
            return NULL;
          return gen_split_169 (insn, operands);

        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)
            return NULL;
          if (nonimmediate_operand (operands[1], E_VOIDmode)
              && 
#line 5309 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed && !IS_VFP_REGNUM (REGNO (operands[0]))))
            return gen_split_57 (insn, operands);
          if (s_register_operand (operands[1], E_SImode)
              && 
#line 6829 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed && IS_VFP_REGNUM (REGNO (operands[0]))))
            return gen_split_201 (insn, operands);
          if (s_register_operand (operands[1], E_HImode)
              && 
#line 6839 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed && IS_VFP_REGNUM (REGNO (operands[0]))))
            return gen_split_202 (insn, operands);
          if (!s_register_operand (operands[1], E_QImode)
              || !
#line 6849 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON && reload_completed && IS_VFP_REGNUM (REGNO (operands[0]))))
            return NULL;
          return gen_split_203 (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 5594 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(!arm_arch6))
                return NULL;
              return gen_split_65 (insn, operands);

            case E_QImode:
              if (register_operand (operands[1], E_QImode)
                  && 
#line 5688 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(!arm_arch6))
                return gen_split_66 (insn, operands);
              if (!memory_operand (operands[1], E_QImode)
                  || !
#line 512 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1 && reload_completed))
                return NULL;
              return gen_split_146 (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_9 (x1, insn);

    case UNSPEC:
      if (XVECLEN (x2, 0) != 2)
        return NULL;
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      x8 = XVECEXP (x2, 0, 0);
      operands[1] = x8;
      x9 = XVECEXP (x2, 0, 1);
      operands[2] = x9;
      switch (XINT (x2, 1))
        {
        case 27:
          if (GET_MODE (x2) != E_SImode
              || !s_register_operand (operands[0], E_SImode)
              || !(
#line 6215 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(flag_pic) && 
#line 6217 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
( reload_completed)))
            return NULL;
          return gen_split_93 (insn, operands);

        case 262:
          if (GET_MODE (x2) != E_V16QImode
              || !s_register_operand (operands[0], E_V16QImode))
            return NULL;
          switch (pattern272 ())
            {
            case 0:
              if (!(
#line 5232 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 5234 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
( reload_completed)))
                return NULL;
              return gen_split_197 (insn, operands);

            case 1:
              if (!(
#line 5263 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 5265 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
( reload_completed)))
                return NULL;
              return gen_split_198 (insn, operands);

            default:
              return NULL;
            }

        case 98:
          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 5298 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 5300 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
( reload_completed)))
            return NULL;
          return gen_split_199 (insn, operands);

        default:
          return NULL;
        }

    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_CC_CZmode:
          if (GET_MODE (x2) != E_CC_CZmode
              || !s_register_operand (operands[0], E_DImode)
              || !arm_di_operand (operands[1], E_DImode)
              || !(
#line 7485 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT) && 
#line 7487 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
( reload_completed)))
            return NULL;
          return gen_split_98 (insn, operands);

        case E_CCFPmode:
          switch (pattern211 (x2, E_CCFPmode))
            {
            case 0:
              if (!
#line 1610 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
                return NULL;
              return gen_split_135 (insn, operands);

            case 1:
              if (!
#line 1640 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
                return NULL;
              return gen_split_137 (insn, operands);

            default:
              return NULL;
            }

        case E_CCFPEmode:
          switch (pattern211 (x2, E_CCFPEmode))
            {
            case 0:
              if (!
#line 1625 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT))
                return NULL;
              return gen_split_136 (insn, operands);

            case 1:
              if (!
#line 1655 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/vfp.md"
(TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP_DOUBLE))
                return NULL;
              return gen_split_138 (insn, operands);

            default:
              return NULL;
            }

        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 7626 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
                    return gen_split_99 (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 1677 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
                return gen_split_157 (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 357 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2))
        return NULL;
      return gen_split_165 (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 (pattern152 (x2) != 0)
            return NULL;
          if (s_register_operand (operands[0], E_SImode))
            {
              if (
#line 7643 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
                return gen_split_100 (insn, operands);
              if ((
#line 373 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && !arm_restrict_it) && 
#line 375 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
( true)))
                return gen_split_166 (insn, operands);
            }
          if (!low_register_operand (operands[0], E_SImode)
              || !(
#line 392 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && arm_restrict_it) && 
#line 394 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
( reload_completed)))
            return NULL;
          return gen_split_167 (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 867 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_134 (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;
      x6 = XEXP (x4, 1);
      if (x6 != 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;
      x7 = XEXP (x4, 0);
      if (!cc_register (x7, E_VOIDmode))
        return NULL;
      x5 = XEXP (x2, 1);
      switch (GET_CODE (x5))
        {
        case CONST_INT:
        case REG:
        case SUBREG:
          operands[1] = x5;
          x10 = XEXP (x2, 2);
          switch (GET_CODE (x10))
            {
            case CONST_INT:
            case REG:
            case SUBREG:
              operands[2] = x10;
              if (!arm_not_operand (operands[2], E_SImode))
                return NULL;
              operands[3] = x4;
              operands[4] = x7;
              if (!arm_not_operand (operands[1], E_SImode))
                return NULL;
              if ((
#line 8028 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM) && 
#line 8042 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
( reload_completed)))
                return gen_split_102 (insn, operands);
              if (!(
#line 467 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2) && 
#line 487 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
( reload_completed)))
                return NULL;
              return gen_split_170 (insn, operands);

            case NEG:
              if (GET_MODE (x10) != E_SImode)
                return NULL;
              operands[4] = x4;
              operands[3] = x7;
              if (!s_register_operand (operands[1], E_SImode))
                return NULL;
              x11 = XEXP (x10, 0);
              operands[2] = x11;
              if (!s_register_operand (operands[2], E_SImode)
                  || !(
#line 10814 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT) && 
#line 10816 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
( reload_completed)))
                return NULL;
              return gen_split_125 (insn, operands);

            default:
              return NULL;
            }

        case NEG:
          if (GET_MODE (x5) != E_SImode)
            return NULL;
          operands[4] = x4;
          operands[3] = x7;
          x12 = XEXP (x5, 0);
          operands[2] = x12;
          if (!s_register_operand (operands[2], E_SImode))
            return NULL;
          x10 = XEXP (x2, 2);
          operands[1] = x10;
          if (!s_register_operand (operands[1], E_SImode)
              || !(
#line 10778 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT) && 
#line 10780 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
( reload_completed)))
            return NULL;
          return gen_split_124 (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 11586 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && arm_arch_thumb2) && 
#line 11588 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
( reload_completed)))
        return NULL;
      return gen_split_132 (insn, operands);

    case SIGN_EXTRACT:
      if (pattern1 (x1) != 0
          || !
#line 220 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1))
        return NULL;
      return gen_split_143 (insn, operands);

    case VEC_CONCAT:
      x3 = XEXP (x1, 0);
      operands[0] = x3;
      switch (pattern10 (x2))
        {
        case 0:
          if (!(
#line 4133 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 4135 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
( reload_completed)))
            return NULL;
          return gen_split_191 (insn, operands);

        case 1:
          if (!(
#line 4133 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 4135 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
( reload_completed)))
            return NULL;
          return gen_split_192 (insn, operands);

        case 2:
          if (!(
#line 4133 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 4135 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
( reload_completed)))
            return NULL;
          return gen_split_193 (insn, operands);

        case 3:
          if (!(
#line 4133 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 4135 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
( reload_completed)))
            return NULL;
          return gen_split_194 (insn, operands);

        case 4:
          if (!(
#line 4133 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 4135 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
( reload_completed)))
            return NULL;
          return gen_split_195 (insn, operands);

        case 5:
          if (!(
#line 4133 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 4135 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
( reload_completed)))
            return NULL;
          return gen_split_196 (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 5563 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
(TARGET_NEON) && 
#line 5565 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/neon.md"
( reload_completed)))
        return NULL;
      return gen_split_200 (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;
  rtx_insn *res ATTRIBUTE_UNUSED;
  recog_data.insn = NULL;
  switch (GET_CODE (x1))
    {
    case PARALLEL:
      return split_11 (x1, insn);

    case SET:
      return split_12 (x1, insn);

    case COND_EXEC:
      x2 = XEXP (x1, 0);
      if (!arm_comparison_operator (x2, E_VOIDmode))
        return NULL;
      x3 = XEXP (x2, 1);
      if (x3 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
        return NULL;
      x4 = XEXP (x2, 0);
      if (!cc_register (x4, E_VOIDmode))
        return NULL;
      x5 = XEXP (x1, 1);
      switch (GET_CODE (x5))
        {
        case SET:
          x6 = XEXP (x5, 0);
          operands[0] = x6;
          x7 = XEXP (x5, 1);
          switch (GET_CODE (x7))
            {
            case PLUS:
              if (pattern212 (x1) != 0
                  || !
#line 632 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_291 (insn, operands);

            case MINUS:
              if (GET_MODE (x7) != E_SImode)
                return NULL;
              operands[3] = x2;
              operands[4] = x4;
              if (!s_register_operand (operands[0], E_SImode))
                return NULL;
              x8 = XEXP (x7, 0);
              operands[1] = x8;
              if (!reg_or_int_operand (operands[1], E_SImode))
                return NULL;
              x9 = XEXP (x7, 1);
              operands[2] = x9;
              if (!reg_or_int_operand (operands[2], E_SImode)
                  || !(
#line 1493 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT) && 
#line 1504 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
( (CONST_INT_P (operands[1])
       && !const_ok_for_arm (INTVAL (operands[1]))))))
                return NULL;
              return gen_split_292 (insn, operands);

            case AND:
              x8 = XEXP (x7, 0);
              switch (GET_CODE (x8))
                {
                case REG:
                case SUBREG:
                  operands[1] = x8;
                  if (!s_register_operand (operands[1], E_SImode))
                    return NULL;
                  operands[3] = x2;
                  operands[4] = x4;
                  if (!s_register_operand (operands[0], E_SImode)
                      || GET_MODE (x7) != E_SImode)
                    return NULL;
                  x9 = XEXP (x7, 1);
                  operands[2] = x9;
                  if (!reg_or_int_operand (operands[2], E_SImode)
                      || !
#line 2472 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_293 (insn, operands);

                case NOT:
                  if (GET_MODE (x8) != E_DImode)
                    return NULL;
                  operands[3] = x2;
                  operands[4] = x4;
                  switch (pattern308 (x7))
                    {
                    case 0:
                      if (!
#line 2962 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed
   && ! (TARGET_NEON && IS_VFP_REGNUM (REGNO (operands[0])))
   && ! IS_IWMMXT_REGNUM (REGNO (operands[0]))))
                        return NULL;
                      return gen_split_294 (insn, operands);

                    case 1:
                      if (!
#line 3016 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed))
                        return NULL;
                      return gen_split_296 (insn, operands);

                    case 2:
                      if (!
#line 2992 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && reload_completed
   && operands[0] != operands[1]))
                        return NULL;
                      return gen_split_295 (insn, operands);

                    case 3:
                      if (!
#line 3037 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed))
                        return NULL;
                      return gen_split_297 (insn, operands);

                    default:
                      return NULL;
                    }

                case IOR:
                  if (pattern233 (x1) != 0
                      || !(
#line 3552 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT) && 
#line 3554 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
( reload_completed)))
                    return NULL;
                  return gen_split_300 (insn, operands);

                default:
                  return NULL;
                }

            case IOR:
              operands[3] = x2;
              operands[4] = x4;
              x8 = XEXP (x7, 0);
              switch (GET_CODE (x8))
                {
                case REG:
                case SUBREG:
                  operands[1] = x8;
                  if (!s_register_operand (operands[1], E_SImode)
                      || !s_register_operand (operands[0], E_SImode)
                      || GET_MODE (x7) != E_SImode)
                    return NULL;
                  x9 = XEXP (x7, 1);
                  operands[2] = x9;
                  if (!reg_or_int_operand (operands[2], E_SImode)
                      || !
#line 3295 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_298 (insn, operands);

                case NOT:
                  if (GET_MODE (x8) != E_DImode)
                    return NULL;
                  switch (pattern308 (x7))
                    {
                    case 0:
                      if (!
#line 1488 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
                        return NULL;
                      return gen_split_307 (insn, operands);

                    case 1:
                      if (!
#line 1536 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
                        return NULL;
                      return gen_split_309 (insn, operands);

                    case 2:
                      if (!
#line 1514 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
                        return NULL;
                      return gen_split_308 (insn, operands);

                    case 3:
                      if (!
#line 1560 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2 && reload_completed))
                        return NULL;
                      return gen_split_310 (insn, operands);

                    default:
                      return NULL;
                    }

                default:
                  return NULL;
                }

            case XOR:
              if (pattern212 (x1) != 0
                  || !
#line 3491 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT
   && CONST_INT_P (operands[2])
   && !const_ok_for_arm (INTVAL (operands[2]))))
                return NULL;
              return gen_split_299 (insn, operands);

            case NOT:
              if (GET_MODE (x7) != E_DImode)
                return NULL;
              operands[2] = x2;
              operands[3] = x4;
              if (!s_register_operand (operands[0], E_DImode))
                return NULL;
              x8 = XEXP (x7, 0);
              operands[1] = x8;
              if (!s_register_operand (operands[1], E_DImode)
                  || !
#line 5069 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && reload_completed
   && arm_general_register_operand (operands[0], DImode)))
                return NULL;
              return gen_split_303 (insn, operands);

            case NEG:
              if (GET_MODE (x7) != E_DFmode)
                return NULL;
              operands[2] = x2;
              operands[3] = x4;
              if (!s_register_operand (operands[0], E_DFmode))
                return NULL;
              x8 = XEXP (x7, 0);
              operands[1] = x8;
              if (!s_register_operand (operands[1], E_DFmode)
                  || !
#line 867 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_304 (insn, operands);

            default:
              return NULL;
            }

        case PARALLEL:
          if (XVECLEN (x5, 0) != 2)
            return NULL;
          x10 = XVECEXP (x5, 0, 0);
          if (GET_CODE (x10) != SET
              || pattern213 (x1) != 0)
            return NULL;
          x11 = XEXP (x10, 0);
          operands[0] = x11;
          if (!s_register_operand (operands[0], E_SImode))
            return NULL;
          x12 = XEXP (x10, 1);
          if (GET_MODE (x12) != E_SImode)
            return NULL;
          switch (GET_CODE (x12))
            {
            case ABS:
              x13 = XEXP (x12, 0);
              operands[1] = x13;
              if (!s_register_operand (operands[1], E_SImode))
                return NULL;
              if ((
#line 4899 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM) && 
#line 4901 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
( reload_completed)))
                return gen_split_301 (insn, operands);
              if (!(
#line 131 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2) && 
#line 136 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
( reload_completed)))
                return NULL;
              return gen_split_305 (insn, operands);

            case NEG:
              x13 = XEXP (x12, 0);
              if (GET_CODE (x13) != ABS
                  || GET_MODE (x13) != E_SImode)
                return NULL;
              x14 = XEXP (x13, 0);
              operands[1] = x14;
              if (!s_register_operand (operands[1], E_SImode))
                return NULL;
              if ((
#line 4963 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM) && 
#line 4965 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
( reload_completed)))
                return gen_split_302 (insn, operands);
              if (!(
#line 184 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2) && 
#line 189 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
( reload_completed)))
                return NULL;
              return gen_split_306 (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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_34 (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]
      || pattern31 (x1, E_CCmode) != 0)
    return NULL;
  x5 = PATTERN (peep2_next_insn (1));
  if (pattern325 (x5) != 0)
    return NULL;
  if (
#line 9369 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(arm_arch5t && TARGET_32BIT && peep2_regno_dead_p (3, CC_REGNUM)))
    {
      *pmatch_len_ = 2;
      res = gen_peephole2_6 (insn, operands);
      if (res != NULL_RTX)
        return res;
    }
  if (!
#line 9386 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && peep2_regno_dead_p (3, CC_REGNUM)))
    return NULL;
  *pmatch_len_ = 2;
  return gen_peephole2_7 (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 (pattern325 (x5) != 0)
    return NULL;
  if (
#line 9408 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_8 (insn, operands);
      if (res != NULL_RTX)
        return res;
    }
  if (!
#line 9429 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_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 10948 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM))
                    {
                      *pmatch_len_ = 1;
                      res = gen_peephole2_10 (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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldrdstrd.md"
(TARGET_LDRD))
    return NULL;
  *pmatch_len_ = 1;
  return gen_peephole2_11 (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_18 (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_23 (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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_15 (insn, operands);

    case PARALLEL:
      if (pattern370 (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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_16 (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_17 (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_21 (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_22 (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_26 (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 (pattern290 (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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldrdstrd.md"
(TARGET_LDRD))
        return NULL;
      *pmatch_len_ = 3;
      return gen_peephole2_13 (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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldrdstrd.md"
(TARGET_LDRD))
        return NULL;
      *pmatch_len_ = 3;
      return gen_peephole2_14 (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 (pattern326 (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_19 (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_20 (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 (pattern326 (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_24 (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_25 (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_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 598 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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 909 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_32BIT && peep2_reg_dead_p (3, operands[2])))
        return NULL;
      *pmatch_len_ = 2;
      return gen_peephole2_2 (insn, operands);

    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 1524 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_3 (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 3317 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_4 (insn, operands);

    case UNSPEC:
      if (peep2_current_count < 2
          || XVECLEN (x2, 0) != 3
          || XINT (x2, 1) != 2
          || GET_MODE (x2) != E_SImode)
        return NULL;
      x19 = XVECEXP (x2, 0, 1);
      if (x19 != 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;
      x20 = XVECEXP (x2, 0, 0);
      operands[3] = x20;
      if (!register_operand (operands[3], E_SImode))
        return NULL;
      x21 = XVECEXP (x2, 0, 2);
      operands[1] = x21;
      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 6318 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/arm.md"
(TARGET_ARM && peep2_reg_dead_p (2, operands[0])))
        return NULL;
      *pmatch_len_ = 1;
      return gen_peephole2_5 (insn, operands);

    case COMPARE:
      x5 = XEXP (x2, 0);
      switch (GET_CODE (x5))
        {
        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 1292 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_35 (insn, operands);
              if (res != NULL_RTX)
                return res;
            }
          if (!
#line 1306 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb2.md"
(TARGET_THUMB2
   && satisfies_constraint_Px (operands[2])))
            return NULL;
          *pmatch_len_ = 0;
          return gen_peephole2_36 (insn, operands);

        case ZERO_EXTRACT:
          if (peep2_current_count < 2
              || GET_MODE (x5) != E_SImode)
            return NULL;
          x22 = XEXP (x5, 1);
          if (GET_CODE (x22) != 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_NOOVmode)
              || GET_MODE (x2) != E_CC_NOOVmode)
            return NULL;
          x23 = XEXP (x5, 0);
          operands[1] = x23;
          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_NOOVmode))
            return NULL;
          operands[4] = x10;
          x24 = XEXP (x10, 1);
          if (x24 != 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;
          x25 = XEXP (x8, 2);
          operands[6] = x25;
          x26 = XEXP (x10, 0);
          if (!rtx_equal_p (x26, operands[0]))
            return NULL;
          if (XWINT (x22, 0) == 1L)
            {
              x27 = XEXP (x5, 2);
              operands[2] = x27;
              if (const_int_operand (operands[2], E_SImode)
                  && 
#line 1614 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_37 (insn, operands);
                  if (res != NULL_RTX)
                    return res;
                }
            }
          x27 = XEXP (x5, 2);
          if (x27 != const_int_rtx[MAX_SAVED_CONST_INT + 0])
            return NULL;
          operands[2] = x22;
          if (!const_int_operand (operands[2], E_SImode)
              || !
#line 1643 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_38 (insn, operands);

        default:
          return NULL;
        }

    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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/ldrdstrd.md"
(TARGET_LDRD))
                        {
                          *pmatch_len_ = 1;
                          res = gen_peephole2_12 (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 (pattern115 (x4) == 0)
        {
          *pmatch_len_ = 1;
          res = gen_peephole2_27 (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_30 (insn, operands);
                          if (res != NULL_RTX)
                            return res;
                        }
                    }
                }
            }
        }
      if (peep2_current_count < 3)
        return NULL;
      operands[2] = x2;
      if (pattern115 (x4) != 0)
        return NULL;
      x11 = PATTERN (peep2_next_insn (2));
      switch (GET_CODE (x11))
        {
        case PARALLEL:
          if (pattern370 (x11) != 0
              || !s_register_operand (operands[4], E_SImode))
            return NULL;
          x28 = XVECEXP (x11, 0, 0);
          x29 = XEXP (x28, 1);
          x30 = XEXP (x29, 0);
          operands[6] = x30;
          if (!s_register_operand (operands[6], E_SImode))
            return NULL;
          x31 = XEXP (x29, 1);
          operands[7] = x31;
          if (!s_register_operand (operands[7], E_SImode)
              || !
#line 1163 "../../../../../../../work-shared/gcc-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_31 (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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/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_32 (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-arm-9.2-r2019.12/gcc-arm-src-snapshot-9.2-2019.12/gcc/config/arm/thumb1.md"
(TARGET_THUMB1
   && UINTVAL (operands[1]) < 1024
   && (UINTVAL (operands[1]) & 3) == 0))
                        {
                          *pmatch_len_ = 1;
                          res = gen_peephole2_33 (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 (pattern290 (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;
          x32 = PATTERN (peep2_next_insn (3));
          x33 = XEXP (x32, 1);
          if (!rtx_equal_p (x33, operands[1]))
            return NULL;
          *pmatch_len_ = 3;
          return gen_peephole2_28 (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;
          x32 = PATTERN (peep2_next_insn (3));
          x33 = XEXP (x32, 1);
          if (!rtx_equal_p (x33, operands[1]))
            return NULL;
          *pmatch_len_ = 3;
          return gen_peephole2_29 (insn, operands);

        default:
          return NULL;
        }

    default:
      return NULL;
    }
}
